@aws-cdk/aws-bedrock-agentcore-alpha 2.252.0-alpha.0 → 2.253.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 +11191 -7249
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +30 -0
- package/README.md +422 -0
- package/lib/evaluation/custom-evaluator.d.ts +153 -0
- package/lib/evaluation/custom-evaluator.js +256 -0
- package/lib/evaluation/data-source.d.ts +106 -0
- package/lib/evaluation/data-source.js +156 -0
- package/lib/evaluation/evaluator-base.d.ts +82 -0
- package/lib/evaluation/evaluator-base.js +55 -0
- package/lib/evaluation/evaluator-config.d.ts +195 -0
- package/lib/evaluation/evaluator-config.js +184 -0
- package/lib/evaluation/evaluator.d.ts +68 -0
- package/lib/evaluation/evaluator.js +90 -0
- package/lib/evaluation/online-evaluation-base.d.ts +96 -0
- package/lib/evaluation/online-evaluation-base.js +55 -0
- package/lib/evaluation/online-evaluation.d.ts +134 -0
- package/lib/evaluation/online-evaluation.js +388 -0
- package/lib/evaluation/perms.d.ts +34 -0
- package/lib/evaluation/perms.js +53 -0
- package/lib/evaluation/types.d.ts +461 -0
- package/lib/evaluation/types.js +229 -0
- package/lib/evaluation/validation-helpers.d.ts +133 -0
- package/lib/evaluation/validation-helpers.js +349 -0
- package/lib/gateway/gateway-base.js +1 -1
- package/lib/gateway/gateway.js +2 -2
- package/lib/gateway/inbound-auth/authorizer.js +4 -4
- 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 +9 -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 +8 -5
- package/lib/network/network-configuration.js +4 -4
- package/lib/policy/policy-base.js +1 -1
- package/lib/policy/policy-engine-base.js +1 -1
- package/lib/policy/policy-engine.js +1 -1
- package/lib/policy/policy-statement.js +5 -5
- package/lib/policy/policy-types.js +1 -1
- package/lib/policy/policy.js +1 -1
- 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.js +2 -2
- 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.js +1 -1
- package/lib/tools/browser.js +2 -2
- package/lib/tools/code-interpreter.js +2 -2
- package/package.json +10 -9
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
3
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
4
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
5
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
6
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
7
|
+
var _, done = false;
|
|
8
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
9
|
+
var context = {};
|
|
10
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
11
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
12
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
13
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
14
|
+
if (kind === "accessor") {
|
|
15
|
+
if (result === void 0) continue;
|
|
16
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
17
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
18
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
19
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
20
|
+
}
|
|
21
|
+
else if (_ = accept(result)) {
|
|
22
|
+
if (kind === "field") initializers.unshift(_);
|
|
23
|
+
else descriptor[key] = _;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
27
|
+
done = true;
|
|
28
|
+
};
|
|
29
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
30
|
+
var useValue = arguments.length > 2;
|
|
31
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
32
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
33
|
+
}
|
|
34
|
+
return useValue ? value : void 0;
|
|
35
|
+
};
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.OnlineEvaluationConfig = void 0;
|
|
38
|
+
const jsiiDeprecationWarnings = require("../../.warnings.jsii.js");
|
|
39
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
40
|
+
/**
|
|
41
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
42
|
+
*
|
|
43
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
44
|
+
* with the License. A copy of the License is located at
|
|
45
|
+
*
|
|
46
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
47
|
+
*
|
|
48
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
49
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
50
|
+
* and limitations under the License.
|
|
51
|
+
*/
|
|
52
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
53
|
+
const bedrockagentcore = require("aws-cdk-lib/aws-bedrockagentcore");
|
|
54
|
+
const iam = require("aws-cdk-lib/aws-iam");
|
|
55
|
+
const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
|
|
56
|
+
const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
|
|
57
|
+
const online_evaluation_base_1 = require("./online-evaluation-base");
|
|
58
|
+
const perms_1 = require("./perms");
|
|
59
|
+
const validation_helpers_1 = require("./validation-helpers");
|
|
60
|
+
/**
|
|
61
|
+
* Online evaluation configuration for Amazon Bedrock AgentCore.
|
|
62
|
+
*
|
|
63
|
+
* Enables continuous evaluation of agent performance using built-in or custom evaluators.
|
|
64
|
+
* Supports CloudWatch Logs and Agent Endpoint data sources.
|
|
65
|
+
*
|
|
66
|
+
* @resource AWS::BedrockAgentCore::OnlineEvaluationConfig
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* // Basic usage with built-in evaluators
|
|
70
|
+
* const evaluation = new agentcore.OnlineEvaluationConfig(this, 'MyEvaluation', {
|
|
71
|
+
* onlineEvaluationConfigName: 'my_evaluation',
|
|
72
|
+
* evaluators: [
|
|
73
|
+
* agentcore.EvaluatorReference.builtin(agentcore.BuiltinEvaluator.HELPFULNESS),
|
|
74
|
+
* agentcore.EvaluatorReference.builtin(agentcore.BuiltinEvaluator.CORRECTNESS),
|
|
75
|
+
* ],
|
|
76
|
+
* dataSource: agentcore.DataSourceConfig.fromCloudWatchLogs({
|
|
77
|
+
* logGroupNames: ['/aws/bedrock-agentcore/my-agent'],
|
|
78
|
+
* serviceNames: ['my-agent.default'],
|
|
79
|
+
* }),
|
|
80
|
+
* });
|
|
81
|
+
*/
|
|
82
|
+
let OnlineEvaluationConfig = (() => {
|
|
83
|
+
let _classDecorators = [prop_injectable_1.propertyInjectable];
|
|
84
|
+
let _classDescriptor;
|
|
85
|
+
let _classExtraInitializers = [];
|
|
86
|
+
let _classThis;
|
|
87
|
+
let _classSuper = online_evaluation_base_1.OnlineEvaluationBase;
|
|
88
|
+
var OnlineEvaluationConfig = class extends _classSuper {
|
|
89
|
+
static { _classThis = this; }
|
|
90
|
+
static {
|
|
91
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
92
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
93
|
+
OnlineEvaluationConfig = _classThis = _classDescriptor.value;
|
|
94
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
95
|
+
}
|
|
96
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.OnlineEvaluationConfig", version: "2.253.0-alpha.0" };
|
|
97
|
+
/** Uniquely identifies this class. */
|
|
98
|
+
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.OnlineEvaluationConfig';
|
|
99
|
+
/**
|
|
100
|
+
* Import an existing OnlineEvaluationConfig by its ID.
|
|
101
|
+
*
|
|
102
|
+
* @param scope - The construct scope
|
|
103
|
+
* @param id - Construct identifier
|
|
104
|
+
* @param onlineEvaluationConfigId - The configuration ID to import
|
|
105
|
+
* @returns An IOnlineEvaluationConfig reference
|
|
106
|
+
*/
|
|
107
|
+
static fromOnlineEvaluationConfigId(scope, id, onlineEvaluationConfigId) {
|
|
108
|
+
const stack = aws_cdk_lib_1.Stack.of(scope);
|
|
109
|
+
const configArn = aws_cdk_lib_1.Arn.format({
|
|
110
|
+
service: 'bedrock-agentcore',
|
|
111
|
+
resource: 'online-evaluation-config',
|
|
112
|
+
resourceName: onlineEvaluationConfigId,
|
|
113
|
+
}, stack);
|
|
114
|
+
return OnlineEvaluationConfig.fromOnlineEvaluationConfigAttributes(scope, id, {
|
|
115
|
+
onlineEvaluationConfigArn: configArn,
|
|
116
|
+
onlineEvaluationConfigId: onlineEvaluationConfigId,
|
|
117
|
+
onlineEvaluationConfigName: onlineEvaluationConfigId,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Import an existing OnlineEvaluationConfig by its ARN.
|
|
122
|
+
*
|
|
123
|
+
* @param scope - The construct scope
|
|
124
|
+
* @param id - Construct identifier
|
|
125
|
+
* @param onlineEvaluationConfigArn - The configuration ARN to import
|
|
126
|
+
* @returns An IOnlineEvaluationConfig reference
|
|
127
|
+
*/
|
|
128
|
+
static fromOnlineEvaluationConfigArn(scope, id, onlineEvaluationConfigArn) {
|
|
129
|
+
const arnParts = aws_cdk_lib_1.Arn.split(onlineEvaluationConfigArn, aws_cdk_lib_1.ArnFormat.SLASH_RESOURCE_NAME);
|
|
130
|
+
const configId = arnParts.resourceName;
|
|
131
|
+
return OnlineEvaluationConfig.fromOnlineEvaluationConfigAttributes(scope, id, {
|
|
132
|
+
onlineEvaluationConfigArn: onlineEvaluationConfigArn,
|
|
133
|
+
onlineEvaluationConfigId: configId,
|
|
134
|
+
onlineEvaluationConfigName: configId,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Import an existing OnlineEvaluationConfig from its attributes.
|
|
139
|
+
*
|
|
140
|
+
* @param scope - The construct scope
|
|
141
|
+
* @param id - Construct identifier
|
|
142
|
+
* @param attrs - The configuration attributes
|
|
143
|
+
* @returns An IOnlineEvaluationConfig reference
|
|
144
|
+
*/
|
|
145
|
+
static fromOnlineEvaluationConfigAttributes(scope, id, attrs) {
|
|
146
|
+
try {
|
|
147
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_OnlineEvaluationConfigAttributes(attrs);
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
151
|
+
Error.captureStackTrace(error, this.fromOnlineEvaluationConfigAttributes);
|
|
152
|
+
}
|
|
153
|
+
throw error;
|
|
154
|
+
}
|
|
155
|
+
class Import extends online_evaluation_base_1.OnlineEvaluationBase {
|
|
156
|
+
onlineEvaluationConfigArn = attrs.onlineEvaluationConfigArn;
|
|
157
|
+
onlineEvaluationConfigId = attrs.onlineEvaluationConfigId;
|
|
158
|
+
onlineEvaluationConfigName = attrs.onlineEvaluationConfigName;
|
|
159
|
+
executionRole = attrs.executionRoleArn
|
|
160
|
+
? iam.Role.fromRoleArn(scope, `${id}Role`, attrs.executionRoleArn)
|
|
161
|
+
: undefined;
|
|
162
|
+
status = undefined;
|
|
163
|
+
executionStatus = undefined;
|
|
164
|
+
createdAt = undefined;
|
|
165
|
+
updatedAt = undefined;
|
|
166
|
+
grantPrincipal;
|
|
167
|
+
constructor(s, i) {
|
|
168
|
+
super(s, i);
|
|
169
|
+
this.grantPrincipal = this.executionRole ?? new iam.UnknownPrincipal({ resource: this });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return new Import(scope, id);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* The ARN of the online evaluation configuration.
|
|
176
|
+
* @attribute
|
|
177
|
+
*/
|
|
178
|
+
onlineEvaluationConfigArn;
|
|
179
|
+
/**
|
|
180
|
+
* The unique identifier of the online evaluation configuration.
|
|
181
|
+
* @attribute
|
|
182
|
+
*/
|
|
183
|
+
onlineEvaluationConfigId;
|
|
184
|
+
/**
|
|
185
|
+
* The name of the online evaluation configuration.
|
|
186
|
+
* @attribute
|
|
187
|
+
*/
|
|
188
|
+
onlineEvaluationConfigName;
|
|
189
|
+
/**
|
|
190
|
+
* The IAM execution role for the evaluation.
|
|
191
|
+
*/
|
|
192
|
+
executionRole;
|
|
193
|
+
/**
|
|
194
|
+
* The lifecycle status of the configuration.
|
|
195
|
+
* @attribute
|
|
196
|
+
*/
|
|
197
|
+
status;
|
|
198
|
+
/**
|
|
199
|
+
* The execution status of the evaluation (ENABLED or DISABLED).
|
|
200
|
+
*/
|
|
201
|
+
executionStatus;
|
|
202
|
+
/**
|
|
203
|
+
* The timestamp when the configuration was created.
|
|
204
|
+
* @attribute
|
|
205
|
+
*/
|
|
206
|
+
createdAt;
|
|
207
|
+
/**
|
|
208
|
+
* The timestamp when the configuration was last updated.
|
|
209
|
+
* @attribute
|
|
210
|
+
*/
|
|
211
|
+
updatedAt;
|
|
212
|
+
/**
|
|
213
|
+
* The principal to grant permissions to.
|
|
214
|
+
*/
|
|
215
|
+
grantPrincipal;
|
|
216
|
+
constructor(scope, id, props) {
|
|
217
|
+
super(scope, id, {
|
|
218
|
+
physicalName: props.onlineEvaluationConfigName,
|
|
219
|
+
});
|
|
220
|
+
try {
|
|
221
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_OnlineEvaluationConfigProps(props);
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
225
|
+
Error.captureStackTrace(error, OnlineEvaluationConfig);
|
|
226
|
+
}
|
|
227
|
+
throw error;
|
|
228
|
+
}
|
|
229
|
+
(0, metadata_resource_1.addConstructMetadata)(this, props);
|
|
230
|
+
(0, validation_helpers_1.throwIfInvalid)(validation_helpers_1.validateConfigName, props.onlineEvaluationConfigName, this);
|
|
231
|
+
(0, validation_helpers_1.throwIfInvalid)(validation_helpers_1.validateDescription, props.description, this);
|
|
232
|
+
(0, validation_helpers_1.throwIfInvalid)(validation_helpers_1.validateEvaluators, props.evaluators, this);
|
|
233
|
+
(0, validation_helpers_1.throwIfInvalid)(validation_helpers_1.validateSamplingPercentage, props.samplingPercentage, this);
|
|
234
|
+
(0, validation_helpers_1.throwIfInvalid)(validation_helpers_1.validateFilters, props.filters, this);
|
|
235
|
+
(0, validation_helpers_1.throwIfInvalid)(validation_helpers_1.validateSessionTimeout, props.sessionTimeout?.toMinutes(), this);
|
|
236
|
+
this.onlineEvaluationConfigName = this.physicalName;
|
|
237
|
+
this.executionRole = props.executionRole ?? this.createExecutionRole(props.dataSource);
|
|
238
|
+
this.grantPrincipal = this.executionRole;
|
|
239
|
+
const resource = new bedrockagentcore.CfnOnlineEvaluationConfig(this, 'Resource', {
|
|
240
|
+
onlineEvaluationConfigName: this.physicalName,
|
|
241
|
+
evaluators: props.evaluators.map((e) => e.bind()),
|
|
242
|
+
dataSourceConfig: props.dataSource.bind(),
|
|
243
|
+
evaluationExecutionRoleArn: this.executionRole.roleArn,
|
|
244
|
+
rule: this.buildRuleConfig(props),
|
|
245
|
+
description: props.description,
|
|
246
|
+
executionStatus: props.executionStatus?.value,
|
|
247
|
+
});
|
|
248
|
+
// Ensure the execution role's policies are created before the L1 resource,
|
|
249
|
+
// because BedrockAgentCore validates role permissions at create time.
|
|
250
|
+
if (this.executionRole instanceof iam.Role && this.executionRole.node.defaultChild) {
|
|
251
|
+
resource.node.addDependency(this.executionRole);
|
|
252
|
+
}
|
|
253
|
+
this.onlineEvaluationConfigArn = resource.attrOnlineEvaluationConfigArn;
|
|
254
|
+
this.onlineEvaluationConfigId = resource.attrOnlineEvaluationConfigId;
|
|
255
|
+
this.status = resource.attrStatus;
|
|
256
|
+
this.executionStatus = resource.executionStatus;
|
|
257
|
+
this.createdAt = resource.attrCreatedAt;
|
|
258
|
+
this.updatedAt = resource.attrUpdatedAt;
|
|
259
|
+
}
|
|
260
|
+
createExecutionRole(dataSource) {
|
|
261
|
+
const stack = aws_cdk_lib_1.Stack.of(this);
|
|
262
|
+
const role = new iam.Role(this, 'ExecutionRole', {
|
|
263
|
+
assumedBy: new iam.ServicePrincipal('bedrock-agentcore.amazonaws.com', {
|
|
264
|
+
conditions: {
|
|
265
|
+
StringEquals: {
|
|
266
|
+
'aws:SourceAccount': stack.account,
|
|
267
|
+
'aws:ResourceAccount': stack.account,
|
|
268
|
+
},
|
|
269
|
+
ArnLike: {
|
|
270
|
+
'aws:SourceArn': [
|
|
271
|
+
aws_cdk_lib_1.Arn.format({
|
|
272
|
+
service: 'bedrock-agentcore',
|
|
273
|
+
resource: 'evaluator',
|
|
274
|
+
resourceName: '*',
|
|
275
|
+
}, stack),
|
|
276
|
+
aws_cdk_lib_1.Arn.format({
|
|
277
|
+
service: 'bedrock-agentcore',
|
|
278
|
+
resource: 'online-evaluation-config',
|
|
279
|
+
resourceName: '*',
|
|
280
|
+
}, stack),
|
|
281
|
+
],
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
}),
|
|
285
|
+
description: 'Execution role for Bedrock AgentCore Online Evaluation',
|
|
286
|
+
});
|
|
287
|
+
// The service requires query access to user-specified log groups AND the
|
|
288
|
+
// implicit aws/spans log group it uses internally for trace data.
|
|
289
|
+
const logGroupArns = [
|
|
290
|
+
...dataSource.cloudWatchLogsConfig.logGroupNames,
|
|
291
|
+
'aws/spans',
|
|
292
|
+
].flatMap((name) => [
|
|
293
|
+
aws_cdk_lib_1.Arn.format({
|
|
294
|
+
service: 'logs',
|
|
295
|
+
resource: 'log-group',
|
|
296
|
+
resourceName: name,
|
|
297
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME,
|
|
298
|
+
}, stack),
|
|
299
|
+
aws_cdk_lib_1.Arn.format({
|
|
300
|
+
service: 'logs',
|
|
301
|
+
resource: 'log-group',
|
|
302
|
+
resourceName: `${name}:*`,
|
|
303
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME,
|
|
304
|
+
}, stack),
|
|
305
|
+
]);
|
|
306
|
+
// logs:DescribeLogGroups does not support resource-level permissions.
|
|
307
|
+
// The resource must be '*' per the IAM service authorization reference.
|
|
308
|
+
// See: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html
|
|
309
|
+
role.addToPolicy(new iam.PolicyStatement({
|
|
310
|
+
sid: 'CloudWatchLogDescribeStatement',
|
|
311
|
+
actions: perms_1.EVALUATION_CLOUDWATCH_LOGS_DESCRIBE_PERMS,
|
|
312
|
+
resources: ['*'],
|
|
313
|
+
}));
|
|
314
|
+
role.addToPolicy(new iam.PolicyStatement({
|
|
315
|
+
sid: 'CloudWatchLogQueryStatement',
|
|
316
|
+
actions: perms_1.EVALUATION_CLOUDWATCH_LOGS_QUERY_PERMS,
|
|
317
|
+
resources: logGroupArns,
|
|
318
|
+
}));
|
|
319
|
+
role.addToPolicy(new iam.PolicyStatement({
|
|
320
|
+
sid: 'CloudWatchLogWriteStatement',
|
|
321
|
+
actions: perms_1.EVALUATION_CLOUDWATCH_LOGS_WRITE_PERMS,
|
|
322
|
+
resources: [
|
|
323
|
+
aws_cdk_lib_1.Arn.format({
|
|
324
|
+
service: 'logs',
|
|
325
|
+
resource: 'log-group',
|
|
326
|
+
resourceName: '/aws/bedrock-agentcore/evaluations/*',
|
|
327
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME,
|
|
328
|
+
}, stack),
|
|
329
|
+
],
|
|
330
|
+
}));
|
|
331
|
+
role.addToPolicy(new iam.PolicyStatement({
|
|
332
|
+
sid: 'CloudWatchIndexPolicyStatement',
|
|
333
|
+
actions: perms_1.EVALUATION_CLOUDWATCH_INDEX_POLICY_PERMS,
|
|
334
|
+
resources: [
|
|
335
|
+
aws_cdk_lib_1.Arn.format({
|
|
336
|
+
service: 'logs',
|
|
337
|
+
resource: 'log-group',
|
|
338
|
+
resourceName: 'aws/spans',
|
|
339
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME,
|
|
340
|
+
}, stack),
|
|
341
|
+
aws_cdk_lib_1.Arn.format({
|
|
342
|
+
service: 'logs',
|
|
343
|
+
resource: 'log-group',
|
|
344
|
+
resourceName: 'aws/spans:*',
|
|
345
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME,
|
|
346
|
+
}, stack),
|
|
347
|
+
],
|
|
348
|
+
}));
|
|
349
|
+
role.addToPolicy(new iam.PolicyStatement({
|
|
350
|
+
sid: 'BedrockInvokeStatement',
|
|
351
|
+
actions: perms_1.EVALUATION_BEDROCK_MODEL_PERMS,
|
|
352
|
+
resources: [
|
|
353
|
+
`arn:${aws_cdk_lib_1.Aws.PARTITION}:bedrock:*::foundation-model/*`,
|
|
354
|
+
aws_cdk_lib_1.Arn.format({
|
|
355
|
+
service: 'bedrock',
|
|
356
|
+
resource: 'inference-profile',
|
|
357
|
+
resourceName: '*',
|
|
358
|
+
region: '*',
|
|
359
|
+
}, stack),
|
|
360
|
+
],
|
|
361
|
+
}));
|
|
362
|
+
return role;
|
|
363
|
+
}
|
|
364
|
+
buildRuleConfig(props) {
|
|
365
|
+
return {
|
|
366
|
+
samplingConfig: {
|
|
367
|
+
samplingPercentage: props.samplingPercentage ?? 10,
|
|
368
|
+
},
|
|
369
|
+
sessionConfig: {
|
|
370
|
+
sessionTimeoutMinutes: props.sessionTimeout?.toMinutes() ?? 15,
|
|
371
|
+
},
|
|
372
|
+
...(props.filters && props.filters.length > 0 ? {
|
|
373
|
+
filters: props.filters.map((f) => ({
|
|
374
|
+
key: f.key,
|
|
375
|
+
operator: f.operator.value,
|
|
376
|
+
value: f.value._bind(),
|
|
377
|
+
})),
|
|
378
|
+
} : {}),
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
static {
|
|
382
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
return OnlineEvaluationConfig = _classThis;
|
|
386
|
+
})();
|
|
387
|
+
exports.OnlineEvaluationConfig = OnlineEvaluationConfig;
|
|
388
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25saW5lLWV2YWx1YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvbmxpbmUtZXZhbHVhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILDZDQUF5RDtBQUN6RCxxRUFBcUU7QUFDckUsMkNBQTJDO0FBQzNDLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFJMUUscUVBQThGO0FBQzlGLG1DQU1pQjtBQUtqQiw2REFROEI7QUFzQjlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7SUFFVSxzQkFBc0I7NEJBRGxDLG9DQUFrQjs7OztzQkFDeUIsNkNBQW9CO3NDQUE1QixTQUFRLFdBQW9COzs7O1lBQWhFLDZLQWdXQzs7Ozs7UUEvVkMsc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FDMUMsNkRBQTZELENBQUM7UUFFaEU7Ozs7Ozs7V0FPRztRQUNJLE1BQU0sQ0FBQyw0QkFBNEIsQ0FDeEMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLHdCQUFnQztZQUVoQyxNQUFNLEtBQUssR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixNQUFNLFNBQVMsR0FBRyxpQkFBRyxDQUFDLE1BQU0sQ0FDMUI7Z0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjtnQkFDNUIsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsWUFBWSxFQUFFLHdCQUF3QjthQUN2QyxFQUNELEtBQUssQ0FDTixDQUFDO1lBRUYsT0FBTyxzQkFBc0IsQ0FBQyxvQ0FBb0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO2dCQUM1RSx5QkFBeUIsRUFBRSxTQUFTO2dCQUNwQyx3QkFBd0IsRUFBRSx3QkFBd0I7Z0JBQ2xELDBCQUEwQixFQUFFLHdCQUF3QjthQUNyRCxDQUFDLENBQUM7U0FDSjtRQUVEOzs7Ozs7O1dBT0c7UUFDSSxNQUFNLENBQUMs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LENBQ1I7d0JBQ0UsT0FBTyxFQUFFLFNBQVM7d0JBQ2xCLFFBQVEsRUFBRSxtQkFBbUI7d0JBQzdCLFlBQVksRUFBRSxHQUFHO3dCQUNqQixNQUFNLEVBQUUsR0FBRztxQkFDWixFQUNELEtBQUssQ0FDTjtpQkFDRjthQUNGLENBQUMsQ0FDSCxDQUFDO1lBRUYsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVPLGVBQWUsQ0FBQyxLQUFrQztZQUN4RCxPQUFPO2dCQUNMLGNBQWMsRUFBRTtvQkFDZCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCLElBQUksRUFBRTtpQkFDbkQ7Z0JBQ0QsYUFBYSxFQUFFO29CQUNiLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtpQkFDL0Q7Z0JBQ0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDOUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUNqQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUc7d0JBQ1YsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSzt3QkFDMUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO3FCQUN2QixDQUFDLENBQUM7aUJBQ0osQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ1IsQ0FBQztTQUNIOztZQS9WVSx1REFBc0I7Ozs7O0FBQXRCLHdEQUFzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEFybiwgQXJuRm9ybWF0LCBBd3MsIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgYmVkcm9ja2FnZW50Y29yZSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZSc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhU291cmNlQ29uZmlnIH0gZnJvbSAnLi9kYXRhLXNvdXJjZSc7XG5pbXBvcnQgdHlwZSB7IEV2YWx1YXRvclJlZmVyZW5jZSB9IGZyb20gJy4vZXZhbHVhdG9yJztcbmltcG9ydCB7IHR5cGUgSU9ubGluZUV2YWx1YXRpb25Db25maWcsIE9ubGluZUV2YWx1YXRpb25CYXNlIH0gZnJvbSAnLi9vbmxpbmUtZXZhbHVhdGlvbi1iYXNlJztcbmltcG9ydCB7XG4gIEVWQUxVQVRJT05fQkVEUk9DS19NT0RFTF9QRVJNUyxcbiAgRVZBTFVBVElPTl9DTE9VRFdBVENIX0lOREVYX1BPTElDWV9QRVJNUyxcbiAgRVZBTFVBVElPTl9DTE9VRFdBVENIX0xPR1NfREVTQ1JJQkVfUEVSTVMsXG4gIEVWQUxVQVRJT05fQ0xPVURXQVRDSF9MT0dTX1FVRVJZX1BFUk1TLFxuICBFVkFMVUFUSU9OX0NMT1VEV0FUQ0hfTE9HU19XUklURV9QRVJNUyxcbn0gZnJvbSAnLi9wZXJtcyc7XG5pbXBvcnQge1xuICB0eXBlIE9ubGluZUV2YWx1YXRpb25CYXNlUHJvcHMsXG4gIHR5cGUgT25saW5lRXZhbHVhdGlvbkNvbmZpZ0F0dHJpYnV0ZXMsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgdmFsaWRhdGVDb25maWdOYW1lLFxuICB2YWxpZGF0ZURlc2NyaXB0aW9uLFxuICB2YWxpZGF0ZUV2YWx1YXRvcnMsXG4gIHZhbGlkYXRlU2FtcGxpbmdQZXJjZW50YWdlLFxuICB2YWxpZGF0ZUZpbHRlcnMsXG4gIHZhbGlkYXRlU2Vzc2lvblRpbWVvdXQsXG4gIHRocm93SWZJbnZhbGlkLFxufSBmcm9tICcuL3ZhbGlkYXRpb24taGVscGVycyc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYW4gT25saW5lRXZhbHVhdGlvbkNvbmZpZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPbmxpbmVFdmFsdWF0aW9uQ29uZmlnUHJvcHMgZXh0ZW5kcyBPbmxpbmVFdmFsdWF0aW9uQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGV2YWx1YXRvcnMgdG8gYXBwbHkgZHVyaW5nIG9ubGluZSBldmFsdWF0aW9uLlxuICAgKlxuICAgKiBDYW4gaW5jbHVkZSBib3RoIGJ1aWx0LWluIGV2YWx1YXRvcnMgYW5kIGN1c3RvbSBldmFsdWF0b3JzLlxuICAgKlxuICAgKiBAbWluaW11bSAxXG4gICAqIEBtYXhpbXVtIDEwXG4gICAqL1xuICByZWFkb25seSBldmFsdWF0b3JzOiBFdmFsdWF0b3JSZWZlcmVuY2VbXTtcblxuICAvKipcbiAgICogVGhlIGRhdGEgc291cmNlIGNvbmZpZ3VyYXRpb24gdGhhdCBzcGVjaWZpZXMgd2hlcmUgdG8gcmVhZCBhZ2VudCB0cmFjZXMgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFTb3VyY2U6IERhdGFTb3VyY2VDb25maWc7XG59XG5cbi8qKlxuICogT25saW5lIGV2YWx1YXRpb24gY29uZmlndXJhdGlvbiBmb3IgQW1hem9uIEJlZHJvY2sgQWdlbnRDb3JlLlxuICpcbiAqIEVuYWJsZXMgY29udGludW91cyBldmFsdWF0aW9uIG9mIGFnZW50IHBlcmZvcm1hbmNlIHVzaW5nIGJ1aWx0LWluIG9yIGN1c3RvbSBldmFsdWF0b3JzLlxuICogU3VwcG9ydHMgQ2xvdWRXYXRjaCBMb2dzIGFuZCBBZ2VudCBFbmRwb2ludCBkYXRhIHNvdXJjZXMuXG4gKlxuICogQHJlc291cmNlIEFXUzo6QmVkcm9ja0FnZW50Q29yZTo6T25saW5lRXZhbHVhdGlvbkNvbmZpZ1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBCYXNpYyB1c2FnZSB3aXRoIGJ1aWx0LWluIGV2YWx1YXRvcnNcbiAqIGNvbnN0IGV2YWx1YXRpb24gPSBuZXcgYWdlbnRjb3JlLk9ubGluZUV2YWx1YXRpb25Db25maWcodGhpcywgJ015RXZhbHVhdGlvbicsIHtcbiAqICAgb25saW5lRXZhbHVhdGlvbkNvbmZpZ05hbWU6ICdteV9ldmFsdWF0aW9uJyxcbiAqICAgZXZhbHVhdG9yczogW1xuICogICAgIGFnZW50Y29yZS5FdmFsdWF0b3JSZWZlcmVuY2UuYnVpbHRpbihhZ2VudGNvcmUuQnVpbHRpbkV2YWx1YXRvci5IRUxQRlVMTkVTUyksXG4gKiAgICAgYWdlbnRjb3JlLkV2YWx1YXRvclJlZmVyZW5jZS5idWlsdGluKGFnZW50Y29yZS5CdWlsdGluRXZhbHVhdG9yLkNPUlJFQ1RORVNTKSxcbiAqICAgXSxcbiAqICAgZGF0YVNvdXJjZTogYWdlbnRjb3JlLkRhdGFTb3VyY2VDb25maWcuZnJvbUNsb3VkV2F0Y2hMb2dzKHtcbiAqICAgICBsb2dHcm91cE5hbWVzOiBbJy9hd3MvYmVkcm9jay1hZ2VudGNvcmUvbXktYWdlbnQnXSxcbiAqICAgICBzZXJ2aWNlTmFtZXM6IFsnbXktYWdlbnQuZGVmYXVsdCddLFxuICogICB9KSxcbiAqIH0pO1xuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgT25saW5lRXZhbHVhdGlvbkNvbmZpZyBleHRlbmRzIE9ubGluZUV2YWx1YXRpb25CYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9XG4gICAgJ0Bhd3MtY2RrLmF3cy1iZWRyb2NrLWFnZW50Y29yZS1hbHBoYS5PbmxpbmVFdmFsdWF0aW9uQ29uZmlnJztcblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIE9ubGluZUV2YWx1YXRpb25Db25maWcgYnkgaXRzIElELlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCAtIENvbnN0cnVjdCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSBvbmxpbmVFdmFsdWF0aW9uQ29uZmlnSWQgLSBUaGUgY29uZmlndXJhdGlvbiBJRCB0byBpbXBvcnRcbiAgICogQHJldHVybnMgQW4gSU9ubGluZUV2YWx1YXRpb25Db25maWcgcmVmZXJlbmNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21PbmxpbmVFdmFsdWF0aW9uQ29uZmlnSWQoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIG9ubGluZUV2YWx1YXRpb25Db25maWdJZDogc3RyaW5nLFxuICApOiBJT25saW5lRXZhbHVhdGlvbkNvbmZpZyB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSk7XG4gICAgY29uc3QgY29uZmlnQXJuID0gQXJuLmZvcm1hdChcbiAgICAgIHtcbiAgICAgICAgc2VydmljZTogJ2JlZHJvY2stYWdlbnRjb3JlJyxcbiAgICAgICAgcmVzb3VyY2U6ICdvbmxpbmUtZXZhbHVhdGlvbi1jb25maWcnLFxuICAgICAgICByZXNvdXJjZU5hbWU6IG9ubGluZUV2YWx1YXRpb25Db25maWdJZCxcbiAgICAgIH0sXG4gICAgICBzdGFjayxcbiAgICApO1xuXG4gICAgcmV0dXJuIE9ubGluZUV2YWx1YXRpb25Db25maWcuZnJvbU9ubGluZUV2YWx1YXRpb25Db25maWdBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgb25saW5lRXZhbHVhdGlvbkNvbmZpZ0FybjogY29uZmlnQXJuLFxuICAgICAgb25saW5lRXZhbHVhdGlvbkNvbmZpZ0lkOiBvbmxpbmVFdmFsdWF0aW9uQ29uZmlnSWQsXG4gICAgICBvbmxpbmVFdmFsdWF0aW9uQ29uZmlnTmFtZTogb25saW5lRXZhbHVhdGlvbkNvbmZpZ0lkLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBPbmxpbmVFdmFsdWF0aW9uQ29uZmlnIGJ5IGl0cyBBUk4uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIC0gQ29uc3RydWN0IGlkZW50aWZpZXJcbiAgICogQHBhcmFtIG9ubGluZUV2YWx1YXRpb25Db25maWdBcm4gLSBUaGUgY29uZmlndXJhdGlvbiBBUk4gdG8gaW1wb3J0XG4gICAqIEByZXR1cm5zIEFuIElPbmxpbmVFdmFsdWF0aW9uQ29uZmlnIHJlZmVyZW5jZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tT25saW5lRXZhbHVhdGlvbkNvbmZpZ0FybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgb25saW5lRXZhbHVhdGlvbkNvbmZpZ0Fybjogc3RyaW5nLFxuICApOiBJT25saW5lRXZhbHVhdGlvbkNvbmZpZyB7XG4gICAgY29uc3QgYXJuUGFydHMgPSBBcm4uc3BsaXQob25saW5lRXZhbHVhdGlvbkNvbmZpZ0FybiwgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpO1xuICAgIGNvbnN0IGNvbmZpZ0lkID0gYXJuUGFydHMucmVzb3VyY2VOYW1lITtcblxuICAgIHJldHVybiBPbmxpbmVFdmFsdWF0aW9uQ29uZmlnLmZyb21PbmxpbmVFdmFsdWF0aW9uQ29uZmlnQXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIG9ubGluZUV2YWx1YXRpb25Db25maWdBcm46IG9ubGluZUV2YWx1YXRpb25Db25maWdBcm4sXG4gICAgICBvbmxpbmVFdmFsdWF0aW9uQ29uZmlnSWQ6IGNvbmZpZ0lkLFxuICAgICAgb25saW5lRXZhbHVhdGlvbkNvbmZpZ05hbWU6IGNvbmZpZ0lkLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBPbmxpbmVFdmFsdWF0aW9uQ29uZmlnIGZyb20gaXRzIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIC0gQ29uc3RydWN0IGlkZW50aWZpZXJcbiAgICogQHBhcmFtIGF0dHJzIC0gVGhlIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlc1xuICAgKiBAcmV0dXJucyBBbiBJT25saW5lRXZhbHVhdGlvbkNvbmZpZyByZWZlcmVuY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU9ubGluZUV2YWx1YXRpb25Db25maWdBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogT25saW5lRXZhbHVhdGlvbkNvbmZpZ0F0dHJpYnV0ZXMsXG4gICk6IElPbmxpbmVFdmFsdWF0aW9uQ29uZmlnIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBPbmxpbmVFdmFsdWF0aW9uQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgb25saW5lRXZhbHVhdGlvbkNvbmZpZ0FybiA9IGF0dHJzLm9ubGluZUV2YWx1YXRpb25Db25maWdBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgb25saW5lRXZhbHVhdGlvbkNvbmZpZ0lkID0gYXR0cnMub25saW5lRXZhbHVhdGlvbkNvbmZpZ0lkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IG9ubGluZUV2YWx1YXRpb25Db25maWdOYW1lID0gYXR0cnMub25saW5lRXZhbHVhdGlvbkNvbmZpZ05hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZSA9IGF0dHJzLmV4ZWN1dGlvblJvbGVBcm5cbiAgICAgICAgPyBpYW0uUm9sZS5mcm9tUm9sZUFybihzY29wZSwgYCR7aWR9Um9sZWAsIGF0dHJzLmV4ZWN1dGlvblJvbGVBcm4pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBleGVjdXRpb25TdGF0dXMgPSB1bmRlZmluZWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0ID0gdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHVwZGF0ZWRBdCA9IHVuZGVmaW5lZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgICAgIGNvbnN0cnVjdG9yKHM6IENvbnN0cnVjdCwgaTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHMsIGkpO1xuICAgICAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gdGhpcy5leGVjdXRpb25Sb2xlID8/IG5ldyBpYW0uVW5rbm93blByaW5jaXBhbCh7IHJlc291cmNlOiB0aGlzIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgb25saW5lIGV2YWx1YXRpb24gY29uZmlndXJhdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9ubGluZUV2YWx1YXRpb25Db25maWdBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvbmxpbmUgZXZhbHVhdGlvbiBjb25maWd1cmF0aW9uLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25saW5lRXZhbHVhdGlvbkNvbmZpZ0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBvbmxpbmUgZXZhbHVhdGlvbiBjb25maWd1cmF0aW9uLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25saW5lRXZhbHVhdGlvbkNvbmZpZ05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElBTSBleGVjdXRpb24gcm9sZSBmb3IgdGhlIGV2YWx1YXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIGxpZmVjeWNsZSBzdGF0dXMgb2YgdGhlIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGF0dXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBleGVjdXRpb24gc3RhdHVzIG9mIHRoZSBldmFsdWF0aW9uIChFTkFCTEVEIG9yIERJU0FCTEVEKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBleGVjdXRpb25TdGF0dXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lc3RhbXAgd2hlbiB0aGUgY29uZmlndXJhdGlvbiB3YXMgY3JlYXRlZC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWVzdGFtcCB3aGVuIHRoZSBjb25maWd1cmF0aW9uIHdhcyBsYXN0IHVwZGF0ZWQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG8uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBPbmxpbmVFdmFsdWF0aW9uQ29uZmlnUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMub25saW5lRXZhbHVhdGlvbkNvbmZpZ05hbWUsXG4gICAgfSk7XG5cbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICB0aHJvd0lmSW52YWxpZCh2YWxpZGF0ZUNvbmZpZ05hbWUsIHByb3BzLm9ubGluZUV2YWx1YXRpb25Db25maWdOYW1lLCB0aGlzKTtcbiAgICB0aHJvd0lmSW52YWxpZCh2YWxpZGF0ZURlc2NyaXB0aW9uLCBwcm9wcy5kZXNjcmlwdGlvbiwgdGhpcyk7XG4gICAgdGhyb3dJZkludmFsaWQodmFsaWRhdGVFdmFsdWF0b3JzLCBwcm9wcy5ldmFsdWF0b3JzLCB0aGlzKTtcbiAgICB0aHJvd0lmSW52YWxpZCh2YWxpZGF0ZVNhbXBsaW5nUGVyY2VudGFnZSwgcHJvcHMuc2FtcGxpbmdQZXJjZW50YWdlLCB0aGlzKTtcbiAgICB0aHJvd0lmSW52YWxpZCh2YWxpZGF0ZUZpbHRlcnMsIHByb3BzLmZpbHRlcnMsIHRoaXMpO1xuICAgIHRocm93SWZJbnZhbGlkKHZhbGlkYXRlU2Vzc2lvblRpbWVvdXQsIHByb3BzLnNlc3Npb25UaW1lb3V0Py50b01pbnV0ZXMoKSwgdGhpcyk7XG5cbiAgICB0aGlzLm9ubGluZUV2YWx1YXRpb25Db25maWdOYW1lID0gdGhpcy5waHlzaWNhbE5hbWU7XG4gICAgdGhpcy5leGVjdXRpb25Sb2xlID0gcHJvcHMuZXhlY3V0aW9uUm9sZSA/PyB0aGlzLmNyZWF0ZUV4ZWN1dGlvblJvbGUocHJvcHMuZGF0YVNvdXJjZSk7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMuZXhlY3V0aW9uUm9sZTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IGJlZHJvY2thZ2VudGNvcmUuQ2ZuT25saW5lRXZhbHVhdGlvbkNvbmZpZyh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBvbmxpbmVFdmFsdWF0aW9uQ29uZmlnTmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICBldmFsdWF0b3JzOiBwcm9wcy5ldmFsdWF0b3JzLm1hcCgoZSkgPT4gZS5iaW5kKCkpLFxuICAgICAgZGF0YVNvdXJjZUNvbmZpZzogcHJvcHMuZGF0YVNvdXJjZS5iaW5kKCksXG4gICAgICBldmFsdWF0aW9uRXhlY3V0aW9uUm9sZUFybjogdGhpcy5leGVjdXRpb25Sb2xlIS5yb2xlQXJuLFxuICAgICAgcnVsZTogdGhpcy5idWlsZFJ1bGVDb25maWcocHJvcHMpLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgZXhlY3V0aW9uU3RhdHVzOiBwcm9wcy5leGVjdXRpb25TdGF0dXM/LnZhbHVlLFxuICAgIH0pO1xuXG4gICAgLy8gRW5zdXJlIHRoZSBleGVjdXRpb24gcm9sZSdzIHBvbGljaWVzIGFyZSBjcmVhdGVkIGJlZm9yZSB0aGUgTDEgcmVzb3VyY2UsXG4gICAgLy8gYmVjYXVzZSBCZWRyb2NrQWdlbnRDb3JlIHZhbGlkYXRlcyByb2xlIHBlcm1pc3Npb25zIGF0IGNyZWF0ZSB0aW1lLlxuICAgIGlmICh0aGlzLmV4ZWN1dGlvblJvbGUgaW5zdGFuY2VvZiBpYW0uUm9sZSAmJiB0aGlzLmV4ZWN1dGlvblJvbGUubm9kZS5kZWZhdWx0Q2hpbGQpIHtcbiAgICAgIHJlc291cmNlLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLmV4ZWN1dGlvblJvbGUpO1xuICAgIH1cblxuICAgIHRoaXMub25saW5lRXZhbHVhdGlvbkNvbmZpZ0FybiA9IHJlc291cmNlLmF0dHJPbmxpbmVFdmFsdWF0aW9uQ29uZmlnQXJuO1xuICAgIHRoaXMub25saW5lRXZhbHVhdGlvbkNvbmZpZ0lkID0gcmVzb3VyY2UuYXR0ck9ubGluZUV2YWx1YXRpb25Db25maWdJZDtcbiAgICB0aGlzLnN0YXR1cyA9IHJlc291cmNlLmF0dHJTdGF0dXM7XG4gICAgdGhpcy5leGVjdXRpb25TdGF0dXMgPSByZXNvdXJjZS5leGVjdXRpb25TdGF0dXM7XG4gICAgdGhpcy5jcmVhdGVkQXQgPSByZXNvdXJjZS5hdHRyQ3JlYXRlZEF0O1xuICAgIHRoaXMudXBkYXRlZEF0ID0gcmVzb3VyY2UuYXR0clVwZGF0ZWRBdDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRXhlY3V0aW9uUm9sZShkYXRhU291cmNlOiBEYXRhU291cmNlQ29uZmlnKTogaWFtLklSb2xlIHtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuXG4gICAgY29uc3Qgcm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnRXhlY3V0aW9uUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdiZWRyb2NrLWFnZW50Y29yZS5hbWF6b25hd3MuY29tJywge1xuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAnYXdzOlNvdXJjZUFjY291bnQnOiBzdGFjay5hY2NvdW50LFxuICAgICAgICAgICAgJ2F3czpSZXNvdXJjZUFjY291bnQnOiBzdGFjay5hY2NvdW50LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgQXJuTGlrZToge1xuICAgICAgICAgICAgJ2F3czpTb3VyY2VBcm4nOiBbXG4gICAgICAgICAgICAgIEFybi5mb3JtYXQoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgc2VydmljZTogJ2JlZHJvY2stYWdlbnRjb3JlJyxcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlOiAnZXZhbHVhdG9yJyxcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlTmFtZTogJyonLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIEFybi5mb3JtYXQoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgc2VydmljZTogJ2JlZHJvY2stYWdlbnRjb3JlJyxcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlOiAnb25saW5lLWV2YWx1YXRpb24tY29uZmlnJyxcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlTmFtZTogJyonLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRXhlY3V0aW9uIHJvbGUgZm9yIEJlZHJvY2sgQWdlbnRDb3JlIE9ubGluZSBFdmFsdWF0aW9uJyxcbiAgICB9KTtcblxuICAgIC8vIFRoZSBzZXJ2aWNlIHJlcXVpcmVzIHF1ZXJ5IGFjY2VzcyB0byB1c2VyLXNwZWNpZmllZCBsb2cgZ3JvdXBzIEFORCB0aGVcbiAgICAvLyBpbXBsaWNpdCBhd3Mvc3BhbnMgbG9nIGdyb3VwIGl0IHVzZXMgaW50ZXJuYWxseSBmb3IgdHJhY2UgZGF0YS5cbiAgICBjb25zdCBsb2dHcm91cEFybnMgPSBbXG4gICAgICAuLi5kYXRhU291cmNlLmNsb3VkV2F0Y2hMb2dzQ29uZmlnLmxvZ0dyb3VwTmFtZXMsXG4gICAgICAnYXdzL3NwYW5zJyxcbiAgICBdLmZsYXRNYXAoXG4gICAgICAobmFtZSkgPT4gW1xuICAgICAgICBBcm4uZm9ybWF0KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlcnZpY2U6ICdsb2dzJyxcbiAgICAgICAgICAgIHJlc291cmNlOiAnbG9nLWdyb3VwJyxcbiAgICAgICAgICAgIHJlc291cmNlTmFtZTogbmFtZSxcbiAgICAgICAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LkNPTE9OX1JFU09VUkNFX05BTUUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgKSxcbiAgICAgICAgQXJuLmZvcm1hdChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZXJ2aWNlOiAnbG9ncycsXG4gICAgICAgICAgICByZXNvdXJjZTogJ2xvZy1ncm91cCcsXG4gICAgICAgICAgICByZXNvdXJjZU5hbWU6IGAke25hbWV9OipgLFxuICAgICAgICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0YWNrLFxuICAgICAgICApLFxuICAgICAgXSxcbiAgICApO1xuXG4gICAgLy8gbG9nczpEZXNjcmliZUxvZ0dyb3VwcyBkb2VzIG5vdCBzdXBwb3J0IHJlc291cmNlLWxldmVsIHBlcm1pc3Npb25zLlxuICAgIC8vIFRoZSByZXNvdXJjZSBtdXN0IGJlICcqJyBwZXIgdGhlIElBTSBzZXJ2aWNlIGF1dGhvcml6YXRpb24gcmVmZXJlbmNlLlxuICAgIC8vIFNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYW1hem9uY2xvdWR3YXRjaGxvZ3MuaHRtbFxuICAgIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHNpZDogJ0Nsb3VkV2F0Y2hMb2dEZXNjcmliZVN0YXRlbWVudCcsXG4gICAgICAgIGFjdGlvbnM6IEVWQUxVQVRJT05fQ0xPVURXQVRDSF9MT0dTX0RFU0NSSUJFX1BFUk1TLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHNpZDogJ0Nsb3VkV2F0Y2hMb2dRdWVyeVN0YXRlbWVudCcsXG4gICAgICAgIGFjdGlvbnM6IEVWQUxVQVRJT05fQ0xPVURXQVRDSF9MT0dTX1FVRVJZX1BFUk1TLFxuICAgICAgICByZXNvdXJjZXM6IGxvZ0dyb3VwQXJucyxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICByb2xlLmFkZFRvUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBzaWQ6ICdDbG91ZFdhdGNoTG9nV3JpdGVTdGF0ZW1lbnQnLFxuICAgICAgICBhY3Rpb25zOiBFVkFMVUFUSU9OX0NMT1VEV0FUQ0hfTE9HU19XUklURV9QRVJNUyxcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgQXJuLmZvcm1hdChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2VydmljZTogJ2xvZ3MnLFxuICAgICAgICAgICAgICByZXNvdXJjZTogJ2xvZy1ncm91cCcsXG4gICAgICAgICAgICAgIHJlc291cmNlTmFtZTogJy9hd3MvYmVkcm9jay1hZ2VudGNvcmUvZXZhbHVhdGlvbnMvKicsXG4gICAgICAgICAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LkNPTE9OX1JFU09VUkNFX05BTUUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgKSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICByb2xlLmFkZFRvUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBzaWQ6ICdDbG91ZFdhdGNoSW5kZXhQb2xpY3lTdGF0ZW1lbnQnLFxuICAgICAgICBhY3Rpb25zOiBFVkFMVUFUSU9OX0NMT1VEV0FUQ0hfSU5ERVhfUE9MSUNZX1BFUk1TLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBBcm4uZm9ybWF0KFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzZXJ2aWNlOiAnbG9ncycsXG4gICAgICAgICAgICAgIHJlc291cmNlOiAnbG9nLWdyb3VwJyxcbiAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiAnYXdzL3NwYW5zJyxcbiAgICAgICAgICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFjayxcbiAgICAgICAgICApLFxuICAgICAgICAgIEFybi5mb3JtYXQoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNlcnZpY2U6ICdsb2dzJyxcbiAgICAgICAgICAgICAgcmVzb3VyY2U6ICdsb2ctZ3JvdXAnLFxuICAgICAgICAgICAgICByZXNvdXJjZU5hbWU6ICdhd3Mvc3BhbnM6KicsXG4gICAgICAgICAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LkNPTE9OX1JFU09VUkNFX05BTUUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgKSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICByb2xlLmFkZFRvUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBzaWQ6ICdCZWRyb2NrSW52b2tlU3RhdGVtZW50JyxcbiAgICAgICAgYWN0aW9uczogRVZBTFVBVElPTl9CRURST0NLX01PREVMX1BFUk1TLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBgYXJuOiR7QXdzLlBBUlRJVElPTn06YmVkcm9jazoqOjpmb3VuZGF0aW9uLW1vZGVsLypgLFxuICAgICAgICAgIEFybi5mb3JtYXQoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNlcnZpY2U6ICdiZWRyb2NrJyxcbiAgICAgICAgICAgICAgcmVzb3VyY2U6ICdpbmZlcmVuY2UtcHJvZmlsZScsXG4gICAgICAgICAgICAgIHJlc291cmNlTmFtZTogJyonLFxuICAgICAgICAgICAgICByZWdpb246ICcqJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFjayxcbiAgICAgICAgICApLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHJldHVybiByb2xlO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFJ1bGVDb25maWcocHJvcHM6IE9ubGluZUV2YWx1YXRpb25Db25maWdQcm9wcyk6IGJlZHJvY2thZ2VudGNvcmUuQ2ZuT25saW5lRXZhbHVhdGlvbkNvbmZpZy5SdWxlUHJvcGVydHkge1xuICAgIHJldHVybiB7XG4gICAgICBzYW1wbGluZ0NvbmZpZzoge1xuICAgICAgICBzYW1wbGluZ1BlcmNlbnRhZ2U6IHByb3BzLnNhbXBsaW5nUGVyY2VudGFnZSA/PyAxMCxcbiAgICAgIH0sXG4gICAgICBzZXNzaW9uQ29uZmlnOiB7XG4gICAgICAgIHNlc3Npb25UaW1lb3V0TWludXRlczogcHJvcHMuc2Vzc2lvblRpbWVvdXQ/LnRvTWludXRlcygpID8/IDE1LFxuICAgICAgfSxcbiAgICAgIC4uLihwcm9wcy5maWx0ZXJzICYmIHByb3BzLmZpbHRlcnMubGVuZ3RoID4gMCA/IHtcbiAgICAgICAgZmlsdGVyczogcHJvcHMuZmlsdGVycy5tYXAoKGYpID0+ICh7XG4gICAgICAgICAga2V5OiBmLmtleSxcbiAgICAgICAgICBvcGVyYXRvcjogZi5vcGVyYXRvci52YWx1ZSxcbiAgICAgICAgICB2YWx1ZTogZi52YWx1ZS5fYmluZCgpLFxuICAgICAgICB9KSksXG4gICAgICB9IDoge30pLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
/**
|
|
14
|
+
* Permissions to describe CloudWatch Log Groups.
|
|
15
|
+
* This is a list operation that does not support resource-level permissions.
|
|
16
|
+
*/
|
|
17
|
+
export declare const EVALUATION_CLOUDWATCH_LOGS_DESCRIBE_PERMS: string[];
|
|
18
|
+
/**
|
|
19
|
+
* Permissions for the execution role to query CloudWatch Logs.
|
|
20
|
+
* These actions support resource-level permissions scoped to specific log groups.
|
|
21
|
+
*/
|
|
22
|
+
export declare const EVALUATION_CLOUDWATCH_LOGS_QUERY_PERMS: string[];
|
|
23
|
+
/**
|
|
24
|
+
* Permissions for the execution role to invoke Bedrock models.
|
|
25
|
+
*/
|
|
26
|
+
export declare const EVALUATION_BEDROCK_MODEL_PERMS: string[];
|
|
27
|
+
/**
|
|
28
|
+
* Permissions for the execution role to write evaluation results.
|
|
29
|
+
*/
|
|
30
|
+
export declare const EVALUATION_CLOUDWATCH_LOGS_WRITE_PERMS: string[];
|
|
31
|
+
/**
|
|
32
|
+
* Permissions for CloudWatch index policies.
|
|
33
|
+
*/
|
|
34
|
+
export declare const EVALUATION_CLOUDWATCH_INDEX_POLICY_PERMS: string[];
|
|
@@ -0,0 +1,53 @@
|
|
|
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.EVALUATION_CLOUDWATCH_INDEX_POLICY_PERMS = exports.EVALUATION_CLOUDWATCH_LOGS_WRITE_PERMS = exports.EVALUATION_BEDROCK_MODEL_PERMS = exports.EVALUATION_CLOUDWATCH_LOGS_QUERY_PERMS = exports.EVALUATION_CLOUDWATCH_LOGS_DESCRIBE_PERMS = void 0;
|
|
16
|
+
/**
|
|
17
|
+
* Permissions to describe CloudWatch Log Groups.
|
|
18
|
+
* This is a list operation that does not support resource-level permissions.
|
|
19
|
+
*/
|
|
20
|
+
exports.EVALUATION_CLOUDWATCH_LOGS_DESCRIBE_PERMS = [
|
|
21
|
+
'logs:DescribeLogGroups',
|
|
22
|
+
];
|
|
23
|
+
/**
|
|
24
|
+
* Permissions for the execution role to query CloudWatch Logs.
|
|
25
|
+
* These actions support resource-level permissions scoped to specific log groups.
|
|
26
|
+
*/
|
|
27
|
+
exports.EVALUATION_CLOUDWATCH_LOGS_QUERY_PERMS = [
|
|
28
|
+
'logs:GetQueryResults',
|
|
29
|
+
'logs:StartQuery',
|
|
30
|
+
];
|
|
31
|
+
/**
|
|
32
|
+
* Permissions for the execution role to invoke Bedrock models.
|
|
33
|
+
*/
|
|
34
|
+
exports.EVALUATION_BEDROCK_MODEL_PERMS = [
|
|
35
|
+
'bedrock:InvokeModel',
|
|
36
|
+
'bedrock:InvokeModelWithResponseStream',
|
|
37
|
+
];
|
|
38
|
+
/**
|
|
39
|
+
* Permissions for the execution role to write evaluation results.
|
|
40
|
+
*/
|
|
41
|
+
exports.EVALUATION_CLOUDWATCH_LOGS_WRITE_PERMS = [
|
|
42
|
+
'logs:CreateLogGroup',
|
|
43
|
+
'logs:CreateLogStream',
|
|
44
|
+
'logs:PutLogEvents',
|
|
45
|
+
];
|
|
46
|
+
/**
|
|
47
|
+
* Permissions for CloudWatch index policies.
|
|
48
|
+
*/
|
|
49
|
+
exports.EVALUATION_CLOUDWATCH_INDEX_POLICY_PERMS = [
|
|
50
|
+
'logs:DescribeIndexPolicies',
|
|
51
|
+
'logs:PutIndexPolicy',
|
|
52
|
+
];
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwZXJtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVIOzs7R0FHRztBQUNVLFFBQUEseUNBQXlDLEdBQUc7SUFDdkQsd0JBQXdCO0NBQ3pCLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLHNDQUFzQyxHQUFHO0lBQ3BELHNCQUFzQjtJQUN0QixpQkFBaUI7Q0FDbEIsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSw4QkFBOEIsR0FBRztJQUM1QyxxQkFBcUI7SUFDckIsdUNBQXVDO0NBQ3hDLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsc0NBQXNDLEdBQUc7SUFDcEQscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0QixtQkFBbUI7Q0FDcEIsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSx3Q0FBd0MsR0FBRztJQUN0RCw0QkFBNEI7SUFDNUIscUJBQXFCO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKipcbiAqIFBlcm1pc3Npb25zIHRvIGRlc2NyaWJlIENsb3VkV2F0Y2ggTG9nIEdyb3Vwcy5cbiAqIFRoaXMgaXMgYSBsaXN0IG9wZXJhdGlvbiB0aGF0IGRvZXMgbm90IHN1cHBvcnQgcmVzb3VyY2UtbGV2ZWwgcGVybWlzc2lvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBFVkFMVUFUSU9OX0NMT1VEV0FUQ0hfTE9HU19ERVNDUklCRV9QRVJNUyA9IFtcbiAgJ2xvZ3M6RGVzY3JpYmVMb2dHcm91cHMnLFxuXTtcblxuLyoqXG4gKiBQZXJtaXNzaW9ucyBmb3IgdGhlIGV4ZWN1dGlvbiByb2xlIHRvIHF1ZXJ5IENsb3VkV2F0Y2ggTG9ncy5cbiAqIFRoZXNlIGFjdGlvbnMgc3VwcG9ydCByZXNvdXJjZS1sZXZlbCBwZXJtaXNzaW9ucyBzY29wZWQgdG8gc3BlY2lmaWMgbG9nIGdyb3Vwcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEVWQUxVQVRJT05fQ0xPVURXQVRDSF9MT0dTX1FVRVJZX1BFUk1TID0gW1xuICAnbG9nczpHZXRRdWVyeVJlc3VsdHMnLFxuICAnbG9nczpTdGFydFF1ZXJ5Jyxcbl07XG5cbi8qKlxuICogUGVybWlzc2lvbnMgZm9yIHRoZSBleGVjdXRpb24gcm9sZSB0byBpbnZva2UgQmVkcm9jayBtb2RlbHMuXG4gKi9cbmV4cG9ydCBjb25zdCBFVkFMVUFUSU9OX0JFRFJPQ0tfTU9ERUxfUEVSTVMgPSBbXG4gICdiZWRyb2NrOkludm9rZU1vZGVsJyxcbiAgJ2JlZHJvY2s6SW52b2tlTW9kZWxXaXRoUmVzcG9uc2VTdHJlYW0nLFxuXTtcblxuLyoqXG4gKiBQZXJtaXNzaW9ucyBmb3IgdGhlIGV4ZWN1dGlvbiByb2xlIHRvIHdyaXRlIGV2YWx1YXRpb24gcmVzdWx0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IEVWQUxVQVRJT05fQ0xPVURXQVRDSF9MT0dTX1dSSVRFX1BFUk1TID0gW1xuICAnbG9nczpDcmVhdGVMb2dHcm91cCcsXG4gICdsb2dzOkNyZWF0ZUxvZ1N0cmVhbScsXG4gICdsb2dzOlB1dExvZ0V2ZW50cycsXG5dO1xuXG4vKipcbiAqIFBlcm1pc3Npb25zIGZvciBDbG91ZFdhdGNoIGluZGV4IHBvbGljaWVzLlxuICovXG5leHBvcnQgY29uc3QgRVZBTFVBVElPTl9DTE9VRFdBVENIX0lOREVYX1BPTElDWV9QRVJNUyA9IFtcbiAgJ2xvZ3M6RGVzY3JpYmVJbmRleFBvbGljaWVzJyxcbiAgJ2xvZ3M6UHV0SW5kZXhQb2xpY3knLFxuXTtcbiJdfQ==
|