@aws-cdk/aws-bedrock-agentcore-alpha 2.221.1-alpha.0 → 2.223.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 +3396 -138
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +69 -1
- package/README.md +327 -5
- package/agentcore/index.d.ts +4 -0
- package/agentcore/index.js +5 -1
- package/agentcore/memory/memory-strategy.d.ts +162 -0
- package/agentcore/memory/memory-strategy.js +174 -0
- package/agentcore/memory/memory.d.ts +531 -0
- package/agentcore/memory/memory.js +661 -0
- package/agentcore/memory/perms.d.ts +63 -0
- package/agentcore/memory/perms.js +90 -0
- package/agentcore/memory/strategies/managed-strategy.d.ts +130 -0
- package/agentcore/memory/strategies/managed-strategy.js +209 -0
- package/agentcore/memory/strategies/self-managed-strategy.d.ts +119 -0
- package/agentcore/memory/strategies/self-managed-strategy.js +254 -0
- package/agentcore/memory/validation-helpers.d.ts +41 -0
- package/agentcore/memory/validation-helpers.js +89 -0
- package/agentcore/network/network-configuration.js +4 -4
- package/agentcore/runtime/runtime-artifact.js +1 -1
- package/agentcore/runtime/runtime-authorizer-configuration.d.ts +4 -4
- package/agentcore/runtime/runtime-authorizer-configuration.js +13 -32
- package/agentcore/runtime/runtime-base.js +3 -13
- package/agentcore/runtime/runtime-endpoint-base.js +1 -1
- package/agentcore/runtime/runtime-endpoint.js +1 -1
- package/agentcore/runtime/runtime.d.ts +2 -2
- package/agentcore/runtime/runtime.js +16 -17
- package/agentcore/runtime/types.d.ts +5 -1
- package/agentcore/runtime/types.js +5 -1
- package/agentcore/tools/browser.js +2 -2
- package/agentcore/tools/code-interpreter.js +2 -2
- package/package.json +14 -7
- package/rosetta/default.ts-fixture +4 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SelfManagedMemoryStrategy = void 0;
|
|
4
|
+
const jsiiDeprecationWarnings = require("../../../.warnings.jsii.js");
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const cdk = require("aws-cdk-lib");
|
|
7
|
+
const iam = require("aws-cdk-lib/aws-iam");
|
|
8
|
+
const memory_strategy_1 = require("../memory-strategy");
|
|
9
|
+
const validation_helpers_1 = require("../validation-helpers");
|
|
10
|
+
/******************************************************************************
|
|
11
|
+
* CONSTANTS
|
|
12
|
+
*****************************************************************************/
|
|
13
|
+
/**
|
|
14
|
+
* Minimum value for time-based trigger in seconds
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
const TIME_BASED_TRIGGER_MIN = 10;
|
|
18
|
+
/**
|
|
19
|
+
* Maximum value for time-based trigger in seconds
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
const TIME_BASED_TRIGGER_MAX = 3000;
|
|
23
|
+
/**
|
|
24
|
+
* Minimum value for token-based trigger
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
const TOKEN_BASED_TRIGGER_MIN = 100;
|
|
28
|
+
/**
|
|
29
|
+
* Maximum value for token-based trigger
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
const TOKEN_BASED_TRIGGER_MAX = 500000;
|
|
33
|
+
/**
|
|
34
|
+
* Minimum value for message-based trigger
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
const MESSAGE_BASED_TRIGGER_MIN = 1;
|
|
38
|
+
/**
|
|
39
|
+
* Maximum value for message-based trigger
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
const MESSAGE_BASED_TRIGGER_MAX = 50;
|
|
43
|
+
/**
|
|
44
|
+
* Minimum value for historical context window size
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
const HISTORICAL_CONTEXT_WINDOW_SIZE_MIN = 0;
|
|
48
|
+
/**
|
|
49
|
+
* Maximum value for historical context window size
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
const HISTORICAL_CONTEXT_WINDOW_SIZE_MAX = 50;
|
|
53
|
+
/**
|
|
54
|
+
* Default value for historical context window size
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
const DEFAULT_HISTORICAL_CONTEXT_WINDOW_SIZE = 4;
|
|
58
|
+
/**
|
|
59
|
+
* Default value for message-based trigger
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
const DEFAULT_MESSAGE_BASED_TRIGGER = 1;
|
|
63
|
+
/**
|
|
64
|
+
* Default value for time-based trigger
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
const DEFAULT_TIME_BASED_TRIGGER = cdk.Duration.seconds(10);
|
|
68
|
+
/**
|
|
69
|
+
* Default value for token-based trigger
|
|
70
|
+
* @internal
|
|
71
|
+
*/
|
|
72
|
+
const DEFAULT_TOKEN_BASED_TRIGGER = 100;
|
|
73
|
+
/**
|
|
74
|
+
* Use AgentCore memory for event storage with custom triggers. Define memory processing logic in your own environment.
|
|
75
|
+
*/
|
|
76
|
+
class SelfManagedMemoryStrategy {
|
|
77
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SelfManagedMemoryStrategy", version: "2.223.0-alpha.0" };
|
|
78
|
+
name;
|
|
79
|
+
description;
|
|
80
|
+
strategyType;
|
|
81
|
+
/**
|
|
82
|
+
* Invocation configuration for self managed memory strategy
|
|
83
|
+
*/
|
|
84
|
+
invocationConfiguration;
|
|
85
|
+
/**
|
|
86
|
+
* Trigger conditions for self managed memory strategy
|
|
87
|
+
*/
|
|
88
|
+
triggerConditions;
|
|
89
|
+
/**
|
|
90
|
+
* Historical context window size for self managed memory strategy
|
|
91
|
+
*/
|
|
92
|
+
historicalContextWindowSize;
|
|
93
|
+
constructor(strategyType, props) {
|
|
94
|
+
try {
|
|
95
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategyType(strategyType);
|
|
96
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_SelfManagedStrategyProps(props);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
100
|
+
Error.captureStackTrace(error, SelfManagedMemoryStrategy);
|
|
101
|
+
}
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
104
|
+
this.name = props.name;
|
|
105
|
+
this.description = props.description;
|
|
106
|
+
this.strategyType = strategyType;
|
|
107
|
+
this.invocationConfiguration = props.invocationConfiguration;
|
|
108
|
+
this.triggerConditions = {
|
|
109
|
+
messageBasedTrigger: props.triggerConditions?.messageBasedTrigger ?? DEFAULT_MESSAGE_BASED_TRIGGER,
|
|
110
|
+
timeBasedTrigger: props.triggerConditions?.timeBasedTrigger ?? DEFAULT_TIME_BASED_TRIGGER,
|
|
111
|
+
tokenBasedTrigger: props.triggerConditions?.tokenBasedTrigger ?? DEFAULT_TOKEN_BASED_TRIGGER,
|
|
112
|
+
};
|
|
113
|
+
this.historicalContextWindowSize = props.historicalContextWindowSize ?? DEFAULT_HISTORICAL_CONTEXT_WINDOW_SIZE;
|
|
114
|
+
// ------------------------------------------------------
|
|
115
|
+
// Validations
|
|
116
|
+
// ------------------------------------------------------
|
|
117
|
+
(0, validation_helpers_1.throwIfInvalid)(this._validateMemoryStrategyName, this.name);
|
|
118
|
+
(0, validation_helpers_1.throwIfInvalid)(this._validateHistoricalContextWindowSize, this.historicalContextWindowSize);
|
|
119
|
+
(0, validation_helpers_1.throwIfInvalid)(this._validateTriggerConditions, this.triggerConditions);
|
|
120
|
+
}
|
|
121
|
+
render() {
|
|
122
|
+
return {
|
|
123
|
+
customMemoryStrategy: {
|
|
124
|
+
name: this.name,
|
|
125
|
+
description: this.description,
|
|
126
|
+
type: this.strategyType,
|
|
127
|
+
configuration: {
|
|
128
|
+
selfManagedConfiguration: {
|
|
129
|
+
historicalContextWindowSize: this.historicalContextWindowSize,
|
|
130
|
+
invocationConfiguration: {
|
|
131
|
+
topicArn: this.invocationConfiguration.topic.topicArn,
|
|
132
|
+
payloadDeliveryBucketName: this.invocationConfiguration.s3Location.bucketName,
|
|
133
|
+
},
|
|
134
|
+
triggerConditions: [
|
|
135
|
+
{
|
|
136
|
+
messageBasedTrigger: {
|
|
137
|
+
messageCount: this.triggerConditions.messageBasedTrigger,
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
timeBasedTrigger: {
|
|
142
|
+
idleSessionTimeout: this.triggerConditions.timeBasedTrigger?.toSeconds(),
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
tokenBasedTrigger: {
|
|
147
|
+
tokenCount: this.triggerConditions.tokenBasedTrigger,
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
}; // Type assertion to work around CloudFormation type limitations
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Grants the necessary permissions to the role
|
|
158
|
+
* @param grantee - The grantee to grant permissions to
|
|
159
|
+
* @returns The Grant object for chaining
|
|
160
|
+
*/
|
|
161
|
+
grant(grantee) {
|
|
162
|
+
// no existing grant method that provides both required sns actions
|
|
163
|
+
const grant1 = iam.Grant.addToPrincipal({
|
|
164
|
+
grantee: grantee,
|
|
165
|
+
actions: ['sns:GetTopicAttributes', 'sns:Publish'],
|
|
166
|
+
resourceArns: [
|
|
167
|
+
this.invocationConfiguration.topic.topicArn,
|
|
168
|
+
],
|
|
169
|
+
});
|
|
170
|
+
let grant2;
|
|
171
|
+
// we don't have the scope here, so we add manually the permissions to the role policy
|
|
172
|
+
if (this.invocationConfiguration?.s3Location) {
|
|
173
|
+
// Grant S3 permissions for the specified location
|
|
174
|
+
grant2 = iam.Grant.addToPrincipal({
|
|
175
|
+
grantee: grantee,
|
|
176
|
+
actions: [
|
|
177
|
+
's3:GetBucketLocation',
|
|
178
|
+
's3:PutObject',
|
|
179
|
+
],
|
|
180
|
+
resourceArns: [
|
|
181
|
+
`arn:${cdk.Aws.PARTITION}:s3:::${this.invocationConfiguration.s3Location.bucketName}`,
|
|
182
|
+
`arn:${cdk.Aws.PARTITION}:s3:::${this.invocationConfiguration.s3Location.bucketName}/*`,
|
|
183
|
+
],
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
return grant1 && grant2 ? grant1.combine(grant2) : grant1 || grant2;
|
|
187
|
+
}
|
|
188
|
+
// ------------------------------------------------------
|
|
189
|
+
// VALIDATORS
|
|
190
|
+
// ------------------------------------------------------
|
|
191
|
+
/**
|
|
192
|
+
* Validates the memory strategy name
|
|
193
|
+
* @param name - The name to validate
|
|
194
|
+
* @returns Array of validation error messages, empty if valid
|
|
195
|
+
*/
|
|
196
|
+
_validateMemoryStrategyName = (name, scope) => {
|
|
197
|
+
let errors = [];
|
|
198
|
+
errors.push(...(0, validation_helpers_1.validateStringFieldLength)({
|
|
199
|
+
value: name,
|
|
200
|
+
fieldName: 'Memory name',
|
|
201
|
+
minLength: memory_strategy_1.MEMORY_NAME_MIN_LENGTH,
|
|
202
|
+
maxLength: memory_strategy_1.MEMORY_NAME_MAX_LENGTH,
|
|
203
|
+
}, scope));
|
|
204
|
+
// Check if name matches the AWS API pattern: [a-zA-Z][a-zA-Z0-9_]{0,47}
|
|
205
|
+
// Must start with a letter, followed by up to 47 letters, numbers, or underscores
|
|
206
|
+
const validNamePattern = /^[a-zA-Z][a-zA-Z0-9_]{0,47}$/;
|
|
207
|
+
errors.push(...(0, validation_helpers_1.validateFieldPattern)(name, 'Memory name', validNamePattern, undefined, scope));
|
|
208
|
+
return errors;
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* Validates the historical context window size
|
|
212
|
+
* @param historicalContextWindowSize - The historical context window size to validate
|
|
213
|
+
* @returns Array of validation error messages, empty if valid
|
|
214
|
+
*/
|
|
215
|
+
_validateHistoricalContextWindowSize = (historicalContextWindowSize) => {
|
|
216
|
+
let errors = [];
|
|
217
|
+
if (historicalContextWindowSize < HISTORICAL_CONTEXT_WINDOW_SIZE_MIN
|
|
218
|
+
|| historicalContextWindowSize > HISTORICAL_CONTEXT_WINDOW_SIZE_MAX) {
|
|
219
|
+
errors.push(`Historical context window size must be between ${HISTORICAL_CONTEXT_WINDOW_SIZE_MIN} and ${HISTORICAL_CONTEXT_WINDOW_SIZE_MAX}, got ${historicalContextWindowSize}`);
|
|
220
|
+
}
|
|
221
|
+
return errors;
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* Validates the trigger conditions
|
|
225
|
+
* @param triggerConditions - The trigger conditions to validate
|
|
226
|
+
* @returns Array of validation error messages, empty if valid
|
|
227
|
+
*/
|
|
228
|
+
_validateTriggerConditions = (triggerConditions) => {
|
|
229
|
+
let errors = [];
|
|
230
|
+
// Validate message-based trigger
|
|
231
|
+
if (triggerConditions.messageBasedTrigger !== undefined) {
|
|
232
|
+
if (triggerConditions.messageBasedTrigger < MESSAGE_BASED_TRIGGER_MIN
|
|
233
|
+
|| triggerConditions.messageBasedTrigger > MESSAGE_BASED_TRIGGER_MAX) {
|
|
234
|
+
errors.push(`Message-based trigger must be between ${MESSAGE_BASED_TRIGGER_MIN} and ${MESSAGE_BASED_TRIGGER_MAX}, got ${triggerConditions.messageBasedTrigger}`);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// Validate time-based trigger
|
|
238
|
+
if (triggerConditions.timeBasedTrigger !== undefined) {
|
|
239
|
+
const seconds = triggerConditions.timeBasedTrigger.toSeconds();
|
|
240
|
+
if (seconds < TIME_BASED_TRIGGER_MIN || seconds > TIME_BASED_TRIGGER_MAX) {
|
|
241
|
+
errors.push(`Time-based trigger must be between ${TIME_BASED_TRIGGER_MIN} and ${TIME_BASED_TRIGGER_MAX} seconds, got ${seconds}`);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// Validate token-based trigger
|
|
245
|
+
if (triggerConditions.tokenBasedTrigger !== undefined) {
|
|
246
|
+
if (triggerConditions.tokenBasedTrigger < TOKEN_BASED_TRIGGER_MIN || triggerConditions.tokenBasedTrigger > TOKEN_BASED_TRIGGER_MAX) {
|
|
247
|
+
errors.push(`Token-based trigger must be between ${TOKEN_BASED_TRIGGER_MIN} and ${TOKEN_BASED_TRIGGER_MAX}, got ${triggerConditions.tokenBasedTrigger}`);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return errors;
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
exports.SelfManagedMemoryStrategy = SelfManagedMemoryStrategy;
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZi1tYW5hZ2VkLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VsZi1tYW5hZ2VkLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBY0EsbUNBQW1DO0FBR25DLDJDQUEyQztBQUUzQyx3REFBb0o7QUFDcEosOERBQXdHO0FBRXhHOzsrRUFFK0U7QUFDL0U7OztHQUdHO0FBQ0gsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFDbEM7OztHQUdHO0FBQ0gsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUM7QUFDcEM7OztHQUdHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFDcEM7OztHQUdHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUM7QUFDdkM7OztHQUdHO0FBQ0gsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFDcEM7OztHQUdHO0FBQ0gsTUFBTSx5QkFBeUIsR0FBRyxFQUFFLENBQUM7QUFDckM7OztHQUdHO0FBQ0gsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLENBQUM7QUFDN0M7OztHQUdHO0FBQ0gsTUFBTSxrQ0FBa0MsR0FBRyxFQUFFLENBQUM7QUFDOUM7OztHQUdHO0FBQ0gsTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLENBQUM7QUFDakQ7OztHQUdHO0FBQ0gsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLENBQUM7QUFDeEM7OztHQUdHO0FBQ0gsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM1RDs7O0dBR0c7QUFDSCxNQUFNLDJCQUEyQixHQUFHLEdBQUcsQ0FBQztBQTREeEM7O0dBRUc7QUFDSCxNQUFhLHlCQUF5Qjs7SUFDcEIsSUFBSSxDQUFTO0lBQ2IsV0FBVyxDQUFVO0lBQ3JCLFlBQVksQ0FBcUI7SUFDakQ7O09BRUc7SUFDYSx1QkFBdUIsQ0FBMEI7SUFDakU7O09BRUc7SUFDYSxpQkFB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UUFBUSxzQkFBc0IsaUJBQWlCLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDcEksQ0FBQztRQUNILENBQUM7UUFFRCwrQkFBK0I7UUFDL0IsSUFBSSxpQkFBaUIsQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0RCxJQUFJLGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLHVCQUF1QixJQUFJLGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLHVCQUF1QixFQUFFLENBQUM7Z0JBQ25JLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUNBQXVDLHVCQUF1QixRQUFRLHVCQUF1QixTQUFTLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztZQUMzSixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQzs7QUF2TEosOERBd0xDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGJlZHJvY2thZ2VudGNvcmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHsgSU1lbW9yeVN0cmF0ZWd5LCBNZW1vcnlTdHJhdGVneUNvbW1vblByb3BzLCBNZW1vcnlTdHJhdGVneVR5cGUsIE1FTU9SWV9OQU1FX01JTl9MRU5HVEgsIE1FTU9SWV9OQU1FX01BWF9MRU5HVEggfSBmcm9tICcuLi9tZW1vcnktc3RyYXRlZ3knO1xuaW1wb3J0IHsgdmFsaWRhdGVTdHJpbmdGaWVsZExlbmd0aCwgdGhyb3dJZkludmFsaWQsIHZhbGlkYXRlRmllbGRQYXR0ZXJuIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVEFOVFNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogTWluaW11bSB2YWx1ZSBmb3IgdGltZS1iYXNlZCB0cmlnZ2VyIGluIHNlY29uZHNcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBUSU1FX0JBU0VEX1RSSUdHRVJfTUlOID0gMTA7XG4vKipcbiAqIE1heGltdW0gdmFsdWUgZm9yIHRpbWUtYmFzZWQgdHJpZ2dlciBpbiBzZWNvbmRzXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgVElNRV9CQVNFRF9UUklHR0VSX01BWCA9IDMwMDA7XG4vKipcbiAqIE1pbmltdW0gdmFsdWUgZm9yIHRva2VuLWJhc2VkIHRyaWdnZXJcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBUT0tFTl9CQVNFRF9UUklHR0VSX01JTiA9IDEwMDtcbi8qKlxuICogTWF4aW11bSB2YWx1ZSBmb3IgdG9rZW4tYmFzZWQgdHJpZ2dlclxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IFRPS0VOX0JBU0VEX1RSSUdHRVJfTUFYID0gNTAwMDAwO1xuLyoqXG4gKiBNaW5pbXVtIHZhbHVlIGZvciBtZXNzYWdlLWJhc2VkIHRyaWdnZXJcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBNRVNTQUdFX0JBU0VEX1RSSUdHRVJfTUlOID0gMTtcbi8qKlxuICogTWF4aW11bSB2YWx1ZSBmb3IgbWVzc2FnZS1iYXNlZCB0cmlnZ2VyXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgTUVTU0FHRV9CQVNFRF9UUklHR0VSX01BWCA9IDUwO1xuLyoqXG4gKiBNaW5pbXVtIHZhbHVlIGZvciBoaXN0b3JpY2FsIGNvbnRleHQgd2luZG93IHNpemVcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBISVNUT1JJQ0FMX0NPTlRFWFRfV0lORE9XX1NJWkVfTUlOID0gMDtcbi8qKlxuICogTWF4aW11bSB2YWx1ZSBmb3IgaGlzdG9yaWNhbCBjb250ZXh0IHdpbmRvdyBzaXplXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgSElTVE9SSUNBTF9DT05URVhUX1dJTkRPV19TSVpFX01BWCA9IDUwO1xuLyoqXG4gKiBEZWZhdWx0IHZhbHVlIGZvciBoaXN0b3JpY2FsIGNvbnRleHQgd2luZG93IHNpemVcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBERUZBVUxUX0hJU1RPUklDQUxfQ09OVEVYVF9XSU5ET1dfU0laRSA9IDQ7XG4vKipcbiAqIERlZmF1bHQgdmFsdWUgZm9yIG1lc3NhZ2UtYmFzZWQgdHJpZ2dlclxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IERFRkFVTFRfTUVTU0FHRV9CQVNFRF9UUklHR0VSID0gMTtcbi8qKlxuICogRGVmYXVsdCB2YWx1ZSBmb3IgdGltZS1iYXNlZCB0cmlnZ2VyXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgREVGQVVMVF9USU1FX0JBU0VEX1RSSUdHRVIgPSBjZGsuRHVyYXRpb24uc2Vjb25kcygxMCk7XG4vKipcbiAqIERlZmF1bHQgdmFsdWUgZm9yIHRva2VuLWJhc2VkIHRyaWdnZXJcbiAqIEBpbnRlcm5hbFxuICovXG5jb25zdCBERUZBVUxUX1RPS0VOX0JBU0VEX1RSSUdHRVIgPSAxMDA7XG5cbi8qKlxuICogVHJpZ2dlciBjb25kaXRpb25zIGZvciBzZWxmIG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gKiBXaGVuIGZpcnN0IGNvbmRpdGlvbiBpcyBtZXQsIGJhdGNoZWQgcGF5bG9hZHMgYXJlIHNlbnQgdG8gc3BlY2lmaWVkIFMzIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmlnZ2VyQ29uZGl0aW9ucyB7XG4gIC8qKlxuICAgKiBUcmlnZ2VycyBtZW1vcnkgcHJvY2Vzc2luZyB3aGVuIHNwZWNpZmllZCBudW1iZXIgb2YgbmV3IG1lc3NhZ2VzIGlzIHJlYWNoZWRcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZUJhc2VkVHJpZ2dlcj86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRyaWdnZXJzIG1lbW9yeSBwcm9jZXNzaW5nIHdoZW4gdGhlIHNlc3Npb24gaGFzIGJlZW4gaWRsZSBmb3IgdGhlIHNwZWNpZmllZCBkdXJhdGlvbi5cbiAgICogVmFsdWUgaW4gc2Vjb25kcy5cbiAgICogQGRlZmF1bHQgLSAxMCBzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSB0aW1lQmFzZWRUcmlnZ2VyPzogY2RrLkR1cmF0aW9uO1xuICAvKipcbiAgICogVHJpZ2dlcnMgbWVtb3J5IHByb2Nlc3Npbmcgd2hlbiB0aGUgdG9rZW4gc2l6ZSByZWFjaGVzIHRoZSBzcGVjaWZpZWQgdGhyZXNob2xkLlxuICAgKiBAZGVmYXVsdCAxMDBcbiAgICovXG4gIHJlYWRvbmx5IHRva2VuQmFzZWRUcmlnZ2VyPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEludm9jYXRpb24gY29uZmlndXJhdGlvbiBmb3Igc2VsZiBtYW5hZ2VkIG1lbW9yeSBzdHJhdGVneVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludm9jYXRpb25Db25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFNOUyBUb3BpYyBDb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSB0b3BpYzogc25zLklUb3BpYztcbiAgLyoqXG4gICAqIFMzIExvY2F0aW9uIENvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHMzTG9jYXRpb246IExvY2F0aW9uO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBmb3IgYSBzZWxmIG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gKiBleGlzdGluZyBidWlsdC1pbiBkZWZhdWx0IHByb21wdHMvbW9kZWxzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZk1hbmFnZWRTdHJhdGVneVByb3BzIGV4dGVuZHMgTWVtb3J5U3RyYXRlZ3lDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIG51bWJlciBvZiBwcmV2aW91cyBldmVudHMgdG8gYmUgaW5jbHVkZWQgd2hlbiBwcm9jZXNzaW5nIG1lbW9yeS4gQSBsYXJnZXIgaGlzdG9yeSB3aW5kb3cgcHJvdmlkZXMgbW9yZSBjb250ZXh0IGZyb20gcGFzdCBjb252ZXJzYXRpb25zLlxuICAgKiBAZGVmYXVsdCA0XG4gICAqL1xuICByZWFkb25seSBoaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJbnZvY2F0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHNlbGYgbWFuYWdlZCBtZW1vcnkgc3RyYXRlZ3lcbiAgICovXG4gIHJlYWRvbmx5IGludm9jYXRpb25Db25maWd1cmF0aW9uOiBJbnZvY2F0aW9uQ29uZmlndXJhdGlvbjtcbiAgLyoqXG4gICAqIFRyaWdnZXIgY29uZGl0aW9ucyBmb3Igc2VsZiBtYW5hZ2VkIG1lbW9yeSBzdHJhdGVneVxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlckNvbmRpdGlvbnM/OiBUcmlnZ2VyQ29uZGl0aW9ucztcbn1cblxuLyoqXG4gKiBVc2UgQWdlbnRDb3JlIG1lbW9yeSBmb3IgZXZlbnQgc3RvcmFnZSB3aXRoIGN1c3RvbSB0cmlnZ2Vycy4gRGVmaW5lIG1lbW9yeSBwcm9jZXNzaW5nIGxvZ2ljIGluIHlvdXIgb3duIGVudmlyb25tZW50LlxuICovXG5leHBvcnQgY2xhc3MgU2VsZk1hbmFnZWRNZW1vcnlTdHJhdGVneSBpbXBsZW1lbnRzIElNZW1vcnlTdHJhdGVneSB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHN0cmF0ZWd5VHlwZTogTWVtb3J5U3RyYXRlZ3lUeXBlO1xuICAvKipcbiAgICogSW52b2NhdGlvbiBjb25maWd1cmF0aW9uIGZvciBzZWxmIG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW52b2NhdGlvbkNvbmZpZ3VyYXRpb246IEludm9jYXRpb25Db25maWd1cmF0aW9uO1xuICAvKipcbiAgICogVHJpZ2dlciBjb25kaXRpb25zIGZvciBzZWxmIG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHJpZ2dlckNvbmRpdGlvbnM6IFRyaWdnZXJDb25kaXRpb25zO1xuICAvKipcbiAgICogSGlzdG9yaWNhbCBjb250ZXh0IHdpbmRvdyBzaXplIGZvciBzZWxmIG1hbmFnZWQgbWVtb3J5IHN0cmF0ZWd5XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3Ioc3RyYXRlZ3lUeXBlOiBNZW1vcnlTdHJhdGVneVR5cGUsIHByb3BzOiBTZWxmTWFuYWdlZFN0cmF0ZWd5UHJvcHMpIHtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBwcm9wcy5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLnN0cmF0ZWd5VHlwZSA9IHN0cmF0ZWd5VHlwZTtcbiAgICB0aGlzLmludm9jYXRpb25Db25maWd1cmF0aW9uID0gcHJvcHMuaW52b2NhdGlvbkNvbmZpZ3VyYXRpb247XG4gICAgdGhpcy50cmlnZ2VyQ29uZGl0aW9ucyA9IHtcbiAgICAgIG1lc3NhZ2VCYXNlZFRyaWdnZXI6IHByb3BzLnRyaWdnZXJDb25kaXRpb25zPy5tZXNzYWdlQmFzZWRUcmlnZ2VyID8/IERFRkFVTFRfTUVTU0FHRV9CQVNFRF9UUklHR0VSLFxuICAgICAgdGltZUJhc2VkVHJpZ2dlcjogcHJvcHMudHJpZ2dlckNvbmRpdGlvbnM/LnRpbWVCYXNlZFRyaWdnZXIgPz8gREVGQVVMVF9USU1FX0JBU0VEX1RSSUdHRVIsXG4gICAgICB0b2tlbkJhc2VkVHJpZ2dlcjogcHJvcHMudHJpZ2dlckNvbmRpdGlvbnM/LnRva2VuQmFzZWRUcmlnZ2VyID8/IERFRkFVTFRfVE9LRU5fQkFTRURfVFJJR0dFUixcbiAgICB9O1xuICAgIHRoaXMuaGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplID0gcHJvcHMuaGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplID8/IERFRkFVTFRfSElTVE9SSUNBTF9DT05URVhUX1dJTkRPV19TSVpFO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gVmFsaWRhdGlvbnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICB0aHJvd0lmSW52YWxpZCh0aGlzLl92YWxpZGF0ZU1lbW9yeVN0cmF0ZWd5TmFtZSwgdGhpcy5uYW1lKTtcbiAgICB0aHJvd0lmSW52YWxpZCh0aGlzLl92YWxpZGF0ZUhpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZSwgdGhpcy5oaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemUpO1xuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlVHJpZ2dlckNvbmRpdGlvbnMsIHRoaXMudHJpZ2dlckNvbmRpdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHJlbmRlcigpOiBiZWRyb2NrYWdlbnRjb3JlLkNmbk1lbW9yeS5NZW1vcnlTdHJhdGVneVByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tTWVtb3J5U3RyYXRlZ3k6IHtcbiAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgICAgdHlwZTogdGhpcy5zdHJhdGVneVR5cGUsXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBzZWxmTWFuYWdlZENvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgIGhpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZTogdGhpcy5oaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemUsXG4gICAgICAgICAgICBpbnZvY2F0aW9uQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICB0b3BpY0FybjogdGhpcy5pbnZvY2F0aW9uQ29uZmlndXJhdGlvbi50b3BpYy50b3BpY0FybixcbiAgICAgICAgICAgICAgcGF5bG9hZERlbGl2ZXJ5QnVja2V0TmFtZTogdGhpcy5pbnZvY2F0aW9uQ29uZmlndXJhdGlvbi5zM0xvY2F0aW9uLmJ1Y2tldE5hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHJpZ2dlckNvbmRpdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VCYXNlZFRyaWdnZXI6IHtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2VDb3VudDogdGhpcy50cmlnZ2VyQ29uZGl0aW9ucy5tZXNzYWdlQmFzZWRUcmlnZ2VyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aW1lQmFzZWRUcmlnZ2VyOiB7XG4gICAgICAgICAgICAgICAgICBpZGxlU2Vzc2lvblRpbWVvdXQ6IHRoaXMudHJpZ2dlckNvbmRpdGlvbnMudGltZUJhc2VkVHJpZ2dlcj8udG9TZWNvbmRzKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRva2VuQmFzZWRUcmlnZ2VyOiB7XG4gICAgICAgICAgICAgICAgICB0b2tlbkNvdW50OiB0aGlzLnRyaWdnZXJDb25kaXRpb25zLnRva2VuQmFzZWRUcmlnZ2VyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0gYXMgYW55OyAvLyBUeXBlIGFzc2VydGlvbiB0byB3b3JrIGFyb3VuZCBDbG91ZEZvcm1hdGlvbiB0eXBlIGxpbWl0YXRpb25zXG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHRoZSBuZWNlc3NhcnkgcGVybWlzc2lvbnMgdG8gdGhlIHJvbGVcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgZ3JhbnRlZSB0byBncmFudCBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcmV0dXJucyBUaGUgR3JhbnQgb2JqZWN0IGZvciBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHwgdW5kZWZpbmVkIHtcbiAgICAvLyBubyBleGlzdGluZyBncmFudCBtZXRob2QgdGhhdCBwcm92aWRlcyBib3RoIHJlcXVpcmVkIHNucyBhY3Rpb25zXG4gICAgY29uc3QgZ3JhbnQxID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbJ3NuczpHZXRUb3BpY0F0dHJpYnV0ZXMnLCAnc25zOlB1Ymxpc2gnXSxcbiAgICAgIHJlc291cmNlQXJuczogW1xuICAgICAgICB0aGlzLmludm9jYXRpb25Db25maWd1cmF0aW9uLnRvcGljLnRvcGljQXJuLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGxldCBncmFudDI6IGlhbS5HcmFudCB8IHVuZGVmaW5lZDtcblxuICAgIC8vIHdlIGRvbid0IGhhdmUgdGhlIHNjb3BlIGhlcmUsIHNvIHdlIGFkZCBtYW51YWxseSB0aGUgcGVybWlzc2lvbnMgdG8gdGhlIHJvbGUgcG9saWN5XG4gICAgaWYgKHRoaXMuaW52b2NhdGlvbkNvbmZpZ3VyYXRpb24/LnMzTG9jYXRpb24pIHtcbiAgICAgIC8vIEdyYW50IFMzIHBlcm1pc3Npb25zIGZvciB0aGUgc3BlY2lmaWVkIGxvY2F0aW9uXG4gICAgICBncmFudDIgPSBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgICBncmFudGVlOiBncmFudGVlLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ3MzOkdldEJ1Y2tldExvY2F0aW9uJyxcbiAgICAgICAgICAnczM6UHV0T2JqZWN0JyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VBcm5zOiBbXG4gICAgICAgICAgYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpzMzo6OiR7dGhpcy5pbnZvY2F0aW9uQ29uZmlndXJhdGlvbi5zM0xvY2F0aW9uLmJ1Y2tldE5hbWV9YCxcbiAgICAgICAgICBgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OnMzOjo6JHt0aGlzLmludm9jYXRpb25Db25maWd1cmF0aW9uLnMzTG9jYXRpb24uYnVja2V0TmFtZX0vKmAsXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JhbnQxICYmIGdyYW50MiA/IGdyYW50MS5jb21iaW5lKGdyYW50MikgOiBncmFudDEgfHwgZ3JhbnQyO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFZBTElEQVRPUlNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIG1lbW9yeSBzdHJhdGVneSBuYW1lXG4gICAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlTWVtb3J5U3RyYXRlZ3lOYW1lID0gKG5hbWU6IHN0cmluZywgc2NvcGU/OiBJQ29uc3RydWN0KTogc3RyaW5nW10gPT4ge1xuICAgIGxldCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoKHtcbiAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgZmllbGROYW1lOiAnTWVtb3J5IG5hbWUnLFxuICAgICAgbWluTGVuZ3RoOiBNRU1PUllfTkFNRV9NSU5fTEVOR1RILFxuICAgICAgbWF4TGVuZ3RoOiBNRU1PUllfTkFNRV9NQVhfTEVOR1RILFxuICAgIH0sIHNjb3BlKSk7XG5cbiAgICAvLyBDaGVjayBpZiBuYW1lIG1hdGNoZXMgdGhlIEFXUyBBUEkgcGF0dGVybjogW2EtekEtWl1bYS16QS1aMC05X117MCw0N31cbiAgICAvLyBNdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIsIGZvbGxvd2VkIGJ5IHVwIHRvIDQ3IGxldHRlcnMsIG51bWJlcnMsIG9yIHVuZGVyc2NvcmVzXG4gICAgY29uc3QgdmFsaWROYW1lUGF0dGVybiA9IC9eW2EtekEtWl1bYS16QS1aMC05X117MCw0N30kLztcbiAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZUZpZWxkUGF0dGVybihuYW1lLCAnTWVtb3J5IG5hbWUnLCB2YWxpZE5hbWVQYXR0ZXJuLCB1bmRlZmluZWQsIHNjb3BlKSk7XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGhpc3RvcmljYWwgY29udGV4dCB3aW5kb3cgc2l6ZVxuICAgKiBAcGFyYW0gaGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplIC0gVGhlIGhpc3RvcmljYWwgY29udGV4dCB3aW5kb3cgc2l6ZSB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBlbXB0eSBpZiB2YWxpZFxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGVIaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemUgPSAoaGlzdG9yaWNhbENvbnRleHRXaW5kb3dTaXplOiBudW1iZXIpOiBzdHJpbmdbXSA9PiB7XG4gICAgbGV0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmIChoaXN0b3JpY2FsQ29udGV4dFdpbmRvd1NpemUgPCBISVNUT1JJQ0FMX0NPTlRFWFRfV0lORE9XX1NJWkVfTUlOXG4gICAgICAgIHx8IGhpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZSA+IEhJU1RPUklDQUxfQ09OVEVYVF9XSU5ET1dfU0laRV9NQVgpIHtcbiAgICAgIGVycm9ycy5wdXNoKGBIaXN0b3JpY2FsIGNvbnRleHQgd2luZG93IHNpemUgbXVzdCBiZSBiZXR3ZWVuICR7SElTVE9SSUNBTF9DT05URVhUX1dJTkRPV19TSVpFX01JTn0gYW5kICR7SElTVE9SSUNBTF9DT05URVhUX1dJTkRPV19TSVpFX01BWH0sIGdvdCAke2hpc3RvcmljYWxDb250ZXh0V2luZG93U2l6ZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHRyaWdnZXIgY29uZGl0aW9uc1xuICAgKiBAcGFyYW0gdHJpZ2dlckNvbmRpdGlvbnMgLSBUaGUgdHJpZ2dlciBjb25kaXRpb25zIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZVRyaWdnZXJDb25kaXRpb25zID0gKHRyaWdnZXJDb25kaXRpb25zOiBUcmlnZ2VyQ29uZGl0aW9ucyk6IHN0cmluZ1tdID0+IHtcbiAgICBsZXQgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLy8gVmFsaWRhdGUgbWVzc2FnZS1iYXNlZCB0cmlnZ2VyXG4gICAgaWYgKHRyaWdnZXJDb25kaXRpb25zLm1lc3NhZ2VCYXNlZFRyaWdnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRyaWdnZXJDb25kaXRpb25zLm1lc3NhZ2VCYXNlZFRyaWdnZXIgPCBNRVNTQUdFX0JBU0VEX1RSSUdHRVJfTUlOXG4gICAgICAgIHx8IHRyaWdnZXJDb25kaXRpb25zLm1lc3NhZ2VCYXNlZFRyaWdnZXIgPiBNRVNTQUdFX0JBU0VEX1RSSUdHRVJfTUFYKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKGBNZXNzYWdlLWJhc2VkIHRyaWdnZXIgbXVzdCBiZSBiZXR3ZWVuICR7TUVTU0FHRV9CQVNFRF9UUklHR0VSX01JTn0gYW5kICR7TUVTU0FHRV9CQVNFRF9UUklHR0VSX01BWH0sIGdvdCAke3RyaWdnZXJDb25kaXRpb25zLm1lc3NhZ2VCYXNlZFRyaWdnZXJ9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgdGltZS1iYXNlZCB0cmlnZ2VyXG4gICAgaWYgKHRyaWdnZXJDb25kaXRpb25zLnRpbWVCYXNlZFRyaWdnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qgc2Vjb25kcyA9IHRyaWdnZXJDb25kaXRpb25zLnRpbWVCYXNlZFRyaWdnZXIudG9TZWNvbmRzKCk7XG4gICAgICBpZiAoc2Vjb25kcyA8IFRJTUVfQkFTRURfVFJJR0dFUl9NSU4gfHwgc2Vjb25kcyA+IFRJTUVfQkFTRURfVFJJR0dFUl9NQVgpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goYFRpbWUtYmFzZWQgdHJpZ2dlciBtdXN0IGJlIGJldHdlZW4gJHtUSU1FX0JBU0VEX1RSSUdHRVJfTUlOfSBhbmQgJHtUSU1FX0JBU0VEX1RSSUdHRVJfTUFYfSBzZWNvbmRzLCBnb3QgJHtzZWNvbmRzfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIHRva2VuLWJhc2VkIHRyaWdnZXJcbiAgICBpZiAodHJpZ2dlckNvbmRpdGlvbnMudG9rZW5CYXNlZFRyaWdnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRyaWdnZXJDb25kaXRpb25zLnRva2VuQmFzZWRUcmlnZ2VyIDwgVE9LRU5fQkFTRURfVFJJR0dFUl9NSU4gfHwgdHJpZ2dlckNvbmRpdGlvbnMudG9rZW5CYXNlZFRyaWdnZXIgPiBUT0tFTl9CQVNFRF9UUklHR0VSX01BWCkge1xuICAgICAgICBlcnJvcnMucHVzaChgVG9rZW4tYmFzZWQgdHJpZ2dlciBtdXN0IGJlIGJldHdlZW4gJHtUT0tFTl9CQVNFRF9UUklHR0VSX01JTn0gYW5kICR7VE9LRU5fQkFTRURfVFJJR0dFUl9NQVh9LCBnb3QgJHt0cmlnZ2VyQ29uZGl0aW9ucy50b2tlbkJhc2VkVHJpZ2dlcn1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
5
|
+
* with the License. A copy of the License is located at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
10
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
11
|
+
* and limitations under the License.
|
|
12
|
+
*/
|
|
13
|
+
import { IConstruct } from 'constructs';
|
|
14
|
+
interface IntervalValidation {
|
|
15
|
+
fieldName: string;
|
|
16
|
+
minLength: number;
|
|
17
|
+
maxLength: number;
|
|
18
|
+
}
|
|
19
|
+
interface StringLengthValidation extends IntervalValidation {
|
|
20
|
+
value: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Validates the length of a string field against minimum and maximum constraints.
|
|
24
|
+
* @param params - Validation parameters including value, fieldName, minLength, and maxLength
|
|
25
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
26
|
+
* @returns Array of validation error messages, empty if valid
|
|
27
|
+
*/
|
|
28
|
+
export declare function validateStringFieldLength(params: StringLengthValidation, _scope?: IConstruct): string[];
|
|
29
|
+
/**
|
|
30
|
+
* Validates a string field against a regex pattern.
|
|
31
|
+
* @param value - The string value to validate
|
|
32
|
+
* @param fieldName - Name of the field being validated (for error messages)
|
|
33
|
+
* @param pattern - Regular expression pattern to test against
|
|
34
|
+
* @param customMessage - Optional custom error message
|
|
35
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
36
|
+
* @returns Array of validation error messages, empty if valid
|
|
37
|
+
*/
|
|
38
|
+
export declare function validateFieldPattern(value: string, fieldName: string, pattern: RegExp, customMessage?: string, _scope?: IConstruct): string[];
|
|
39
|
+
export type ValidationFn<T> = (param: T, scope?: IConstruct) => string[];
|
|
40
|
+
export declare function throwIfInvalid<T>(validationFn: ValidationFn<T>, param: T, scope?: IConstruct): T;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
6
|
+
* with the License. A copy of the License is located at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
11
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
12
|
+
* and limitations under the License.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.validateStringFieldLength = validateStringFieldLength;
|
|
16
|
+
exports.validateFieldPattern = validateFieldPattern;
|
|
17
|
+
exports.throwIfInvalid = throwIfInvalid;
|
|
18
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
19
|
+
const errors_1 = require("aws-cdk-lib/core/lib/errors");
|
|
20
|
+
/**
|
|
21
|
+
* Validates the length of a string field against minimum and maximum constraints.
|
|
22
|
+
* @param params - Validation parameters including value, fieldName, minLength, and maxLength
|
|
23
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
24
|
+
* @returns Array of validation error messages, empty if valid
|
|
25
|
+
*/
|
|
26
|
+
function validateStringFieldLength(params, _scope) {
|
|
27
|
+
const errors = [];
|
|
28
|
+
// Handle null/undefined values
|
|
29
|
+
if (params.value == null) {
|
|
30
|
+
return errors; // Skip validation for null/undefined values
|
|
31
|
+
}
|
|
32
|
+
const currentLength = params.value.length;
|
|
33
|
+
// Evaluate only if it is not an unresolved Token
|
|
34
|
+
if (!aws_cdk_lib_1.Token.isUnresolved(params.fieldName)) {
|
|
35
|
+
if (params.value.length > params.maxLength) {
|
|
36
|
+
errors.push(`The field ${params.fieldName} is ${currentLength} characters long but must be less than or equal to ${params.maxLength} characters`);
|
|
37
|
+
}
|
|
38
|
+
if (params.value.length < params.minLength) {
|
|
39
|
+
errors.push(`The field ${params.fieldName} is ${currentLength} characters long but must be at least ${params.minLength} characters`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return errors;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Validates a string field against a regex pattern.
|
|
46
|
+
* @param value - The string value to validate
|
|
47
|
+
* @param fieldName - Name of the field being validated (for error messages)
|
|
48
|
+
* @param pattern - Regular expression pattern to test against
|
|
49
|
+
* @param customMessage - Optional custom error message
|
|
50
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
51
|
+
* @returns Array of validation error messages, empty if valid
|
|
52
|
+
*/
|
|
53
|
+
function validateFieldPattern(value, fieldName, pattern, customMessage, _scope) {
|
|
54
|
+
const errors = [];
|
|
55
|
+
// Handle null/undefined values
|
|
56
|
+
if (value == null) {
|
|
57
|
+
return errors; // Skip validation for null/undefined values
|
|
58
|
+
}
|
|
59
|
+
// Evaluate only if it is not an unresolved Token
|
|
60
|
+
if (!aws_cdk_lib_1.Token.isUnresolved(value)) {
|
|
61
|
+
// Verify type
|
|
62
|
+
if (typeof value !== 'string') {
|
|
63
|
+
errors.push(`Expected string for ${fieldName}, got ${typeof value}`);
|
|
64
|
+
}
|
|
65
|
+
// Validate specified regex
|
|
66
|
+
if (!(pattern instanceof RegExp)) {
|
|
67
|
+
errors.push('Pattern must be a valid regular expression');
|
|
68
|
+
}
|
|
69
|
+
// Pattern validation
|
|
70
|
+
if (!pattern.test(value)) {
|
|
71
|
+
const defaultMessage = `The field ${fieldName} with value "${value}" does not match the required pattern ${pattern}`;
|
|
72
|
+
errors.push(customMessage || defaultMessage);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return errors;
|
|
76
|
+
}
|
|
77
|
+
function throwIfInvalid(validationFn, param, scope) {
|
|
78
|
+
const errors = validationFn(param, scope);
|
|
79
|
+
if (errors.length > 0) {
|
|
80
|
+
if (scope) {
|
|
81
|
+
throw new errors_1.ValidationError(errors.join('\n'), scope);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
throw new errors_1.UnscopedValidationError(errors.join('\n'));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return param;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFsaWRhdGlvbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFxQkgsOERBMEJDO0FBV0Qsb0RBaUNDO0FBSUQsd0NBVUM7QUF2R0QsNkNBQW9DO0FBQ3BDLHdEQUF1RjtBQVl2Rjs7Ozs7R0FLRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLE1BQThCLEVBQUUsTUFBbUI7SUFDM0YsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBRTVCLCtCQUErQjtJQUMvQixJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxNQUFNLENBQUMsQ0FBQyw0Q0FBNEM7SUFDN0QsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBRTFDLGlEQUFpRDtJQUNqRCxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDMUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDM0MsTUFBTSxDQUFDLElBQUksQ0FDVCxhQUFhLE1BQU0sQ0FBQyxTQUFTLE9BQU8sYUFBYSxzREFBc0QsTUFBTSxDQUFDLFNBQVMsYUFBYSxDQUNySSxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQ1QsYUFBYSxNQUFNLENBQUMsU0FBUyxPQUFPLGFBQWEseUNBQXlDLE1BQU0sQ0FBQyxTQUFTLGFBQWEsQ0FDeEgsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQ2xDLEtBQWEsRUFDYixTQUFpQixFQUNqQixPQUFlLEVBQ2YsYUFBc0IsRUFDdEIsTUFBbUI7SUFFbkIsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBRTVCLCtCQUErQjtJQUMvQixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsQixPQUFPLE1BQU0sQ0FBQyxDQUFDLDRDQUE0QztJQUM3RCxDQUFDO0lBRUQsaURBQWlEO0lBQ2pELElBQUksQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9CLGNBQWM7UUFDZCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLFNBQVMsU0FBUyxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUNELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsQ0FBQyxPQUFPLFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sY0FBYyxHQUFHLGFBQWEsU0FBUyxnQkFBZ0IsS0FBSyx5Q0FBeUMsT0FBTyxFQUFFLENBQUM7WUFDckgsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksY0FBYyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBSUQsU0FBZ0IsY0FBYyxDQUFJLFlBQTZCLEVBQUUsS0FBUSxFQUFFLEtBQWtCO0lBQzNGLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksd0JBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLGdDQUF1QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yLCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2Vycm9ycyc7XG5pbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbnRlcmZhY2UgSW50ZXJ2YWxWYWxpZGF0aW9uIHtcbiAgZmllbGROYW1lOiBzdHJpbmc7XG4gIG1pbkxlbmd0aDogbnVtYmVyO1xuICBtYXhMZW5ndGg6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFN0cmluZ0xlbmd0aFZhbGlkYXRpb24gZXh0ZW5kcyBJbnRlcnZhbFZhbGlkYXRpb24ge1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgbGVuZ3RoIG9mIGEgc3RyaW5nIGZpZWxkIGFnYWluc3QgbWluaW11bSBhbmQgbWF4aW11bSBjb25zdHJhaW50cy5cbiAqIEBwYXJhbSBwYXJhbXMgLSBWYWxpZGF0aW9uIHBhcmFtZXRlcnMgaW5jbHVkaW5nIHZhbHVlLCBmaWVsZE5hbWUsIG1pbkxlbmd0aCwgYW5kIG1heExlbmd0aFxuICogQHBhcmFtIHNjb3BlIC0gVGhlIGNvbnN0cnVjdCBzY29wZSBmb3IgZXJyb3IgcmVwb3J0aW5nIChvcHRpb25hbClcbiAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoKHBhcmFtczogU3RyaW5nTGVuZ3RoVmFsaWRhdGlvbiwgX3Njb3BlPzogSUNvbnN0cnVjdCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIEhhbmRsZSBudWxsL3VuZGVmaW5lZCB2YWx1ZXNcbiAgaWYgKHBhcmFtcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGVycm9yczsgLy8gU2tpcCB2YWxpZGF0aW9uIGZvciBudWxsL3VuZGVmaW5lZCB2YWx1ZXNcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRMZW5ndGggPSBwYXJhbXMudmFsdWUubGVuZ3RoO1xuXG4gIC8vIEV2YWx1YXRlIG9ubHkgaWYgaXQgaXMgbm90IGFuIHVucmVzb2x2ZWQgVG9rZW5cbiAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQocGFyYW1zLmZpZWxkTmFtZSkpIHtcbiAgICBpZiAocGFyYW1zLnZhbHVlLmxlbmd0aCA+IHBhcmFtcy5tYXhMZW5ndGgpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICBgVGhlIGZpZWxkICR7cGFyYW1zLmZpZWxkTmFtZX0gaXMgJHtjdXJyZW50TGVuZ3RofSBjaGFyYWN0ZXJzIGxvbmcgYnV0IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICR7cGFyYW1zLm1heExlbmd0aH0gY2hhcmFjdGVyc2AsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMudmFsdWUubGVuZ3RoIDwgcGFyYW1zLm1pbkxlbmd0aCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGBUaGUgZmllbGQgJHtwYXJhbXMuZmllbGROYW1lfSBpcyAke2N1cnJlbnRMZW5ndGh9IGNoYXJhY3RlcnMgbG9uZyBidXQgbXVzdCBiZSBhdCBsZWFzdCAke3BhcmFtcy5taW5MZW5ndGh9IGNoYXJhY3RlcnNgLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXJyb3JzO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyBhIHN0cmluZyBmaWVsZCBhZ2FpbnN0IGEgcmVnZXggcGF0dGVybi5cbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBzdHJpbmcgdmFsdWUgdG8gdmFsaWRhdGVcbiAqIEBwYXJhbSBmaWVsZE5hbWUgLSBOYW1lIG9mIHRoZSBmaWVsZCBiZWluZyB2YWxpZGF0ZWQgKGZvciBlcnJvciBtZXNzYWdlcylcbiAqIEBwYXJhbSBwYXR0ZXJuIC0gUmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gdG8gdGVzdCBhZ2FpbnN0XG4gKiBAcGFyYW0gY3VzdG9tTWVzc2FnZSAtIE9wdGlvbmFsIGN1c3RvbSBlcnJvciBtZXNzYWdlXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHNjb3BlIGZvciBlcnJvciByZXBvcnRpbmcgKG9wdGlvbmFsKVxuICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRmllbGRQYXR0ZXJuKFxuICB2YWx1ZTogc3RyaW5nLFxuICBmaWVsZE5hbWU6IHN0cmluZyxcbiAgcGF0dGVybjogUmVnRXhwLFxuICBjdXN0b21NZXNzYWdlPzogc3RyaW5nLFxuICBfc2NvcGU/OiBJQ29uc3RydWN0LFxuKTogc3RyaW5nW10ge1xuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gSGFuZGxlIG51bGwvdW5kZWZpbmVkIHZhbHVlc1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiBlcnJvcnM7IC8vIFNraXAgdmFsaWRhdGlvbiBmb3IgbnVsbC91bmRlZmluZWQgdmFsdWVzXG4gIH1cblxuICAvLyBFdmFsdWF0ZSBvbmx5IGlmIGl0IGlzIG5vdCBhbiB1bnJlc29sdmVkIFRva2VuXG4gIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKHZhbHVlKSkge1xuICAgIC8vIFZlcmlmeSB0eXBlXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGVycm9ycy5wdXNoKGBFeHBlY3RlZCBzdHJpbmcgZm9yICR7ZmllbGROYW1lfSwgZ290ICR7dHlwZW9mIHZhbHVlfWApO1xuICAgIH1cbiAgICAvLyBWYWxpZGF0ZSBzcGVjaWZpZWQgcmVnZXhcbiAgICBpZiAoIShwYXR0ZXJuIGluc3RhbmNlb2YgUmVnRXhwKSkge1xuICAgICAgZXJyb3JzLnB1c2goJ1BhdHRlcm4gbXVzdCBiZSBhIHZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbicpO1xuICAgIH1cblxuICAgIC8vIFBhdHRlcm4gdmFsaWRhdGlvblxuICAgIGlmICghcGF0dGVybi50ZXN0KHZhbHVlKSkge1xuICAgICAgY29uc3QgZGVmYXVsdE1lc3NhZ2UgPSBgVGhlIGZpZWxkICR7ZmllbGROYW1lfSB3aXRoIHZhbHVlIFwiJHt2YWx1ZX1cIiBkb2VzIG5vdCBtYXRjaCB0aGUgcmVxdWlyZWQgcGF0dGVybiAke3BhdHRlcm59YDtcbiAgICAgIGVycm9ycy5wdXNoKGN1c3RvbU1lc3NhZ2UgfHwgZGVmYXVsdE1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJvcnM7XG59XG5cbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25GbjxUPiA9IChwYXJhbTogVCwgc2NvcGU/OiBJQ29uc3RydWN0KSA9PiBzdHJpbmdbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93SWZJbnZhbGlkPFQ+KHZhbGlkYXRpb25GbjogVmFsaWRhdGlvbkZuPFQ+LCBwYXJhbTogVCwgc2NvcGU/OiBJQ29uc3RydWN0KTogVCB7XG4gIGNvbnN0IGVycm9ycyA9IHZhbGlkYXRpb25GbihwYXJhbSwgc2NvcGUpO1xuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICBpZiAoc2NvcGUpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoZXJyb3JzLmpvaW4oJ1xcbicpLCBzY29wZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihlcnJvcnMuam9pbignXFxuJykpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcGFyYW07XG59XG4iXX0=
|
|
@@ -9,7 +9,7 @@ const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
|
9
9
|
* Abstract base class for network configuration.
|
|
10
10
|
*/
|
|
11
11
|
class NetworkConfiguration {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration", version: "2.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration", version: "2.223.0-alpha.0" };
|
|
13
13
|
/**
|
|
14
14
|
* The network mode to use.
|
|
15
15
|
* Configure the security level for agent
|
|
@@ -88,7 +88,7 @@ exports.NetworkConfiguration = NetworkConfiguration;
|
|
|
88
88
|
* Network configuration for the Browser tool.
|
|
89
89
|
*/
|
|
90
90
|
class BrowserNetworkConfiguration extends NetworkConfiguration {
|
|
91
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration", version: "2.
|
|
91
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration", version: "2.223.0-alpha.0" };
|
|
92
92
|
/**
|
|
93
93
|
* Creates a public network configuration. PUBLIC is the default network mode.
|
|
94
94
|
* @returns A BrowserNetworkConfiguration.
|
|
@@ -134,7 +134,7 @@ exports.BrowserNetworkConfiguration = BrowserNetworkConfiguration;
|
|
|
134
134
|
* Network configuration for the Code Interpreter tool.
|
|
135
135
|
*/
|
|
136
136
|
class CodeInterpreterNetworkConfiguration extends NetworkConfiguration {
|
|
137
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration", version: "2.
|
|
137
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration", version: "2.223.0-alpha.0" };
|
|
138
138
|
/**
|
|
139
139
|
* Creates a public network configuration.
|
|
140
140
|
* @returns A CodeInterpreterNetworkConfiguration.
|
|
@@ -188,7 +188,7 @@ exports.CodeInterpreterNetworkConfiguration = CodeInterpreterNetworkConfiguratio
|
|
|
188
188
|
* Network configuration for the Runtime.
|
|
189
189
|
*/
|
|
190
190
|
class RuntimeNetworkConfiguration extends NetworkConfiguration {
|
|
191
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration", version: "2.
|
|
191
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration", version: "2.223.0-alpha.0" };
|
|
192
192
|
/**
|
|
193
193
|
* Creates a public network configuration. PUBLIC is the default network mode.
|
|
194
194
|
* @returns A RuntimeNetworkConfiguration.
|
|
@@ -10,7 +10,7 @@ const validation_helpers_1 = require("./validation-helpers");
|
|
|
10
10
|
* Provides methods to reference container images from ECR repositories or local assets.
|
|
11
11
|
*/
|
|
12
12
|
class AgentRuntimeArtifact {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact", version: "2.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact", version: "2.223.0-alpha.0" };
|
|
14
14
|
/**
|
|
15
15
|
* Reference an image in an ECR repository
|
|
16
16
|
*/
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* and limitations under the License.
|
|
12
12
|
*/
|
|
13
13
|
import { CfnRuntime } from 'aws-cdk-lib/aws-bedrockagentcore';
|
|
14
|
+
import { IUserPool, IUserPoolClient } from 'aws-cdk-lib/aws-cognito';
|
|
14
15
|
/**
|
|
15
16
|
* Abstract base class for runtime authorizer configurations.
|
|
16
17
|
* Provides static factory methods to create different authentication types.
|
|
@@ -37,13 +38,12 @@ export declare abstract class RuntimeAuthorizerConfiguration {
|
|
|
37
38
|
* Use AWS Cognito User Pool authentication.
|
|
38
39
|
* Validates Cognito-issued JWT tokens.
|
|
39
40
|
*
|
|
40
|
-
* @param
|
|
41
|
-
* @param
|
|
42
|
-
* @param region Optional AWS region where the User Pool is located (defaults to stack region)
|
|
41
|
+
* @param userPool The Cognito User Pool
|
|
42
|
+
* @param userPoolClient The Cognito User Pool App Clients
|
|
43
43
|
* @param allowedAudience Optional array of allowed audiences
|
|
44
44
|
* @returns RuntimeAuthorizerConfiguration for Cognito authentication
|
|
45
45
|
*/
|
|
46
|
-
static usingCognito(
|
|
46
|
+
static usingCognito(userPool: IUserPool, userPoolClients: IUserPoolClient[], allowedAudience?: string[]): RuntimeAuthorizerConfiguration;
|
|
47
47
|
/**
|
|
48
48
|
* Use OAuth 2.0 authentication.
|
|
49
49
|
* Supports various OAuth providers.
|