@aws-cdk/aws-bedrock-agentcore-alpha 2.250.0-alpha.0 → 2.252.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 +11883 -7285
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +4 -0
- package/README.md +405 -0
- package/lib/gateway/gateway-base.js +1 -1
- package/lib/gateway/gateway.d.ts +58 -0
- package/lib/gateway/gateway.js +46 -3
- package/lib/gateway/inbound-auth/authorizer.d.ts +27 -1
- package/lib/gateway/inbound-auth/authorizer.js +37 -5
- package/lib/gateway/inbound-auth/custom-claim.js +1 -1
- package/lib/gateway/interceptor.js +1 -1
- package/lib/gateway/outbound-auth/api-key.js +1 -1
- package/lib/gateway/outbound-auth/credential-provider.js +1 -1
- package/lib/gateway/protocol.js +2 -2
- package/lib/gateway/targets/schema/api-schema.js +4 -4
- package/lib/gateway/targets/schema/tool-schema.js +4 -4
- package/lib/gateway/targets/target-base.js +1 -1
- package/lib/gateway/targets/target-configuration.js +6 -6
- package/lib/gateway/targets/target.js +1 -1
- package/lib/index.d.ts +8 -0
- package/lib/index.js +13 -1
- package/lib/memory/memory-strategy.js +1 -1
- package/lib/memory/memory.js +2 -2
- package/lib/memory/strategies/managed-strategy.js +1 -1
- package/lib/memory/strategies/self-managed-strategy.js +1 -1
- package/lib/network/network-configuration.js +4 -4
- package/lib/policy/perms.d.ts +50 -0
- package/lib/policy/perms.js +62 -0
- package/lib/policy/policy-base.d.ts +194 -0
- package/lib/policy/policy-base.js +120 -0
- package/lib/policy/policy-engine-base.d.ts +260 -0
- package/lib/policy/policy-engine-base.js +193 -0
- package/lib/policy/policy-engine.d.ts +150 -0
- package/lib/policy/policy-engine.js +290 -0
- package/lib/policy/policy-statement.d.ts +518 -0
- package/lib/policy/policy-statement.js +927 -0
- package/lib/policy/policy-types.d.ts +66 -0
- package/lib/policy/policy-types.js +30 -0
- package/lib/policy/policy.d.ts +127 -0
- package/lib/policy/policy.js +225 -0
- package/lib/policy/validation-helpers.d.ts +139 -0
- package/lib/policy/validation-helpers.js +276 -0
- package/lib/runtime/inbound-auth/custom-claim.js +1 -1
- package/lib/runtime/inbound-auth/runtime-authorizer-configuration.js +1 -1
- package/lib/runtime/observability.d.ts +105 -0
- package/lib/runtime/observability.js +317 -0
- package/lib/runtime/runtime-artifact.js +1 -1
- package/lib/runtime/runtime-base.js +1 -1
- package/lib/runtime/runtime-endpoint-base.js +1 -1
- package/lib/runtime/runtime-endpoint.js +1 -1
- package/lib/runtime/runtime.d.ts +17 -0
- package/lib/runtime/runtime.js +10 -2
- package/lib/tools/browser.js +2 -2
- package/lib/tools/code-interpreter.js +2 -2
- package/package.json +9 -9
- package/rosetta/default.ts-fixture +2 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TAG_VALUE_PATTERN = exports.TAG_KEY_PATTERN = exports.TAG_VALUE_MAX_LENGTH = exports.TAG_KEY_MAX_LENGTH = exports.TAG_KEY_MIN_LENGTH = exports.MAX_TAGS = exports.DESCRIPTION_MAX_LENGTH = exports.POLICY_DEFINITION_MAX_LENGTH = exports.POLICY_DEFINITION_MIN_LENGTH = exports.POLICY_NAME_PATTERN = exports.POLICY_NAME_MAX_LENGTH = exports.POLICY_NAME_MIN_LENGTH = exports.POLICY_ENGINE_NAME_PATTERN = exports.POLICY_ENGINE_NAME_MAX_LENGTH = exports.POLICY_ENGINE_NAME_MIN_LENGTH = void 0;
|
|
4
|
+
exports.validatePolicyEngineName = validatePolicyEngineName;
|
|
5
|
+
exports.validatePolicyName = validatePolicyName;
|
|
6
|
+
exports.validatePolicyDefinition = validatePolicyDefinition;
|
|
7
|
+
exports.validateDescription = validateDescription;
|
|
8
|
+
exports.throwIfInvalidPolicyEngineName = throwIfInvalidPolicyEngineName;
|
|
9
|
+
exports.throwIfInvalidPolicyName = throwIfInvalidPolicyName;
|
|
10
|
+
exports.throwIfInvalidPolicyDefinition = throwIfInvalidPolicyDefinition;
|
|
11
|
+
exports.throwIfInvalidDescription = throwIfInvalidDescription;
|
|
12
|
+
exports.validateTags = validateTags;
|
|
13
|
+
exports.throwIfInvalidTags = throwIfInvalidTags;
|
|
14
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
15
|
+
const validation_helpers_1 = require("../memory/validation-helpers");
|
|
16
|
+
/**
|
|
17
|
+
* Validation constants for PolicyEngine
|
|
18
|
+
*/
|
|
19
|
+
exports.POLICY_ENGINE_NAME_MIN_LENGTH = 1;
|
|
20
|
+
exports.POLICY_ENGINE_NAME_MAX_LENGTH = 48;
|
|
21
|
+
exports.POLICY_ENGINE_NAME_PATTERN = /^[A-Za-z][A-Za-z0-9_]*$/;
|
|
22
|
+
/**
|
|
23
|
+
* Validation constants for Policy
|
|
24
|
+
*/
|
|
25
|
+
exports.POLICY_NAME_MIN_LENGTH = 1;
|
|
26
|
+
exports.POLICY_NAME_MAX_LENGTH = 48;
|
|
27
|
+
exports.POLICY_NAME_PATTERN = /^[A-Za-z][A-Za-z0-9_]*$/;
|
|
28
|
+
/**
|
|
29
|
+
* Validation constants for Cedar policy definitions
|
|
30
|
+
*/
|
|
31
|
+
exports.POLICY_DEFINITION_MIN_LENGTH = 35;
|
|
32
|
+
exports.POLICY_DEFINITION_MAX_LENGTH = 153600;
|
|
33
|
+
/**
|
|
34
|
+
* Validation constants for descriptions
|
|
35
|
+
*/
|
|
36
|
+
exports.DESCRIPTION_MAX_LENGTH = 4096;
|
|
37
|
+
/**
|
|
38
|
+
* Validation constants for tags
|
|
39
|
+
*/
|
|
40
|
+
exports.MAX_TAGS = 50;
|
|
41
|
+
exports.TAG_KEY_MIN_LENGTH = 1;
|
|
42
|
+
exports.TAG_KEY_MAX_LENGTH = 128;
|
|
43
|
+
exports.TAG_VALUE_MAX_LENGTH = 256;
|
|
44
|
+
exports.TAG_KEY_PATTERN = /^[a-zA-Z0-9\s._:/=+@-]+$/;
|
|
45
|
+
exports.TAG_VALUE_PATTERN = /^[a-zA-Z0-9\s._:/=+@-]*$/;
|
|
46
|
+
/**
|
|
47
|
+
* Validates a policy engine name.
|
|
48
|
+
* Names must:
|
|
49
|
+
* - Start with a letter (a-z, A-Z)
|
|
50
|
+
* - Contain only letters, numbers, and underscores
|
|
51
|
+
* - Be between 1 and 48 characters
|
|
52
|
+
*
|
|
53
|
+
* @param name - The policy engine name to validate
|
|
54
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
55
|
+
* @returns Array of validation error messages, empty if valid
|
|
56
|
+
*/
|
|
57
|
+
function validatePolicyEngineName(name, scope) {
|
|
58
|
+
const errors = [];
|
|
59
|
+
// Handle null/undefined values
|
|
60
|
+
if (name == null) {
|
|
61
|
+
return errors;
|
|
62
|
+
}
|
|
63
|
+
// Skip validation for unresolved tokens (e.g. Lazy.string(), cross-stack refs)
|
|
64
|
+
if (aws_cdk_lib_1.Token.isUnresolved(name)) {
|
|
65
|
+
return errors;
|
|
66
|
+
}
|
|
67
|
+
// Validate length
|
|
68
|
+
errors.push(...(0, validation_helpers_1.validateStringFieldLength)({
|
|
69
|
+
value: name,
|
|
70
|
+
fieldName: 'policyEngineName',
|
|
71
|
+
minLength: exports.POLICY_ENGINE_NAME_MIN_LENGTH,
|
|
72
|
+
maxLength: exports.POLICY_ENGINE_NAME_MAX_LENGTH,
|
|
73
|
+
}, scope));
|
|
74
|
+
// Validate pattern
|
|
75
|
+
errors.push(...(0, validation_helpers_1.validateFieldPattern)(name, 'policyEngineName', exports.POLICY_ENGINE_NAME_PATTERN, `The policy engine name "${name}" must start with a letter and contain only letters, numbers, and underscores`, scope));
|
|
76
|
+
return errors;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Validates a policy name.
|
|
80
|
+
* Names must:
|
|
81
|
+
* - Start with a letter (a-z, A-Z)
|
|
82
|
+
* - Contain only letters, numbers, and underscores
|
|
83
|
+
* - Be between 1 and 48 characters
|
|
84
|
+
*
|
|
85
|
+
* @param name - The policy name to validate
|
|
86
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
87
|
+
* @returns Array of validation error messages, empty if valid
|
|
88
|
+
*/
|
|
89
|
+
function validatePolicyName(name, scope) {
|
|
90
|
+
const errors = [];
|
|
91
|
+
// Handle null/undefined values
|
|
92
|
+
if (name == null) {
|
|
93
|
+
return errors;
|
|
94
|
+
}
|
|
95
|
+
// Skip validation for unresolved tokens (e.g. Lazy.string(), cross-stack refs)
|
|
96
|
+
if (aws_cdk_lib_1.Token.isUnresolved(name)) {
|
|
97
|
+
return errors;
|
|
98
|
+
}
|
|
99
|
+
// Validate length
|
|
100
|
+
errors.push(...(0, validation_helpers_1.validateStringFieldLength)({
|
|
101
|
+
value: name,
|
|
102
|
+
fieldName: 'policyName',
|
|
103
|
+
minLength: exports.POLICY_NAME_MIN_LENGTH,
|
|
104
|
+
maxLength: exports.POLICY_NAME_MAX_LENGTH,
|
|
105
|
+
}, scope));
|
|
106
|
+
// Validate pattern
|
|
107
|
+
errors.push(...(0, validation_helpers_1.validateFieldPattern)(name, 'policyName', exports.POLICY_NAME_PATTERN, `The policy name "${name}" must start with a letter and contain only letters, numbers, and underscores`, scope));
|
|
108
|
+
return errors;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Validates a Cedar policy definition string.
|
|
112
|
+
* Definitions must be between 35 and 153,600 characters.
|
|
113
|
+
*
|
|
114
|
+
* @param definition - The Cedar policy definition to validate
|
|
115
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
116
|
+
* @returns Array of validation error messages, empty if valid
|
|
117
|
+
*/
|
|
118
|
+
function validatePolicyDefinition(definition, scope) {
|
|
119
|
+
const errors = [];
|
|
120
|
+
// Handle null/undefined values
|
|
121
|
+
if (definition == null) {
|
|
122
|
+
errors.push('Policy definition is required and cannot be null or undefined');
|
|
123
|
+
return errors;
|
|
124
|
+
}
|
|
125
|
+
// Skip validation for unresolved tokens (e.g. Lazy.string(), cross-stack refs)
|
|
126
|
+
if (aws_cdk_lib_1.Token.isUnresolved(definition)) {
|
|
127
|
+
return errors;
|
|
128
|
+
}
|
|
129
|
+
// Validate length
|
|
130
|
+
errors.push(...(0, validation_helpers_1.validateStringFieldLength)({
|
|
131
|
+
value: definition,
|
|
132
|
+
fieldName: 'definition',
|
|
133
|
+
minLength: exports.POLICY_DEFINITION_MIN_LENGTH,
|
|
134
|
+
maxLength: exports.POLICY_DEFINITION_MAX_LENGTH,
|
|
135
|
+
}, scope));
|
|
136
|
+
return errors;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Validates a description string.
|
|
140
|
+
* Descriptions must not exceed 4,096 characters.
|
|
141
|
+
*
|
|
142
|
+
* @param description - The description to validate
|
|
143
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
144
|
+
* @returns Array of validation error messages, empty if valid
|
|
145
|
+
*/
|
|
146
|
+
function validateDescription(description, scope) {
|
|
147
|
+
const errors = [];
|
|
148
|
+
// Handle null/undefined values
|
|
149
|
+
if (description == null) {
|
|
150
|
+
return errors;
|
|
151
|
+
}
|
|
152
|
+
// Skip validation for unresolved tokens (e.g. Lazy.string(), cross-stack refs)
|
|
153
|
+
if (aws_cdk_lib_1.Token.isUnresolved(description)) {
|
|
154
|
+
return errors;
|
|
155
|
+
}
|
|
156
|
+
// Validate length (no minimum length requirement)
|
|
157
|
+
errors.push(...(0, validation_helpers_1.validateStringFieldLength)({
|
|
158
|
+
value: description,
|
|
159
|
+
fieldName: 'description',
|
|
160
|
+
minLength: 0,
|
|
161
|
+
maxLength: exports.DESCRIPTION_MAX_LENGTH,
|
|
162
|
+
}, scope));
|
|
163
|
+
return errors;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Validates a policy engine name and throws if invalid.
|
|
167
|
+
*
|
|
168
|
+
* @param name - The policy engine name to validate
|
|
169
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
170
|
+
* @returns The validated name
|
|
171
|
+
* @throws ValidationError if validation fails
|
|
172
|
+
*/
|
|
173
|
+
function throwIfInvalidPolicyEngineName(name, scope) {
|
|
174
|
+
return (0, validation_helpers_1.throwIfInvalid)(validatePolicyEngineName, name, scope);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Validates a policy name and throws if invalid.
|
|
178
|
+
*
|
|
179
|
+
* @param name - The policy name to validate
|
|
180
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
181
|
+
* @returns The validated name
|
|
182
|
+
* @throws ValidationError if validation fails
|
|
183
|
+
*/
|
|
184
|
+
function throwIfInvalidPolicyName(name, scope) {
|
|
185
|
+
return (0, validation_helpers_1.throwIfInvalid)(validatePolicyName, name, scope);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Validates a policy definition and throws if invalid.
|
|
189
|
+
*
|
|
190
|
+
* @param definition - The Cedar policy definition to validate
|
|
191
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
192
|
+
* @returns The validated definition
|
|
193
|
+
* @throws ValidationError if validation fails
|
|
194
|
+
*/
|
|
195
|
+
function throwIfInvalidPolicyDefinition(definition, scope) {
|
|
196
|
+
return (0, validation_helpers_1.throwIfInvalid)(validatePolicyDefinition, definition, scope);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Validates a description and throws if invalid.
|
|
200
|
+
*
|
|
201
|
+
* @param description - The description to validate
|
|
202
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
203
|
+
* @returns The validated description
|
|
204
|
+
* @throws ValidationError if validation fails
|
|
205
|
+
*/
|
|
206
|
+
function throwIfInvalidDescription(description, scope) {
|
|
207
|
+
return (0, validation_helpers_1.throwIfInvalid)(validateDescription, description, scope);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Validates tags for a PolicyEngine.
|
|
211
|
+
* Tags must:
|
|
212
|
+
* - Not exceed 50 tags
|
|
213
|
+
* - Have keys between 1 and 128 characters
|
|
214
|
+
* - Have values between 0 and 256 characters
|
|
215
|
+
* - Match allowed character patterns
|
|
216
|
+
*
|
|
217
|
+
* @param tags - The tags object to validate
|
|
218
|
+
* @param resourceName - The name of the resource being tagged (for error messages)
|
|
219
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
220
|
+
* @returns Array of validation error messages, empty if valid
|
|
221
|
+
*/
|
|
222
|
+
function validateTags(tags, resourceName, _scope) {
|
|
223
|
+
const errors = [];
|
|
224
|
+
// Handle null/undefined values
|
|
225
|
+
if (tags == null) {
|
|
226
|
+
return errors;
|
|
227
|
+
}
|
|
228
|
+
// Validate tag count
|
|
229
|
+
const tagCount = Object.keys(tags).length;
|
|
230
|
+
if (tagCount > exports.MAX_TAGS) {
|
|
231
|
+
errors.push(`PolicyEngine '${resourceName}' cannot have more than ${exports.MAX_TAGS} tags. Found: ${tagCount}`);
|
|
232
|
+
}
|
|
233
|
+
// Validate each tag
|
|
234
|
+
for (const [key, value] of Object.entries(tags)) {
|
|
235
|
+
// Skip validation for unresolved token keys
|
|
236
|
+
if (!aws_cdk_lib_1.Token.isUnresolved(key)) {
|
|
237
|
+
// Validate key length
|
|
238
|
+
if (key.length < exports.TAG_KEY_MIN_LENGTH || key.length > exports.TAG_KEY_MAX_LENGTH) {
|
|
239
|
+
errors.push(`PolicyEngine '${resourceName}' tag key length must be between ${exports.TAG_KEY_MIN_LENGTH} and ${exports.TAG_KEY_MAX_LENGTH} characters. ` +
|
|
240
|
+
`Key: "${key}" has length ${key.length}`);
|
|
241
|
+
}
|
|
242
|
+
// Validate key pattern
|
|
243
|
+
if (!exports.TAG_KEY_PATTERN.test(key)) {
|
|
244
|
+
errors.push(`PolicyEngine '${resourceName}' tag key contains invalid characters. ` +
|
|
245
|
+
`Key: "${key}". Valid characters: a-zA-Z0-9 and ._:/=+@-`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// Skip validation for unresolved token values
|
|
249
|
+
if (!aws_cdk_lib_1.Token.isUnresolved(value)) {
|
|
250
|
+
// Validate value length
|
|
251
|
+
if (value.length > exports.TAG_VALUE_MAX_LENGTH) {
|
|
252
|
+
errors.push(`PolicyEngine '${resourceName}' tag value length cannot exceed ${exports.TAG_VALUE_MAX_LENGTH} characters. ` +
|
|
253
|
+
`Key: "${key}", value has length ${value.length}`);
|
|
254
|
+
}
|
|
255
|
+
// Validate value pattern
|
|
256
|
+
if (!exports.TAG_VALUE_PATTERN.test(value)) {
|
|
257
|
+
errors.push(`PolicyEngine '${resourceName}' tag value contains invalid characters. ` +
|
|
258
|
+
`Key: "${key}", Value: "${value}". Valid characters: a-zA-Z0-9 and ._:/=+@-`);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return errors;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Validates tags and throws if invalid.
|
|
266
|
+
*
|
|
267
|
+
* @param tags - The tags object to validate
|
|
268
|
+
* @param resourceName - The name of the resource being tagged (for error messages)
|
|
269
|
+
* @param scope - The construct scope for error reporting (optional)
|
|
270
|
+
* @returns The validated tags
|
|
271
|
+
* @throws ValidationError if validation fails
|
|
272
|
+
*/
|
|
273
|
+
function throwIfInvalidTags(tags, resourceName, scope) {
|
|
274
|
+
return (0, validation_helpers_1.throwIfInvalid)((t, s) => validateTags(t, resourceName, s), tags, scope);
|
|
275
|
+
}
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFsaWRhdGlvbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVEQSw0REFzQ0M7QUFhRCxnREFzQ0M7QUFVRCw0REE0QkM7QUFVRCxrREEyQkM7QUFVRCx3RUFFQztBQVVELDREQUVDO0FBVUQsd0VBRUM7QUFVRCw4REFFQztBQWVELG9DQThEQztBQVdELGdEQVVDO0FBN1dELDZDQUFvQztBQUVwQyxxRUFLc0M7QUFFdEM7O0dBRUc7QUFDVSxRQUFBLDZCQUE2QixHQUFHLENBQUMsQ0FBQztBQUNsQyxRQUFBLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztBQUNuQyxRQUFBLDBCQUEwQixHQUFHLHlCQUF5QixDQUFDO0FBRXBFOztHQUVHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFDM0IsUUFBQSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFDNUIsUUFBQSxtQkFBbUIsR0FBRyx5QkFBeUIsQ0FBQztBQUU3RDs7R0FFRztBQUNVLFFBQUEsNEJBQTRCLEdBQUcsRUFBRSxDQUFDO0FBQ2xDLFFBQUEsNEJBQTRCLEdBQUcsTUFBTSxDQUFDO0FBRW5EOztHQUVHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxJQUFJLENBQUM7QUFFM0M7O0dBRUc7QUFDVSxRQUFBLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDZCxRQUFBLGtCQUFrQixHQUFHLENBQUMsQ0FBQztBQUN2QixRQUFBLGtCQUFrQixHQUFHLEdBQUcsQ0FBQztBQUN6QixRQUFBLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUMzQixRQUFBLGVBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3QyxRQUFBLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDO0FBRTVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxJQUFZLEVBQUUsS0FBa0I7SUFDdkUsTUFBTSxNQUFNLEdBQWEsRUFB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LENBQUM7UUFDSCxDQUFDO1FBRUQsOENBQThDO1FBQzlDLElBQUksQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLHdCQUF3QjtZQUN4QixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsNEJBQW9CLEVBQUUsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FDVCxpQkFBaUIsWUFBWSxvQ0FBb0MsNEJBQW9CLGVBQWU7b0JBQ2xHLFNBQVMsR0FBRyx1QkFBdUIsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUNwRCxDQUFDO1lBQ0osQ0FBQztZQUVELHlCQUF5QjtZQUN6QixJQUFJLENBQUMseUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQ1QsaUJBQWlCLFlBQVksMkNBQTJDO29CQUN0RSxTQUFTLEdBQUcsY0FBYyxLQUFLLDZDQUE2QyxDQUMvRSxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQ2hDLElBQStCLEVBQy9CLFlBQW9CLEVBQ3BCLEtBQWtCO0lBRWxCLE9BQU8sSUFBQSxtQ0FBYyxFQUNuQixDQUFDLENBQTRCLEVBQUUsQ0FBYyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsRUFDbEYsSUFBSSxFQUNKLEtBQUssQ0FDTixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICB2YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoLFxuICB2YWxpZGF0ZUZpZWxkUGF0dGVybixcbiAgdGhyb3dJZkludmFsaWQsXG4gIHR5cGUgVmFsaWRhdGlvbkZuLFxufSBmcm9tICcuLi9tZW1vcnkvdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqXG4gKiBWYWxpZGF0aW9uIGNvbnN0YW50cyBmb3IgUG9saWN5RW5naW5lXG4gKi9cbmV4cG9ydCBjb25zdCBQT0xJQ1lfRU5HSU5FX05BTUVfTUlOX0xFTkdUSCA9IDE7XG5leHBvcnQgY29uc3QgUE9MSUNZX0VOR0lORV9OQU1FX01BWF9MRU5HVEggPSA0ODtcbmV4cG9ydCBjb25zdCBQT0xJQ1lfRU5HSU5FX05BTUVfUEFUVEVSTiA9IC9eW0EtWmEtel1bQS1aYS16MC05X10qJC87XG5cbi8qKlxuICogVmFsaWRhdGlvbiBjb25zdGFudHMgZm9yIFBvbGljeVxuICovXG5leHBvcnQgY29uc3QgUE9MSUNZX05BTUVfTUlOX0xFTkdUSCA9IDE7XG5leHBvcnQgY29uc3QgUE9MSUNZX05BTUVfTUFYX0xFTkdUSCA9IDQ4O1xuZXhwb3J0IGNvbnN0IFBPTElDWV9OQU1FX1BBVFRFUk4gPSAvXltBLVphLXpdW0EtWmEtejAtOV9dKiQvO1xuXG4vKipcbiAqIFZhbGlkYXRpb24gY29uc3RhbnRzIGZvciBDZWRhciBwb2xpY3kgZGVmaW5pdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IFBPTElDWV9ERUZJTklUSU9OX01JTl9MRU5HVEggPSAzNTtcbmV4cG9ydCBjb25zdCBQT0xJQ1lfREVGSU5JVElPTl9NQVhfTEVOR1RIID0gMTUzNjAwO1xuXG4vKipcbiAqIFZhbGlkYXRpb24gY29uc3RhbnRzIGZvciBkZXNjcmlwdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IERFU0NSSVBUSU9OX01BWF9MRU5HVEggPSA0MDk2O1xuXG4vKipcbiAqIFZhbGlkYXRpb24gY29uc3RhbnRzIGZvciB0YWdzXG4gKi9cbmV4cG9ydCBjb25zdCBNQVhfVEFHUyA9IDUwO1xuZXhwb3J0IGNvbnN0IFRBR19LRVlfTUlOX0xFTkdUSCA9IDE7XG5leHBvcnQgY29uc3QgVEFHX0tFWV9NQVhfTEVOR1RIID0gMTI4O1xuZXhwb3J0IGNvbnN0IFRBR19WQUxVRV9NQVhfTEVOR1RIID0gMjU2O1xuZXhwb3J0IGNvbnN0IFRBR19LRVlfUEFUVEVSTiA9IC9eW2EtekEtWjAtOVxccy5fOi89K0AtXSskLztcbmV4cG9ydCBjb25zdCBUQUdfVkFMVUVfUEFUVEVSTiA9IC9eW2EtekEtWjAtOVxccy5fOi89K0AtXSokLztcblxuLyoqXG4gKiBWYWxpZGF0ZXMgYSBwb2xpY3kgZW5naW5lIG5hbWUuXG4gKiBOYW1lcyBtdXN0OlxuICogLSBTdGFydCB3aXRoIGEgbGV0dGVyIChhLXosIEEtWilcbiAqIC0gQ29udGFpbiBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3Jlc1xuICogLSBCZSBiZXR3ZWVuIDEgYW5kIDQ4IGNoYXJhY3RlcnNcbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBwb2xpY3kgZW5naW5lIG5hbWUgdG8gdmFsaWRhdGVcbiAqIEBwYXJhbSBzY29wZSAtIFRoZSBjb25zdHJ1Y3Qgc2NvcGUgZm9yIGVycm9yIHJlcG9ydGluZyAob3B0aW9uYWwpXG4gKiBAcmV0dXJucyBBcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBlbXB0eSBpZiB2YWxpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQb2xpY3lFbmdpbmVOYW1lKG5hbWU6IHN0cmluZywgc2NvcGU/OiBJQ29uc3RydWN0KTogc3RyaW5nW10ge1xuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gSGFuZGxlIG51bGwvdW5kZWZpbmVkIHZhbHVlc1xuICBpZiAobmFtZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGVycm9ycztcbiAgfVxuXG4gIC8vIFNraXAgdmFsaWRhdGlvbiBmb3IgdW5yZXNvbHZlZCB0b2tlbnMgKGUuZy4gTGF6eS5zdHJpbmcoKSwgY3Jvc3Mtc3RhY2sgcmVmcylcbiAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChuYW1lKSkge1xuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBsZW5ndGhcbiAgZXJyb3JzLnB1c2goXG4gICAgLi4udmFsaWRhdGVTdHJpbmdGaWVsZExlbmd0aChcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IG5hbWUsXG4gICAgICAgIGZpZWxkTmFtZTogJ3BvbGljeUVuZ2luZU5hbWUnLFxuICAgICAgICBtaW5MZW5ndGg6IFBPTElDWV9FTkdJTkVfTkFNRV9NSU5fTEVOR1RILFxuICAgICAgICBtYXhMZW5ndGg6IFBPTElDWV9FTkdJTkVfTkFNRV9NQVhfTEVOR1RILFxuICAgICAgfSxcbiAgICAgIHNjb3BlLFxuICAgICksXG4gICk7XG5cbiAgLy8gVmFsaWRhdGUgcGF0dGVyblxuICBlcnJvcnMucHVzaChcbiAgICAuLi52YWxpZGF0ZUZpZWxkUGF0dGVybihcbiAgICAgIG5hbWUsXG4gICAgICAncG9saWN5RW5naW5lTmFtZScsXG4gICAgICBQT0xJQ1lfRU5HSU5FX05BTUVfUEFUVEVSTixcbiAgICAgIGBUaGUgcG9saWN5IGVuZ2luZSBuYW1lIFwiJHtuYW1lfVwiIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciBhbmQgY29udGFpbiBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3Jlc2AsXG4gICAgICBzY29wZSxcbiAgICApLFxuICApO1xuXG4gIHJldHVybiBlcnJvcnM7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgcG9saWN5IG5hbWUuXG4gKiBOYW1lcyBtdXN0OlxuICogLSBTdGFydCB3aXRoIGEgbGV0dGVyIChhLXosIEEtWilcbiAqIC0gQ29udGFpbiBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3Jlc1xuICogLSBCZSBiZXR3ZWVuIDEgYW5kIDQ4IGNoYXJhY3RlcnNcbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBwb2xpY3kgbmFtZSB0byB2YWxpZGF0ZVxuICogQHBhcmFtIHNjb3BlIC0gVGhlIGNvbnN0cnVjdCBzY29wZSBmb3IgZXJyb3IgcmVwb3J0aW5nIChvcHRpb25hbClcbiAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVBvbGljeU5hbWUobmFtZTogc3RyaW5nLCBzY29wZT86IElDb25zdHJ1Y3QpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAvLyBIYW5kbGUgbnVsbC91bmRlZmluZWQgdmFsdWVzXG4gIGlmIChuYW1lID09IG51bGwpIHtcbiAgICByZXR1cm4gZXJyb3JzO1xuICB9XG5cbiAgLy8gU2tpcCB2YWxpZGF0aW9uIGZvciB1bnJlc29sdmVkIHRva2VucyAoZS5nLiBMYXp5LnN0cmluZygpLCBjcm9zcy1zdGFjayByZWZzKVxuICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKG5hbWUpKSB7XG4gICAgcmV0dXJuIGVycm9ycztcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIGxlbmd0aFxuICBlcnJvcnMucHVzaChcbiAgICAuLi52YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoKFxuICAgICAge1xuICAgICAgICB2YWx1ZTogbmFtZSxcbiAgICAgICAgZmllbGROYW1lOiAncG9saWN5TmFtZScsXG4gICAgICAgIG1pbkxlbmd0aDogUE9MSUNZX05BTUVfTUlOX0xFTkdUSCxcbiAgICAgICAgbWF4TGVuZ3RoOiBQT0xJQ1lfTkFNRV9NQVhfTEVOR1RILFxuICAgICAgfSxcbiAgICAgIHNjb3BlLFxuICAgICksXG4gICk7XG5cbiAgLy8gVmFsaWRhdGUgcGF0dGVyblxuICBlcnJvcnMucHVzaChcbiAgICAuLi52YWxpZGF0ZUZpZWxkUGF0dGVybihcbiAgICAgIG5hbWUsXG4gICAgICAncG9saWN5TmFtZScsXG4gICAgICBQT0xJQ1lfTkFNRV9QQVRURVJOLFxuICAgICAgYFRoZSBwb2xpY3kgbmFtZSBcIiR7bmFtZX1cIiBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgYW5kIGNvbnRhaW4gb25seSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgdW5kZXJzY29yZXNgLFxuICAgICAgc2NvcGUsXG4gICAgKSxcbiAgKTtcblxuICByZXR1cm4gZXJyb3JzO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyBhIENlZGFyIHBvbGljeSBkZWZpbml0aW9uIHN0cmluZy5cbiAqIERlZmluaXRpb25zIG11c3QgYmUgYmV0d2VlbiAzNSBhbmQgMTUzLDYwMCBjaGFyYWN0ZXJzLlxuICpcbiAqIEBwYXJhbSBkZWZpbml0aW9uIC0gVGhlIENlZGFyIHBvbGljeSBkZWZpbml0aW9uIHRvIHZhbGlkYXRlXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHNjb3BlIGZvciBlcnJvciByZXBvcnRpbmcgKG9wdGlvbmFsKVxuICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUG9saWN5RGVmaW5pdGlvbihkZWZpbml0aW9uOiBzdHJpbmcsIHNjb3BlPzogSUNvbnN0cnVjdCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIEhhbmRsZSBudWxsL3VuZGVmaW5lZCB2YWx1ZXNcbiAgaWYgKGRlZmluaXRpb24gPT0gbnVsbCkge1xuICAgIGVycm9ycy5wdXNoKCdQb2xpY3kgZGVmaW5pdGlvbiBpcyByZXF1aXJlZCBhbmQgY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkJyk7XG4gICAgcmV0dXJuIGVycm9ycztcbiAgfVxuXG4gIC8vIFNraXAgdmFsaWRhdGlvbiBmb3IgdW5yZXNvbHZlZCB0b2tlbnMgKGUuZy4gTGF6eS5zdHJpbmcoKSwgY3Jvc3Mtc3RhY2sgcmVmcylcbiAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChkZWZpbml0aW9uKSkge1xuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBsZW5ndGhcbiAgZXJyb3JzLnB1c2goXG4gICAgLi4udmFsaWRhdGVTdHJpbmdGaWVsZExlbmd0aChcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGRlZmluaXRpb24sXG4gICAgICAgIGZpZWxkTmFtZTogJ2RlZmluaXRpb24nLFxuICAgICAgICBtaW5MZW5ndGg6IFBPTElDWV9ERUZJTklUSU9OX01JTl9MRU5HVEgsXG4gICAgICAgIG1heExlbmd0aDogUE9MSUNZX0RFRklOSVRJT05fTUFYX0xFTkdUSCxcbiAgICAgIH0sXG4gICAgICBzY29wZSxcbiAgICApLFxuICApO1xuXG4gIHJldHVybiBlcnJvcnM7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgZGVzY3JpcHRpb24gc3RyaW5nLlxuICogRGVzY3JpcHRpb25zIG11c3Qgbm90IGV4Y2VlZCA0LDA5NiBjaGFyYWN0ZXJzLlxuICpcbiAqIEBwYXJhbSBkZXNjcmlwdGlvbiAtIFRoZSBkZXNjcmlwdGlvbiB0byB2YWxpZGF0ZVxuICogQHBhcmFtIHNjb3BlIC0gVGhlIGNvbnN0cnVjdCBzY29wZSBmb3IgZXJyb3IgcmVwb3J0aW5nIChvcHRpb25hbClcbiAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcsIHNjb3BlPzogSUNvbnN0cnVjdCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIEhhbmRsZSBudWxsL3VuZGVmaW5lZCB2YWx1ZXNcbiAgaWYgKGRlc2NyaXB0aW9uID09IG51bGwpIHtcbiAgICByZXR1cm4gZXJyb3JzO1xuICB9XG5cbiAgLy8gU2tpcCB2YWxpZGF0aW9uIGZvciB1bnJlc29sdmVkIHRva2VucyAoZS5nLiBMYXp5LnN0cmluZygpLCBjcm9zcy1zdGFjayByZWZzKVxuICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKGRlc2NyaXB0aW9uKSkge1xuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBsZW5ndGggKG5vIG1pbmltdW0gbGVuZ3RoIHJlcXVpcmVtZW50KVxuICBlcnJvcnMucHVzaChcbiAgICAuLi52YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoKFxuICAgICAge1xuICAgICAgICB2YWx1ZTogZGVzY3JpcHRpb24sXG4gICAgICAgIGZpZWxkTmFtZTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgbWluTGVuZ3RoOiAwLFxuICAgICAgICBtYXhMZW5ndGg6IERFU0NSSVBUSU9OX01BWF9MRU5HVEgsXG4gICAgICB9LFxuICAgICAgc2NvcGUsXG4gICAgKSxcbiAgKTtcblxuICByZXR1cm4gZXJyb3JzO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyBhIHBvbGljeSBlbmdpbmUgbmFtZSBhbmQgdGhyb3dzIGlmIGludmFsaWQuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgcG9saWN5IGVuZ2luZSBuYW1lIHRvIHZhbGlkYXRlXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHNjb3BlIGZvciBlcnJvciByZXBvcnRpbmcgKG9wdGlvbmFsKVxuICogQHJldHVybnMgVGhlIHZhbGlkYXRlZCBuYW1lXG4gKiBAdGhyb3dzIFZhbGlkYXRpb25FcnJvciBpZiB2YWxpZGF0aW9uIGZhaWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0lmSW52YWxpZFBvbGljeUVuZ2luZU5hbWUobmFtZTogc3RyaW5nLCBzY29wZT86IElDb25zdHJ1Y3QpOiBzdHJpbmcge1xuICByZXR1cm4gdGhyb3dJZkludmFsaWQodmFsaWRhdGVQb2xpY3lFbmdpbmVOYW1lIGFzIFZhbGlkYXRpb25GbjxzdHJpbmc+LCBuYW1lLCBzY29wZSk7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgcG9saWN5IG5hbWUgYW5kIHRocm93cyBpZiBpbnZhbGlkLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIHBvbGljeSBuYW1lIHRvIHZhbGlkYXRlXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHNjb3BlIGZvciBlcnJvciByZXBvcnRpbmcgKG9wdGlvbmFsKVxuICogQHJldHVybnMgVGhlIHZhbGlkYXRlZCBuYW1lXG4gKiBAdGhyb3dzIFZhbGlkYXRpb25FcnJvciBpZiB2YWxpZGF0aW9uIGZhaWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0lmSW52YWxpZFBvbGljeU5hbWUobmFtZTogc3RyaW5nLCBzY29wZT86IElDb25zdHJ1Y3QpOiBzdHJpbmcge1xuICByZXR1cm4gdGhyb3dJZkludmFsaWQodmFsaWRhdGVQb2xpY3lOYW1lIGFzIFZhbGlkYXRpb25GbjxzdHJpbmc+LCBuYW1lLCBzY29wZSk7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgcG9saWN5IGRlZmluaXRpb24gYW5kIHRocm93cyBpZiBpbnZhbGlkLlxuICpcbiAqIEBwYXJhbSBkZWZpbml0aW9uIC0gVGhlIENlZGFyIHBvbGljeSBkZWZpbml0aW9uIHRvIHZhbGlkYXRlXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHNjb3BlIGZvciBlcnJvciByZXBvcnRpbmcgKG9wdGlvbmFsKVxuICogQHJldHVybnMgVGhlIHZhbGlkYXRlZCBkZWZpbml0aW9uXG4gKiBAdGhyb3dzIFZhbGlkYXRpb25FcnJvciBpZiB2YWxpZGF0aW9uIGZhaWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0lmSW52YWxpZFBvbGljeURlZmluaXRpb24oZGVmaW5pdGlvbjogc3RyaW5nLCBzY29wZT86IElDb25zdHJ1Y3QpOiBzdHJpbmcge1xuICByZXR1cm4gdGhyb3dJZkludmFsaWQodmFsaWRhdGVQb2xpY3lEZWZpbml0aW9uIGFzIFZhbGlkYXRpb25GbjxzdHJpbmc+LCBkZWZpbml0aW9uLCBzY29wZSk7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgZGVzY3JpcHRpb24gYW5kIHRocm93cyBpZiBpbnZhbGlkLlxuICpcbiAqIEBwYXJhbSBkZXNjcmlwdGlvbiAtIFRoZSBkZXNjcmlwdGlvbiB0byB2YWxpZGF0ZVxuICogQHBhcmFtIHNjb3BlIC0gVGhlIGNvbnN0cnVjdCBzY29wZSBmb3IgZXJyb3IgcmVwb3J0aW5nIChvcHRpb25hbClcbiAqIEByZXR1cm5zIFRoZSB2YWxpZGF0ZWQgZGVzY3JpcHRpb25cbiAqIEB0aHJvd3MgVmFsaWRhdGlvbkVycm9yIGlmIHZhbGlkYXRpb24gZmFpbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRocm93SWZJbnZhbGlkRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZywgc2NvcGU/OiBJQ29uc3RydWN0KTogc3RyaW5nIHtcbiAgcmV0dXJuIHRocm93SWZJbnZhbGlkKHZhbGlkYXRlRGVzY3JpcHRpb24gYXMgVmFsaWRhdGlvbkZuPHN0cmluZz4sIGRlc2NyaXB0aW9uLCBzY29wZSk7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRhZ3MgZm9yIGEgUG9saWN5RW5naW5lLlxuICogVGFncyBtdXN0OlxuICogLSBOb3QgZXhjZWVkIDUwIHRhZ3NcbiAqIC0gSGF2ZSBrZXlzIGJldHdlZW4gMSBhbmQgMTI4IGNoYXJhY3RlcnNcbiAqIC0gSGF2ZSB2YWx1ZXMgYmV0d2VlbiAwIGFuZCAyNTYgY2hhcmFjdGVyc1xuICogLSBNYXRjaCBhbGxvd2VkIGNoYXJhY3RlciBwYXR0ZXJuc1xuICpcbiAqIEBwYXJhbSB0YWdzIC0gVGhlIHRhZ3Mgb2JqZWN0IHRvIHZhbGlkYXRlXG4gKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGJlaW5nIHRhZ2dlZCAoZm9yIGVycm9yIG1lc3NhZ2VzKVxuICogQHBhcmFtIHNjb3BlIC0gVGhlIGNvbnN0cnVjdCBzY29wZSBmb3IgZXJyb3IgcmVwb3J0aW5nIChvcHRpb25hbClcbiAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRhZ3MoXG4gIHRhZ3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gIHJlc291cmNlTmFtZTogc3RyaW5nLFxuICBfc2NvcGU/OiBJQ29uc3RydWN0LFxuKTogc3RyaW5nW10ge1xuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gSGFuZGxlIG51bGwvdW5kZWZpbmVkIHZhbHVlc1xuICBpZiAodGFncyA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGVycm9ycztcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIHRhZyBjb3VudFxuICBjb25zdCB0YWdDb3VudCA9IE9iamVjdC5rZXlzKHRhZ3MpLmxlbmd0aDtcbiAgaWYgKHRhZ0NvdW50ID4gTUFYX1RBR1MpIHtcbiAgICBlcnJvcnMucHVzaChcbiAgICAgIGBQb2xpY3lFbmdpbmUgJyR7cmVzb3VyY2VOYW1lfScgY2Fubm90IGhhdmUgbW9yZSB0aGFuICR7TUFYX1RBR1N9IHRhZ3MuIEZvdW5kOiAke3RhZ0NvdW50fWAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIGVhY2ggdGFnXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRhZ3MpKSB7XG4gICAgLy8gU2tpcCB2YWxpZGF0aW9uIGZvciB1bnJlc29sdmVkIHRva2VuIGtleXNcbiAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChrZXkpKSB7XG4gICAgICAvLyBWYWxpZGF0ZSBrZXkgbGVuZ3RoXG4gICAgICBpZiAoa2V5Lmxlbmd0aCA8IFRBR19LRVlfTUlOX0xFTkdUSCB8fCBrZXkubGVuZ3RoID4gVEFHX0tFWV9NQVhfTEVOR1RIKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAgIGBQb2xpY3lFbmdpbmUgJyR7cmVzb3VyY2VOYW1lfScgdGFnIGtleSBsZW5ndGggbXVzdCBiZSBiZXR3ZWVuICR7VEFHX0tFWV9NSU5fTEVOR1RIfSBhbmQgJHtUQUdfS0VZX01BWF9MRU5HVEh9IGNoYXJhY3RlcnMuIGAgK1xuICAgICAgICAgICAgYEtleTogXCIke2tleX1cIiBoYXMgbGVuZ3RoICR7a2V5Lmxlbmd0aH1gLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGF0ZSBrZXkgcGF0dGVyblxuICAgICAgaWYgKCFUQUdfS0VZX1BBVFRFUk4udGVzdChrZXkpKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAgIGBQb2xpY3lFbmdpbmUgJyR7cmVzb3VyY2VOYW1lfScgdGFnIGtleSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMuIGAgK1xuICAgICAgICAgICAgYEtleTogXCIke2tleX1cIi4gVmFsaWQgY2hhcmFjdGVyczogYS16QS1aMC05IGFuZCAuXzovPStALWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2tpcCB2YWxpZGF0aW9uIGZvciB1bnJlc29sdmVkIHRva2VuIHZhbHVlc1xuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKHZhbHVlKSkge1xuICAgICAgLy8gVmFsaWRhdGUgdmFsdWUgbGVuZ3RoXG4gICAgICBpZiAodmFsdWUubGVuZ3RoID4gVEFHX1ZBTFVFX01BWF9MRU5HVEgpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICAgYFBvbGljeUVuZ2luZSAnJHtyZXNvdXJjZU5hbWV9JyB0YWcgdmFsdWUgbGVuZ3RoIGNhbm5vdCBleGNlZWQgJHtUQUdfVkFMVUVfTUFYX0xFTkdUSH0gY2hhcmFjdGVycy4gYCArXG4gICAgICAgICAgICBgS2V5OiBcIiR7a2V5fVwiLCB2YWx1ZSBoYXMgbGVuZ3RoICR7dmFsdWUubGVuZ3RofWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIFZhbGlkYXRlIHZhbHVlIHBhdHRlcm5cbiAgICAgIGlmICghVEFHX1ZBTFVFX1BBVFRFUk4udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICAgYFBvbGljeUVuZ2luZSAnJHtyZXNvdXJjZU5hbWV9JyB0YWcgdmFsdWUgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzLiBgICtcbiAgICAgICAgICAgIGBLZXk6IFwiJHtrZXl9XCIsIFZhbHVlOiBcIiR7dmFsdWV9XCIuIFZhbGlkIGNoYXJhY3RlcnM6IGEtekEtWjAtOSBhbmQgLl86Lz0rQC1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJvcnM7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRhZ3MgYW5kIHRocm93cyBpZiBpbnZhbGlkLlxuICpcbiAqIEBwYXJhbSB0YWdzIC0gVGhlIHRhZ3Mgb2JqZWN0IHRvIHZhbGlkYXRlXG4gKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGJlaW5nIHRhZ2dlZCAoZm9yIGVycm9yIG1lc3NhZ2VzKVxuICogQHBhcmFtIHNjb3BlIC0gVGhlIGNvbnN0cnVjdCBzY29wZSBmb3IgZXJyb3IgcmVwb3J0aW5nIChvcHRpb25hbClcbiAqIEByZXR1cm5zIFRoZSB2YWxpZGF0ZWQgdGFnc1xuICogQHRocm93cyBWYWxpZGF0aW9uRXJyb3IgaWYgdmFsaWRhdGlvbiBmYWlsc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dJZkludmFsaWRUYWdzKFxuICB0YWdzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICByZXNvdXJjZU5hbWU6IHN0cmluZyxcbiAgc2NvcGU/OiBJQ29uc3RydWN0LFxuKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gIHJldHVybiB0aHJvd0lmSW52YWxpZChcbiAgICAodDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgcz86IElDb25zdHJ1Y3QpID0+IHZhbGlkYXRlVGFncyh0LCByZXNvdXJjZU5hbWUsIHMpLFxuICAgIHRhZ3MsXG4gICAgc2NvcGUsXG4gICk7XG59XG4iXX0=
|
|
@@ -29,7 +29,7 @@ class RuntimeCustomClaim {
|
|
|
29
29
|
valueType;
|
|
30
30
|
operator;
|
|
31
31
|
value;
|
|
32
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeCustomClaim", version: "2.
|
|
32
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeCustomClaim", version: "2.252.0-alpha.0" };
|
|
33
33
|
/**
|
|
34
34
|
* Create a custom claim with a string value.
|
|
35
35
|
* String claims must use the EQUALS operator.
|
|
@@ -22,7 +22,7 @@ const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
|
|
|
22
22
|
* Provides static factory methods to create different authentication types.
|
|
23
23
|
*/
|
|
24
24
|
class RuntimeAuthorizerConfiguration {
|
|
25
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeAuthorizerConfiguration", version: "2.
|
|
25
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeAuthorizerConfiguration", version: "2.252.0-alpha.0" };
|
|
26
26
|
/**
|
|
27
27
|
* Use IAM authentication (default).
|
|
28
28
|
* Requires AWS credentials to sign requests using SigV4.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { IDeliveryStream } from 'aws-cdk-lib/aws-kinesisfirehose';
|
|
2
|
+
import * as logs from 'aws-cdk-lib/aws-logs';
|
|
3
|
+
import type * as s3 from 'aws-cdk-lib/aws-s3';
|
|
4
|
+
import { Construct } from 'constructs';
|
|
5
|
+
/**
|
|
6
|
+
* Log types for AgentCore Runtime observability
|
|
7
|
+
*/
|
|
8
|
+
export declare class LogType {
|
|
9
|
+
/**
|
|
10
|
+
* The log type value
|
|
11
|
+
*/
|
|
12
|
+
readonly value: string;
|
|
13
|
+
/**
|
|
14
|
+
* Application logs for agent runtime invocations
|
|
15
|
+
*/
|
|
16
|
+
static readonly APPLICATION_LOGS: LogType;
|
|
17
|
+
/**
|
|
18
|
+
* Usage logs for session-level resource consumption
|
|
19
|
+
*/
|
|
20
|
+
static readonly USAGE_LOGS: LogType;
|
|
21
|
+
/**
|
|
22
|
+
* A custom log type value
|
|
23
|
+
*
|
|
24
|
+
* @param value The log type value
|
|
25
|
+
*/
|
|
26
|
+
static of(value: string): LogType;
|
|
27
|
+
private constructor();
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Configuration for logging with log type and destination
|
|
31
|
+
*/
|
|
32
|
+
export interface LoggingConfig {
|
|
33
|
+
/**
|
|
34
|
+
* The type of logs to deliver
|
|
35
|
+
*/
|
|
36
|
+
readonly logType: LogType;
|
|
37
|
+
/**
|
|
38
|
+
* The destination for logs
|
|
39
|
+
*/
|
|
40
|
+
readonly destination: LoggingDestination;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Configuration returned by LoggingDestination.bind()
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
interface LoggingDestinationBindConfig {
|
|
47
|
+
/**
|
|
48
|
+
* The delivery destination construct
|
|
49
|
+
*/
|
|
50
|
+
readonly deliveryDestination: logs.CfnDeliveryDestination;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Represents a logging destination for AgentCore Runtime
|
|
54
|
+
*
|
|
55
|
+
* Use the static factory methods to create instances:
|
|
56
|
+
* - `LoggingDestination.cloudWatchLogs(logGroup)` - Send logs to CloudWatch Logs
|
|
57
|
+
* - `LoggingDestination.s3(bucket)` - Send logs to S3
|
|
58
|
+
* - `LoggingDestination.firehose(stream)` - Send logs to Kinesis Data Firehose
|
|
59
|
+
*/
|
|
60
|
+
export declare abstract class LoggingDestination {
|
|
61
|
+
/**
|
|
62
|
+
* Create a logging destination that sends logs to a CloudWatch Log Group
|
|
63
|
+
*
|
|
64
|
+
* @param logGroup The CloudWatch Log Group to send logs to
|
|
65
|
+
*/
|
|
66
|
+
static cloudWatchLogs(logGroup: logs.ILogGroup): LoggingDestination;
|
|
67
|
+
/**
|
|
68
|
+
* Create a logging destination that sends logs to an S3 bucket
|
|
69
|
+
*
|
|
70
|
+
* @param bucket The S3 bucket to send logs to
|
|
71
|
+
*/
|
|
72
|
+
static s3(bucket: s3.IBucket): LoggingDestination;
|
|
73
|
+
/**
|
|
74
|
+
* Create a logging destination that sends logs to a Kinesis Data Firehose delivery stream
|
|
75
|
+
*
|
|
76
|
+
* @param stream The Firehose delivery stream to send logs to
|
|
77
|
+
*/
|
|
78
|
+
static firehose(stream: IDeliveryStream): LoggingDestination;
|
|
79
|
+
/**
|
|
80
|
+
* Bind this destination to a scope and create the delivery destination resource
|
|
81
|
+
*
|
|
82
|
+
* @param scope The construct scope
|
|
83
|
+
* @param id The construct id
|
|
84
|
+
* @internal
|
|
85
|
+
*/
|
|
86
|
+
abstract _bind(scope: Construct, id: string): LoggingDestinationBindConfig;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Configure X-Ray tracing delivery for a runtime
|
|
90
|
+
*
|
|
91
|
+
* @param scope The construct scope
|
|
92
|
+
* @param sourceArn The ARN of the source resource (runtime)
|
|
93
|
+
* @internal
|
|
94
|
+
*/
|
|
95
|
+
export declare function configureTracingDelivery(scope: Construct, sourceArn: string): logs.CfnDelivery;
|
|
96
|
+
/**
|
|
97
|
+
* Configure logging delivery for a runtime
|
|
98
|
+
*
|
|
99
|
+
* @param scope The construct scope
|
|
100
|
+
* @param sourceArn The ARN of the source resource (runtime)
|
|
101
|
+
* @param loggingConfigs Array of logging configurations
|
|
102
|
+
* @internal
|
|
103
|
+
*/
|
|
104
|
+
export declare function configureLoggingDelivery(scope: Construct, sourceArn: string, loggingConfigs: LoggingConfig[]): logs.CfnDelivery[];
|
|
105
|
+
export {};
|