@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.
Files changed (61) hide show
  1. package/.jsii +11191 -7249
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +30 -0
  4. package/README.md +422 -0
  5. package/lib/evaluation/custom-evaluator.d.ts +153 -0
  6. package/lib/evaluation/custom-evaluator.js +256 -0
  7. package/lib/evaluation/data-source.d.ts +106 -0
  8. package/lib/evaluation/data-source.js +156 -0
  9. package/lib/evaluation/evaluator-base.d.ts +82 -0
  10. package/lib/evaluation/evaluator-base.js +55 -0
  11. package/lib/evaluation/evaluator-config.d.ts +195 -0
  12. package/lib/evaluation/evaluator-config.js +184 -0
  13. package/lib/evaluation/evaluator.d.ts +68 -0
  14. package/lib/evaluation/evaluator.js +90 -0
  15. package/lib/evaluation/online-evaluation-base.d.ts +96 -0
  16. package/lib/evaluation/online-evaluation-base.js +55 -0
  17. package/lib/evaluation/online-evaluation.d.ts +134 -0
  18. package/lib/evaluation/online-evaluation.js +388 -0
  19. package/lib/evaluation/perms.d.ts +34 -0
  20. package/lib/evaluation/perms.js +53 -0
  21. package/lib/evaluation/types.d.ts +461 -0
  22. package/lib/evaluation/types.js +229 -0
  23. package/lib/evaluation/validation-helpers.d.ts +133 -0
  24. package/lib/evaluation/validation-helpers.js +349 -0
  25. package/lib/gateway/gateway-base.js +1 -1
  26. package/lib/gateway/gateway.js +2 -2
  27. package/lib/gateway/inbound-auth/authorizer.js +4 -4
  28. package/lib/gateway/inbound-auth/custom-claim.js +1 -1
  29. package/lib/gateway/interceptor.js +1 -1
  30. package/lib/gateway/outbound-auth/api-key.js +1 -1
  31. package/lib/gateway/outbound-auth/credential-provider.js +1 -1
  32. package/lib/gateway/protocol.js +2 -2
  33. package/lib/gateway/targets/schema/api-schema.js +4 -4
  34. package/lib/gateway/targets/schema/tool-schema.js +4 -4
  35. package/lib/gateway/targets/target-base.js +1 -1
  36. package/lib/gateway/targets/target-configuration.js +6 -6
  37. package/lib/gateway/targets/target.js +1 -1
  38. package/lib/index.d.ts +9 -0
  39. package/lib/index.js +13 -1
  40. package/lib/memory/memory-strategy.js +1 -1
  41. package/lib/memory/memory.js +2 -2
  42. package/lib/memory/strategies/managed-strategy.js +1 -1
  43. package/lib/memory/strategies/self-managed-strategy.js +8 -5
  44. package/lib/network/network-configuration.js +4 -4
  45. package/lib/policy/policy-base.js +1 -1
  46. package/lib/policy/policy-engine-base.js +1 -1
  47. package/lib/policy/policy-engine.js +1 -1
  48. package/lib/policy/policy-statement.js +5 -5
  49. package/lib/policy/policy-types.js +1 -1
  50. package/lib/policy/policy.js +1 -1
  51. package/lib/runtime/inbound-auth/custom-claim.js +1 -1
  52. package/lib/runtime/inbound-auth/runtime-authorizer-configuration.js +1 -1
  53. package/lib/runtime/observability.js +2 -2
  54. package/lib/runtime/runtime-artifact.js +1 -1
  55. package/lib/runtime/runtime-base.js +1 -1
  56. package/lib/runtime/runtime-endpoint-base.js +1 -1
  57. package/lib/runtime/runtime-endpoint.js +1 -1
  58. package/lib/runtime/runtime.js +1 -1
  59. package/lib/tools/browser.js +2 -2
  60. package/lib/tools/code-interpreter.js +2 -2
  61. package/package.json +10 -9
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EvaluationLevel = exports.FilterValue = exports.FilterOperator = exports.ExecutionStatus = exports.BuiltinEvaluator = void 0;
4
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
+ /**
6
+ * Built-in evaluators provided by Amazon Bedrock AgentCore.
7
+ *
8
+ * These evaluators assess different aspects of agent performance
9
+ * at various levels (session, trace, or tool call).
10
+ */
11
+ class BuiltinEvaluator {
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BuiltinEvaluator", version: "2.253.0-alpha.0" };
13
+ /**
14
+ * Evaluates whether the information in the agent's response is factually accurate.
15
+ */
16
+ static CORRECTNESS = new BuiltinEvaluator('Builtin.Correctness');
17
+ /**
18
+ * Evaluates whether information in the response is supported by provided context/sources.
19
+ */
20
+ static FAITHFULNESS = new BuiltinEvaluator('Builtin.Faithfulness');
21
+ /**
22
+ * Evaluates from user's perspective how useful and valuable the agent's response is.
23
+ */
24
+ static HELPFULNESS = new BuiltinEvaluator('Builtin.Helpfulness');
25
+ /**
26
+ * Evaluates whether the response appropriately addresses the user's query.
27
+ */
28
+ static RESPONSE_RELEVANCE = new BuiltinEvaluator('Builtin.ResponseRelevance');
29
+ /**
30
+ * Evaluates whether the response is appropriately brief without missing key information.
31
+ */
32
+ static CONCISENESS = new BuiltinEvaluator('Builtin.Conciseness');
33
+ /**
34
+ * Evaluates whether the response is logically structured and coherent.
35
+ */
36
+ static COHERENCE = new BuiltinEvaluator('Builtin.Coherence');
37
+ /**
38
+ * Measures how well the agent follows the provided system instructions.
39
+ */
40
+ static INSTRUCTION_FOLLOWING = new BuiltinEvaluator('Builtin.InstructionFollowing');
41
+ /**
42
+ * Detects when agent evades questions or directly refuses to answer.
43
+ */
44
+ static REFUSAL = new BuiltinEvaluator('Builtin.Refusal');
45
+ /**
46
+ * Evaluates whether the conversation successfully meets the user's goals.
47
+ */
48
+ static GOAL_SUCCESS_RATE = new BuiltinEvaluator('Builtin.GoalSuccessRate');
49
+ /**
50
+ * Evaluates whether the agent selected the appropriate tool for the task.
51
+ */
52
+ static TOOL_SELECTION_ACCURACY = new BuiltinEvaluator('Builtin.ToolSelectionAccuracy');
53
+ /**
54
+ * Evaluates how accurately the agent extracts parameters from user queries.
55
+ */
56
+ static TOOL_PARAMETER_ACCURACY = new BuiltinEvaluator('Builtin.ToolParameterAccuracy');
57
+ /**
58
+ * Evaluates whether the response contains harmful content.
59
+ */
60
+ static HARMFULNESS = new BuiltinEvaluator('Builtin.Harmfulness');
61
+ /**
62
+ * Detects content that makes generalizations about individuals or groups.
63
+ */
64
+ static STEREOTYPING = new BuiltinEvaluator('Builtin.Stereotyping');
65
+ /**
66
+ * The string value of the built-in evaluator.
67
+ */
68
+ value;
69
+ /**
70
+ * @param value - The evaluator identifier string
71
+ */
72
+ constructor(value) {
73
+ this.value = value;
74
+ }
75
+ }
76
+ exports.BuiltinEvaluator = BuiltinEvaluator;
77
+ /**
78
+ * The execution status of an online evaluation configuration.
79
+ */
80
+ class ExecutionStatus {
81
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ExecutionStatus", version: "2.253.0-alpha.0" };
82
+ /**
83
+ * The evaluation is enabled and actively processing agent traces.
84
+ */
85
+ static ENABLED = new ExecutionStatus('ENABLED');
86
+ /**
87
+ * The evaluation is disabled and not processing agent traces.
88
+ */
89
+ static DISABLED = new ExecutionStatus('DISABLED');
90
+ /**
91
+ * The string value of the execution status.
92
+ */
93
+ value;
94
+ /**
95
+ * @param value - The execution status string
96
+ */
97
+ constructor(value) {
98
+ this.value = value;
99
+ }
100
+ }
101
+ exports.ExecutionStatus = ExecutionStatus;
102
+ /**
103
+ * Filter operators for online evaluation filtering.
104
+ */
105
+ class FilterOperator {
106
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.FilterOperator", version: "2.253.0-alpha.0" };
107
+ /**
108
+ * Exact equality comparison.
109
+ */
110
+ static EQUAL = new FilterOperator('Equals');
111
+ /**
112
+ * Not equal comparison.
113
+ */
114
+ static NOT_EQUAL = new FilterOperator('NotEquals');
115
+ /**
116
+ * Greater than comparison (numeric values).
117
+ */
118
+ static GREATER_THAN = new FilterOperator('GreaterThan');
119
+ /**
120
+ * Less than comparison (numeric values).
121
+ */
122
+ static LESS_THAN = new FilterOperator('LessThan');
123
+ /**
124
+ * Greater than or equal comparison (numeric values).
125
+ */
126
+ static GREATER_THAN_OR_EQUAL = new FilterOperator('GreaterThanOrEqual');
127
+ /**
128
+ * Less than or equal comparison (numeric values).
129
+ */
130
+ static LESS_THAN_OR_EQUAL = new FilterOperator('LessThanOrEqual');
131
+ /**
132
+ * String contains comparison.
133
+ */
134
+ static CONTAINS = new FilterOperator('Contains');
135
+ /**
136
+ * String does not contain comparison.
137
+ */
138
+ static NOT_CONTAINS = new FilterOperator('NotContains');
139
+ /**
140
+ * The string value of the filter operator.
141
+ */
142
+ value;
143
+ /**
144
+ * @param value - The filter operator string
145
+ */
146
+ constructor(value) {
147
+ this.value = value;
148
+ }
149
+ }
150
+ exports.FilterOperator = FilterOperator;
151
+ /**
152
+ * A typed filter value for online evaluation filtering.
153
+ *
154
+ * Use the static factory methods to create filter values:
155
+ * - `FilterValue.string()` for string comparisons
156
+ * - `FilterValue.number()` for numeric comparisons
157
+ * - `FilterValue.boolean()` for boolean comparisons
158
+ */
159
+ class FilterValue {
160
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.FilterValue", version: "2.253.0-alpha.0" };
161
+ /**
162
+ * Creates a string filter value.
163
+ *
164
+ * @param value - The string value to compare against
165
+ */
166
+ static string(value) {
167
+ return new FilterValue({ stringValue: value });
168
+ }
169
+ /**
170
+ * Creates a numeric filter value.
171
+ *
172
+ * @param value - The numeric value to compare against
173
+ */
174
+ static number(value) {
175
+ return new FilterValue({ doubleValue: value });
176
+ }
177
+ /**
178
+ * Creates a boolean filter value.
179
+ *
180
+ * @param value - The boolean value to compare against
181
+ */
182
+ static boolean(value) {
183
+ return new FilterValue({ booleanValue: value });
184
+ }
185
+ filterValue;
186
+ constructor(filterValue) {
187
+ this.filterValue = filterValue;
188
+ }
189
+ /**
190
+ * Binds the filter value to produce the L1 property.
191
+ * @internal
192
+ */
193
+ _bind() {
194
+ return this.filterValue;
195
+ }
196
+ }
197
+ exports.FilterValue = FilterValue;
198
+ /**
199
+ * The level at which a custom evaluator assesses agent performance.
200
+ *
201
+ * Determines what granularity of data the evaluator operates on.
202
+ */
203
+ class EvaluationLevel {
204
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.EvaluationLevel", version: "2.253.0-alpha.0" };
205
+ /**
206
+ * Evaluates individual tool call invocations within a trace.
207
+ */
208
+ static TOOL_CALL = new EvaluationLevel('TOOL_CALL');
209
+ /**
210
+ * Evaluates a complete agent trace (a single request-response cycle).
211
+ */
212
+ static TRACE = new EvaluationLevel('TRACE');
213
+ /**
214
+ * Evaluates an entire agent session (multiple traces across a conversation).
215
+ */
216
+ static SESSION = new EvaluationLevel('SESSION');
217
+ /**
218
+ * The string value of the evaluation level.
219
+ */
220
+ value;
221
+ /**
222
+ * @param value - The evaluation level string
223
+ */
224
+ constructor(value) {
225
+ this.value = value;
226
+ }
227
+ }
228
+ exports.EvaluationLevel = EvaluationLevel;
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBZ0JBOzs7OztHQUtHO0FBQ0gsTUFBYSxnQkFBZ0I7O0lBQzNCOztPQUVHO0lBQ0ksTUFBTSxDQUFVLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFakY7O09BRUc7SUFDSSxNQUFNLENBQVUsWUFBWSxHQUFHLElBQUksZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUVuRjs7T0FFRztJQUNJLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRWpGOztPQUVHO0lBQ0ksTUFBTSxDQUFVLGtCQUFrQixHQUFHLElBQUksZ0JBQWdCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUU5Rjs7T0FFRztJQUNJLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRWpGOztPQUVHO0lBQ0ksTUFBTSxDQUFVLFNBQVMsR0FBRyxJQUFJLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFN0U7O09BRUc7SUFDSSxNQUFNLENBQVUscUJBQXFCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBRXBHOztPQUVHO0lBQ0ksTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFekU7O09BRUc7SUFDSSxNQUFNLENBQVUsaUJBQWlCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRTNGOztPQUVHO0lBQ0ksTUFBTSxDQUFVLHVCQUF1QixHQUFHLElBQUksZ0JBQWdCLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUV2Rzs7T0FFRztJQUNJLE1BQU0sQ0FBVSx1QkFBdUIsR0FBRyxJQUFJLGdCQUFnQixD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UyxHQUFHLElBQUksZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXBFOztPQUVHO0lBQ0ksTUFBTSxDQUFVLEtBQUssR0FBRyxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU1RDs7T0FFRztJQUNJLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFaEU7O09BRUc7SUFDYSxLQUFLLENBQVM7SUFFOUI7O09BRUc7SUFDSCxZQUFtQixLQUFhO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQTFCSCwwQ0EyQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5cbi8qKlxuICogQnVpbHQtaW4gZXZhbHVhdG9ycyBwcm92aWRlZCBieSBBbWF6b24gQmVkcm9jayBBZ2VudENvcmUuXG4gKlxuICogVGhlc2UgZXZhbHVhdG9ycyBhc3Nlc3MgZGlmZmVyZW50IGFzcGVjdHMgb2YgYWdlbnQgcGVyZm9ybWFuY2VcbiAqIGF0IHZhcmlvdXMgbGV2ZWxzIChzZXNzaW9uLCB0cmFjZSwgb3IgdG9vbCBjYWxsKS5cbiAqL1xuZXhwb3J0IGNsYXNzIEJ1aWx0aW5FdmFsdWF0b3Ige1xuICAvKipcbiAgICogRXZhbHVhdGVzIHdoZXRoZXIgdGhlIGluZm9ybWF0aW9uIGluIHRoZSBhZ2VudCdzIHJlc3BvbnNlIGlzIGZhY3R1YWxseSBhY2N1cmF0ZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ09SUkVDVE5FU1MgPSBuZXcgQnVpbHRpbkV2YWx1YXRvcignQnVpbHRpbi5Db3JyZWN0bmVzcycpO1xuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZXMgd2hldGhlciBpbmZvcm1hdGlvbiBpbiB0aGUgcmVzcG9uc2UgaXMgc3VwcG9ydGVkIGJ5IHByb3ZpZGVkIGNvbnRleHQvc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRkFJVEhGVUxORVNTID0gbmV3IEJ1aWx0aW5FdmFsdWF0b3IoJ0J1aWx0aW4uRmFpdGhmdWxuZXNzJyk7XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyBmcm9tIHVzZXIncyBwZXJzcGVjdGl2ZSBob3cgdXNlZnVsIGFuZCB2YWx1YWJsZSB0aGUgYWdlbnQncyByZXNwb25zZSBpcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSEVMUEZVTE5FU1MgPSBuZXcgQnVpbHRpbkV2YWx1YXRvcignQnVpbHRpbi5IZWxwZnVsbmVzcycpO1xuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZXMgd2hldGhlciB0aGUgcmVzcG9uc2UgYXBwcm9wcmlhdGVseSBhZGRyZXNzZXMgdGhlIHVzZXIncyBxdWVyeS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVTUE9OU0VfUkVMRVZBTkNFID0gbmV3IEJ1aWx0aW5FdmFsdWF0b3IoJ0J1aWx0aW4uUmVzcG9uc2VSZWxldmFuY2UnKTtcblxuICAvKipcbiAgICogRXZhbHVhdGVzIHdoZXRoZXIgdGhlIHJlc3BvbnNlIGlzIGFwcHJvcHJpYXRlbHkgYnJpZWYgd2l0aG91dCBtaXNzaW5nIGtleSBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ09OQ0lTRU5FU1MgPSBuZXcgQnVpbHRpbkV2YWx1YXRvcignQnVpbHRpbi5Db25jaXNlbmVzcycpO1xuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZXMgd2hldGhlciB0aGUgcmVzcG9uc2UgaXMgbG9naWNhbGx5IHN0cnVjdHVyZWQgYW5kIGNvaGVyZW50LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT0hFUkVOQ0UgPSBuZXcgQnVpbHRpbkV2YWx1YXRvcignQnVpbHRpbi5Db2hlcmVuY2UnKTtcblxuICAvKipcbiAgICogTWVhc3VyZXMgaG93IHdlbGwgdGhlIGFnZW50IGZvbGxvd3MgdGhlIHByb3ZpZGVkIHN5c3RlbSBpbnN0cnVjdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOU1RSVUNUSU9OX0ZPTExPV0lORyA9IG5ldyBCdWlsdGluRXZhbHVhdG9yKCdCdWlsdGluLkluc3RydWN0aW9uRm9sbG93aW5nJyk7XG5cbiAgLyoqXG4gICAqIERldGVjdHMgd2hlbiBhZ2VudCBldmFkZXMgcXVlc3Rpb25zIG9yIGRpcmVjdGx5IHJlZnVzZXMgdG8gYW5zd2VyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRUZVU0FMID0gbmV3IEJ1aWx0aW5FdmFsdWF0b3IoJ0J1aWx0aW4uUmVmdXNhbCcpO1xuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZXMgd2hldGhlciB0aGUgY29udmVyc2F0aW9uIHN1Y2Nlc3NmdWxseSBtZWV0cyB0aGUgdXNlcidzIGdvYWxzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHT0FMX1NVQ0NFU1NfUkFURSA9IG5ldyBCdWlsdGluRXZhbHVhdG9yKCdCdWlsdGluLkdvYWxTdWNjZXNzUmF0ZScpO1xuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZXMgd2hldGhlciB0aGUgYWdlbnQgc2VsZWN0ZWQgdGhlIGFwcHJvcHJpYXRlIHRvb2wgZm9yIHRoZSB0YXNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUT09MX1NFTEVDVElPTl9BQ0NVUkFDWSA9IG5ldyBCdWlsdGluRXZhbHVhdG9yKCdCdWlsdGluLlRvb2xTZWxlY3Rpb25BY2N1cmFjeScpO1xuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZXMgaG93IGFjY3VyYXRlbHkgdGhlIGFnZW50IGV4dHJhY3RzIHBhcmFtZXRlcnMgZnJvbSB1c2VyIHF1ZXJpZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRPT0xfUEFSQU1FVEVSX0FDQ1VSQUNZID0gbmV3IEJ1aWx0aW5FdmFsdWF0b3IoJ0J1aWx0aW4uVG9vbFBhcmFtZXRlckFjY3VyYWN5Jyk7XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyB3aGV0aGVyIHRoZSByZXNwb25zZSBjb250YWlucyBoYXJtZnVsIGNvbnRlbnQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEhBUk1GVUxORVNTID0gbmV3IEJ1aWx0aW5FdmFsdWF0b3IoJ0J1aWx0aW4uSGFybWZ1bG5lc3MnKTtcblxuICAvKipcbiAgICogRGV0ZWN0cyBjb250ZW50IHRoYXQgbWFrZXMgZ2VuZXJhbGl6YXRpb25zIGFib3V0IGluZGl2aWR1YWxzIG9yIGdyb3Vwcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1RFUkVPVFlQSU5HID0gbmV3IEJ1aWx0aW5FdmFsdWF0b3IoJ0J1aWx0aW4uU3RlcmVvdHlwaW5nJyk7XG5cbiAgLyoqXG4gICAqIFRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlIGJ1aWx0LWluIGV2YWx1YXRvci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgZXZhbHVhdG9yIGlkZW50aWZpZXIgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBleGVjdXRpb24gc3RhdHVzIG9mIGFuIG9ubGluZSBldmFsdWF0aW9uIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBFeGVjdXRpb25TdGF0dXMge1xuICAvKipcbiAgICogVGhlIGV2YWx1YXRpb24gaXMgZW5hYmxlZCBhbmQgYWN0aXZlbHkgcHJvY2Vzc2luZyBhZ2VudCB0cmFjZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVOQUJMRUQgPSBuZXcgRXhlY3V0aW9uU3RhdHVzKCdFTkFCTEVEJyk7XG5cbiAgLyoqXG4gICAqIFRoZSBldmFsdWF0aW9uIGlzIGRpc2FibGVkIGFuZCBub3QgcHJvY2Vzc2luZyBhZ2VudCB0cmFjZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERJU0FCTEVEID0gbmV3IEV4ZWN1dGlvblN0YXR1cygnRElTQUJMRUQnKTtcblxuICAvKipcbiAgICogVGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgZXhlY3V0aW9uIHN0YXR1cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgZXhlY3V0aW9uIHN0YXR1cyBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogRmlsdGVyIG9wZXJhdG9ycyBmb3Igb25saW5lIGV2YWx1YXRpb24gZmlsdGVyaW5nLlxuICovXG5leHBvcnQgY2xhc3MgRmlsdGVyT3BlcmF0b3Ige1xuICAvKipcbiAgICogRXhhY3QgZXF1YWxpdHkgY29tcGFyaXNvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRVFVQUwgPSBuZXcgRmlsdGVyT3BlcmF0b3IoJ0VxdWFscycpO1xuXG4gIC8qKlxuICAgKiBOb3QgZXF1YWwgY29tcGFyaXNvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9UX0VRVUFMID0gbmV3IEZpbHRlck9wZXJhdG9yKCdOb3RFcXVhbHMnKTtcblxuICAvKipcbiAgICogR3JlYXRlciB0aGFuIGNvbXBhcmlzb24gKG51bWVyaWMgdmFsdWVzKS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR1JFQVRFUl9USEFOID0gbmV3IEZpbHRlck9wZXJhdG9yKCdHcmVhdGVyVGhhbicpO1xuXG4gIC8qKlxuICAgKiBMZXNzIHRoYW4gY29tcGFyaXNvbiAobnVtZXJpYyB2YWx1ZXMpLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMRVNTX1RIQU4gPSBuZXcgRmlsdGVyT3BlcmF0b3IoJ0xlc3NUaGFuJyk7XG5cbiAgLyoqXG4gICAqIEdyZWF0ZXIgdGhhbiBvciBlcXVhbCBjb21wYXJpc29uIChudW1lcmljIHZhbHVlcykuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdSRUFURVJfVEhBTl9PUl9FUVVBTCA9IG5ldyBGaWx0ZXJPcGVyYXRvcignR3JlYXRlclRoYW5PckVxdWFsJyk7XG5cbiAgLyoqXG4gICAqIExlc3MgdGhhbiBvciBlcXVhbCBjb21wYXJpc29uIChudW1lcmljIHZhbHVlcykuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IExFU1NfVEhBTl9PUl9FUVVBTCA9IG5ldyBGaWx0ZXJPcGVyYXRvcignTGVzc1RoYW5PckVxdWFsJyk7XG5cbiAgLyoqXG4gICAqIFN0cmluZyBjb250YWlucyBjb21wYXJpc29uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT05UQUlOUyA9IG5ldyBGaWx0ZXJPcGVyYXRvcignQ29udGFpbnMnKTtcblxuICAvKipcbiAgICogU3RyaW5nIGRvZXMgbm90IGNvbnRhaW4gY29tcGFyaXNvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9UX0NPTlRBSU5TID0gbmV3IEZpbHRlck9wZXJhdG9yKCdOb3RDb250YWlucycpO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RyaW5nIHZhbHVlIG9mIHRoZSBmaWx0ZXIgb3BlcmF0b3IuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGZpbHRlciBvcGVyYXRvciBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogQSB0eXBlZCBmaWx0ZXIgdmFsdWUgZm9yIG9ubGluZSBldmFsdWF0aW9uIGZpbHRlcmluZy5cbiAqXG4gKiBVc2UgdGhlIHN0YXRpYyBmYWN0b3J5IG1ldGhvZHMgdG8gY3JlYXRlIGZpbHRlciB2YWx1ZXM6XG4gKiAtIGBGaWx0ZXJWYWx1ZS5zdHJpbmcoKWAgZm9yIHN0cmluZyBjb21wYXJpc29uc1xuICogLSBgRmlsdGVyVmFsdWUubnVtYmVyKClgIGZvciBudW1lcmljIGNvbXBhcmlzb25zXG4gKiAtIGBGaWx0ZXJWYWx1ZS5ib29sZWFuKClgIGZvciBib29sZWFuIGNvbXBhcmlzb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBGaWx0ZXJWYWx1ZSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3RyaW5nIGZpbHRlciB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHN0cmluZyB2YWx1ZSB0byBjb21wYXJlIGFnYWluc3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBGaWx0ZXJWYWx1ZSB7XG4gICAgcmV0dXJuIG5ldyBGaWx0ZXJWYWx1ZSh7IHN0cmluZ1ZhbHVlOiB2YWx1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbnVtZXJpYyBmaWx0ZXIgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBudW1lcmljIHZhbHVlIHRvIGNvbXBhcmUgYWdhaW5zdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBudW1iZXIodmFsdWU6IG51bWJlcik6IEZpbHRlclZhbHVlIHtcbiAgICByZXR1cm4gbmV3IEZpbHRlclZhbHVlKHsgZG91YmxlVmFsdWU6IHZhbHVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBib29sZWFuIGZpbHRlciB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGJvb2xlYW4gdmFsdWUgdG8gY29tcGFyZSBhZ2FpbnN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJvb2xlYW4odmFsdWU6IGJvb2xlYW4pOiBGaWx0ZXJWYWx1ZSB7XG4gICAgcmV0dXJuIG5ldyBGaWx0ZXJWYWx1ZSh7IGJvb2xlYW5WYWx1ZTogdmFsdWUgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGZpbHRlclZhbHVlOiB7IHN0cmluZ1ZhbHVlPzogc3RyaW5nOyBkb3VibGVWYWx1ZT86IG51bWJlcjsgYm9vbGVhblZhbHVlPzogYm9vbGVhbiB9O1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoZmlsdGVyVmFsdWU6IHsgc3RyaW5nVmFsdWU/OiBzdHJpbmc7IGRvdWJsZVZhbHVlPzogbnVtYmVyOyBib29sZWFuVmFsdWU/OiBib29sZWFuIH0pIHtcbiAgICB0aGlzLmZpbHRlclZhbHVlID0gZmlsdGVyVmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgdGhlIGZpbHRlciB2YWx1ZSB0byBwcm9kdWNlIHRoZSBMMSBwcm9wZXJ0eS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX2JpbmQoKTogeyBzdHJpbmdWYWx1ZT86IHN0cmluZzsgZG91YmxlVmFsdWU/OiBudW1iZXI7IGJvb2xlYW5WYWx1ZT86IGJvb2xlYW4gfSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyVmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBGaWx0ZXIgY29uZmlndXJhdGlvbiBmb3Igb25saW5lIGV2YWx1YXRpb24uXG4gKlxuICogRmlsdGVycyBkZXRlcm1pbmUgd2hpY2ggYWdlbnQgdHJhY2VzIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgZXZhbHVhdGlvblxuICogYmFzZWQgb24gdHJhY2UgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJDb25maWcge1xuICAvKipcbiAgICogVGhlIGtleSBvciBmaWVsZCBuYW1lIHRvIGZpbHRlciBvbiB3aXRoaW4gdGhlIGFnZW50IHRyYWNlIGRhdGEuXG4gICAqXG4gICAqIEBleGFtcGxlICd1c2VyLnJlZ2lvbidcbiAgICovXG4gIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tcGFyaXNvbiBvcGVyYXRvciB0byB1c2UgZm9yIGZpbHRlcmluZy5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvcjtcblxuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIGNvbXBhcmUgYWdhaW5zdCB1c2luZyB0aGUgc3BlY2lmaWVkIG9wZXJhdG9yLlxuICAgKlxuICAgKiBVc2UgYEZpbHRlclZhbHVlLnN0cmluZygpYCwgYEZpbHRlclZhbHVlLm51bWJlcigpYCwgb3IgYEZpbHRlclZhbHVlLmJvb2xlYW4oKWBcbiAgICogdG8gY3JlYXRlIHR5cGVkIGZpbHRlciB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSB2YWx1ZTogRmlsdGVyVmFsdWU7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgQ2xvdWRXYXRjaCBMb2dzIGRhdGEgc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkV2F0Y2hMb2dzRGF0YVNvdXJjZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBDbG91ZFdhdGNoIGxvZyBncm91cCBuYW1lcyB0byBtb25pdG9yIGZvciBhZ2VudCB0cmFjZXMuXG4gICAqXG4gICAqIEBtaW5pbXVtIDFcbiAgICogQG1heGltdW0gNVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXBOYW1lczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHNlcnZpY2UgbmFtZXMgdG8gZmlsdGVyIHRyYWNlcyB3aXRoaW4gdGhlIHNwZWNpZmllZCBsb2cgZ3JvdXBzLlxuICAgKiBVc2VkIHRvIGlkZW50aWZ5IHJlbGV2YW50IGFnZW50IHNlc3Npb25zLlxuICAgKlxuICAgKiBGb3IgYWdlbnRzIGhvc3RlZCBvbiBBZ2VudENvcmUgUnVudGltZSwgc2VydmljZSBuYW1lIGZvbGxvd3MgdGhlIGZvcm1hdDpcbiAgICogYDxhZ2VudC1ydW50aW1lLW5hbWU+LjxhZ2VudC1ydW50aW1lLWVuZHBvaW50LW5hbWU+YFxuICAgKlxuICAgKiBAbWluaW11bSAxXG4gICAqIEBtYXhpbXVtIDFcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lczogc3RyaW5nW107XG59XG5cbi8qKlxuICogQmFzZSBwcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhbiBPbmxpbmVFdmFsdWF0aW9uQ29uZmlnLlxuICogVGhlIGFjdHVhbCBPbmxpbmVFdmFsdWF0aW9uUHJvcHMgaXMgZGVmaW5lZCBpbiBvbmxpbmUtZXZhbHVhdGlvbi1jb25maWcudHNcbiAqIHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPbmxpbmVFdmFsdWF0aW9uQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBvbmxpbmUgZXZhbHVhdGlvbiBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4geW91ciBhY2NvdW50LiBWYWxpZCBjaGFyYWN0ZXJzIGFyZSBhLXosIEEtWiwgMC05LCBfICh1bmRlcnNjb3JlKS5cbiAgICogTXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyIGFuZCBjYW4gYmUgdXAgdG8gNDggY2hhcmFjdGVycyBsb25nLlxuICAgKlxuICAgKiBAcGF0dGVybiBeW2EtekEtWl1bYS16QS1aMC05X117MCw0N30kXG4gICAqL1xuICByZWFkb25seSBvbmxpbmVFdmFsdWF0aW9uQ29uZmlnTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgdGhhdCBwcm92aWRlcyBwZXJtaXNzaW9ucyBmb3IgdGhlIGV2YWx1YXRpb24gdG8gYWNjZXNzIEFXUyBzZXJ2aWNlcy5cbiAgICpcbiAgICogSWYgbm90IHByb3ZpZGVkLCBhIHJvbGUgd2lsbCBiZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgd2l0aCB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbnNcbiAgICogaW5jbHVkaW5nIGNyb3NzLXJlZ2lvbiBCZWRyb2NrIG1vZGVsIGludm9jYXRpb24gKHRvIHN1cHBvcnQgY3Jvc3MtcmVnaW9uIGluZmVyZW5jZVxuICAgKiBwcm9maWxlcykuIEZvciBzdHJpY3QgY29zdCBjb250cm9scyBvciBkYXRhIHJlc2lkZW5jeSBjb21wbGlhbmNlLCBwcm92aWRlIGEgY3VzdG9tXG4gICAqIHJvbGUgd2l0aCByZWdpb24tc2NvcGVkIHBlcm1pc3Npb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgbmV3IHJvbGUgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBleGVjdXRpb25Sb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIG9ubGluZSBldmFsdWF0aW9uIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZGVzY3JpcHRpb25cbiAgICogQG1heExlbmd0aCAyMDBcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyY2VudGFnZSBvZiBhZ2VudCB0cmFjZXMgdG8gc2FtcGxlIGZvciBldmFsdWF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxMFxuICAgKiBAbWluaW11bSAwLjAxXG4gICAqIEBtYXhpbXVtIDEwMFxuICAgKi9cbiAgcmVhZG9ubHkgc2FtcGxpbmdQZXJjZW50YWdlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBmaWx0ZXJzIHRoYXQgZGV0ZXJtaW5lIHdoaWNoIGFnZW50IHRyYWNlcyBzaG91bGQgYmUgZXZhbHVhdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcnMgKGV2YWx1YXRlIGFsbCBzYW1wbGVkIHRyYWNlcylcbiAgICogQG1heGltdW0gNVxuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVycz86IEZpbHRlckNvbmZpZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgZHVyYXRpb24gb2YgaW5hY3Rpdml0eSBhZnRlciB3aGljaCBhbiBhZ2VudCBzZXNzaW9uXG4gICAqIGlzIGNvbnNpZGVyZWQgY29tcGxldGUgYW5kIHJlYWR5IGZvciBldmFsdWF0aW9uLlxuICAgKlxuICAgKiBNdXN0IGJlIGJldHdlZW4gMSBtaW51dGUgYW5kIDE0NDAgbWludXRlcyAoMjQgaG91cnMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5taW51dGVzKDE1KVxuICAgKi9cbiAgcmVhZG9ubHkgc2Vzc2lvblRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGV4ZWN1dGlvbiBzdGF0dXMgb2YgdGhlIG9ubGluZSBldmFsdWF0aW9uIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIGV2YWx1YXRpb24gYWN0aXZlbHkgcHJvY2Vzc2VzIGFnZW50IHRyYWNlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgRXhlY3V0aW9uU3RhdHVzLkVOQUJMRURcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGlvblN0YXR1cz86IEV4ZWN1dGlvblN0YXR1cztcbn1cblxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIGJpbmRpbmcgYW4gRXZhbHVhdG9yUmVmZXJlbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRvclJlZmVyZW5jZUJpbmRSZXN1bHQge1xuICAvKipcbiAgICogVGhlIGV2YWx1YXRvciBpZGVudGlmaWVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZhbHVhdG9ySWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIGJpbmRpbmcgYSBEYXRhU291cmNlQ29uZmlnLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTb3VyY2VDb25maWdCaW5kUmVzdWx0IHtcbiAgLyoqXG4gICAqIFRoZSBDbG91ZFdhdGNoIExvZ3MgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkV2F0Y2hMb2dzOiBDbG91ZFdhdGNoTG9nc0RhdGFTb3VyY2VDb25maWc7XG59XG5cbi8qKlxuICogVGhlIGxldmVsIGF0IHdoaWNoIGEgY3VzdG9tIGV2YWx1YXRvciBhc3Nlc3NlcyBhZ2VudCBwZXJmb3JtYW5jZS5cbiAqXG4gKiBEZXRlcm1pbmVzIHdoYXQgZ3JhbnVsYXJpdHkgb2YgZGF0YSB0aGUgZXZhbHVhdG9yIG9wZXJhdGVzIG9uLlxuICovXG5leHBvcnQgY2xhc3MgRXZhbHVhdGlvbkxldmVsIHtcbiAgLyoqXG4gICAqIEV2YWx1YXRlcyBpbmRpdmlkdWFsIHRvb2wgY2FsbCBpbnZvY2F0aW9ucyB3aXRoaW4gYSB0cmFjZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVE9PTF9DQUxMID0gbmV3IEV2YWx1YXRpb25MZXZlbCgnVE9PTF9DQUxMJyk7XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyBhIGNvbXBsZXRlIGFnZW50IHRyYWNlIChhIHNpbmdsZSByZXF1ZXN0LXJlc3BvbnNlIGN5Y2xlKS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFJBQ0UgPSBuZXcgRXZhbHVhdGlvbkxldmVsKCdUUkFDRScpO1xuXG4gIC8qKlxuICAgKiBFdmFsdWF0ZXMgYW4gZW50aXJlIGFnZW50IHNlc3Npb24gKG11bHRpcGxlIHRyYWNlcyBhY3Jvc3MgYSBjb252ZXJzYXRpb24pLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRVNTSU9OID0gbmV3IEV2YWx1YXRpb25MZXZlbCgnU0VTU0lPTicpO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RyaW5nIHZhbHVlIG9mIHRoZSBldmFsdWF0aW9uIGxldmVsLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBldmFsdWF0aW9uIGxldmVsIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGNhdGVnb3JpY2FsIHJhdGluZyBzY2FsZSBvcHRpb24gZm9yIGN1c3RvbSBldmFsdWF0b3JzLlxuICpcbiAqIENhdGVnb3JpY2FsIHNjYWxlcyBkZWZpbmUgZGlzY3JldGUgbGFiZWxzIGZvciBzY29yaW5nIGFnZW50IHBlcmZvcm1hbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGVnb3JpY2FsUmF0aW5nT3B0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBmb3IgdGhpcyByYXRpbmcgb3B0aW9uLlxuICAgKlxuICAgKiBAZXhhbXBsZSAnR29vZCdcbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiB0aGF0IGV4cGxhaW5zIHdoYXQgdGhpcyByYXRpbmcgcmVwcmVzZW50cy5cbiAgICpcbiAgICogQGV4YW1wbGUgJ1RoZSByZXNwb25zZSBmdWxseSBhZGRyZXNzZXMgdGhlIHVzZXIgcXVlcnkgd2l0aCBhY2N1cmF0ZSBpbmZvcm1hdGlvbi4nXG4gICAqL1xuICByZWFkb25seSBkZWZpbml0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBudW1lcmljYWwgcmF0aW5nIHNjYWxlIG9wdGlvbiBmb3IgY3VzdG9tIGV2YWx1YXRvcnMuXG4gKlxuICogTnVtZXJpY2FsIHNjYWxlcyBkZWZpbmUgbGFiZWxlZCBudW1lcmljIHZhbHVlcyBmb3Igc2NvcmluZyBhZ2VudCBwZXJmb3JtYW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdW1lcmljYWxSYXRpbmdPcHRpb24ge1xuICAvKipcbiAgICogVGhlIGxhYmVsIGZvciB0aGlzIHJhdGluZyBvcHRpb24uXG4gICAqXG4gICAqIEBleGFtcGxlICdFeGNlbGxlbnQnXG4gICAqL1xuICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gdGhhdCBleHBsYWlucyB3aGF0IHRoaXMgbnVtZXJpY2FsIHJhdGluZyByZXByZXNlbnRzLlxuICAgKlxuICAgKiBAZXhhbXBsZSAnVGhlIHJlc3BvbnNlIGlzIGNvbXByZWhlbnNpdmUsIGFjY3VyYXRlLCBhbmQgd2VsbC1zdHJ1Y3R1cmVkLidcbiAgICovXG4gIHJlYWRvbmx5IGRlZmluaXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG51bWVyaWNhbCB2YWx1ZSBmb3IgdGhpcyByYXRpbmcgc2NhbGUgb3B0aW9uLlxuICAgKlxuICAgKiBAZXhhbXBsZSA1XG4gICAqL1xuICByZWFkb25seSB2YWx1ZTogbnVtYmVyO1xufVxuXG4vKipcbiAqIEluZmVyZW5jZSBjb25maWd1cmF0aW9uIGZvciBhIGN1c3RvbSBMTE0tYXMtYS1KdWRnZSBldmFsdWF0b3IuXG4gKlxuICogQ29udHJvbHMgaG93IHRoZSBmb3VuZGF0aW9uIG1vZGVsIGdlbmVyYXRlcyBldmFsdWF0aW9uIHJlc3BvbnNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0b3JJbmZlcmVuY2VDb25maWcge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRva2VucyB0byBnZW5lcmF0ZSBpbiB0aGUgbW9kZWwgcmVzcG9uc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIGZvdW5kYXRpb24gbW9kZWwncyBkZWZhdWx0IG1heGltdW0gdG9rZW4gbGltaXQgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4VG9rZW5zPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGVyYXR1cmUgdmFsdWUgdGhhdCBjb250cm9scyByYW5kb21uZXNzIGluIHRoZSBtb2RlbCdzIHJlc3BvbnNlcy5cbiAgICpcbiAgICogSGlnaGVyIHZhbHVlcyBwcm9kdWNlIG1vcmUgZGl2ZXJzZSBvdXRwdXRzLiBSYW5nZTogMC4wIHRvIDEuMC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgZm91bmRhdGlvbiBtb2RlbCdzIGRlZmF1bHQgdGVtcGVyYXR1cmUgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGVtcGVyYXR1cmU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0b3AtcCBzYW1wbGluZyBwYXJhbWV0ZXIgdGhhdCBjb250cm9scyB0aGUgZGl2ZXJzaXR5IG9mIHRoZSBtb2RlbCdzIHJlc3BvbnNlcy5cbiAgICpcbiAgICogUmFuZ2U6IDAuMCB0byAxLjAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIGZvdW5kYXRpb24gbW9kZWwncyBkZWZhdWx0IHRvcC1wIHZhbHVlIGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHRvcFA/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIEV2YWx1YXRvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0b3JBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGV2YWx1YXRvci5cbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRvckFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGV2YWx1YXRvci5cbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRvcklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBldmFsdWF0b3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbmFtZSBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRvck5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIE9ubGluZUV2YWx1YXRpb25Db25maWcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25saW5lRXZhbHVhdGlvbkNvbmZpZ0F0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgb25saW5lIGV2YWx1YXRpb24gY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9ubGluZUV2YWx1YXRpb25Db25maWdBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBvbmxpbmUgZXZhbHVhdGlvbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb25saW5lRXZhbHVhdGlvbkNvbmZpZ0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBvbmxpbmUgZXZhbHVhdGlvbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb25saW5lRXZhbHVhdGlvbkNvbmZpZ05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgSUFNIGV4ZWN1dGlvbiByb2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHJvbGUgQVJOIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBleGVjdXRpb25Sb2xlQXJuPzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,133 @@
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 type { IConstruct } from 'constructs';
14
+ import type { CategoricalRatingOption, FilterConfig, NumericalRatingOption } from './types';
15
+ /**
16
+ * Interface for evaluator references used in validation.
17
+ * @internal
18
+ */
19
+ interface IEvaluatorReference {
20
+ readonly evaluatorId: string;
21
+ }
22
+ /******************************************************************************
23
+ * TYPES
24
+ *****************************************************************************/
25
+ export type ValidationFn<T> = (param: T, scope?: IConstruct) => string[];
26
+ /******************************************************************************
27
+ * VALIDATION FUNCTIONS
28
+ *****************************************************************************/
29
+ /**
30
+ * Validates the online evaluation configuration name.
31
+ * Must start with a letter and contain only alphanumeric characters and underscores.
32
+ * @param name - The configuration name to validate
33
+ * @param _scope - The construct scope for error reporting (optional)
34
+ * @returns Array of validation error messages, empty if valid
35
+ */
36
+ export declare function validateConfigName(name: string, _scope?: IConstruct): string[];
37
+ /**
38
+ * Validates the description field.
39
+ * @param description - The description to validate
40
+ * @param _scope - The construct scope for error reporting (optional)
41
+ * @returns Array of validation error messages, empty if valid
42
+ */
43
+ export declare function validateDescription(description: string | undefined, _scope?: IConstruct): string[];
44
+ /**
45
+ * Validates the evaluators array.
46
+ * @param evaluators - The evaluators array to validate
47
+ * @param _scope - The construct scope for error reporting (optional)
48
+ * @returns Array of validation error messages, empty if valid
49
+ */
50
+ export declare function validateEvaluators(evaluators: IEvaluatorReference[], _scope?: IConstruct): string[];
51
+ /**
52
+ * Validates the sampling percentage.
53
+ * @param percentage - The sampling percentage to validate
54
+ * @param _scope - The construct scope for error reporting (optional)
55
+ * @returns Array of validation error messages, empty if valid
56
+ */
57
+ export declare function validateSamplingPercentage(percentage: number | undefined, _scope?: IConstruct): string[];
58
+ /**
59
+ * Validates the filters array.
60
+ * @param filters - The filters array to validate
61
+ * @param _scope - The construct scope for error reporting (optional)
62
+ * @returns Array of validation error messages, empty if valid
63
+ */
64
+ export declare function validateFilters(filters: FilterConfig[] | undefined, _scope?: IConstruct): string[];
65
+ /**
66
+ * Validates the session timeout in minutes.
67
+ * @param minutes - The session timeout in minutes to validate
68
+ * @param _scope - The construct scope for error reporting (optional)
69
+ * @returns Array of validation error messages, empty if valid
70
+ */
71
+ export declare function validateSessionTimeout(minutes: number | undefined, _scope?: IConstruct): string[];
72
+ /**
73
+ * Validates the log group names array.
74
+ * @param names - The log group names array to validate
75
+ * @param _scope - The construct scope for error reporting (optional)
76
+ * @returns Array of validation error messages, empty if valid
77
+ */
78
+ export declare function validateLogGroupNames(names: string[], _scope?: IConstruct): string[];
79
+ /**
80
+ * Validates the service names array.
81
+ * @param names - The service names array to validate
82
+ * @param _scope - The construct scope for error reporting (optional)
83
+ * @returns Array of validation error messages, empty if valid
84
+ */
85
+ export declare function validateServiceNames(names: string[], _scope?: IConstruct): string[];
86
+ /**
87
+ * Validates the evaluator name.
88
+ * Must start with a letter and contain only alphanumeric characters and underscores.
89
+ * @param name - The evaluator name to validate
90
+ * @param _scope - The construct scope for error reporting (optional)
91
+ * @returns Array of validation error messages, empty if valid
92
+ */
93
+ export declare function validateEvaluatorName(name: string, _scope?: IConstruct): string[];
94
+ /**
95
+ * Validates that instructions are provided and non-empty.
96
+ * @param instructions - The instructions to validate
97
+ * @param _scope - The construct scope for error reporting (optional)
98
+ * @returns Array of validation error messages, empty if valid
99
+ */
100
+ export declare function validateInstructions(instructions: string, _scope?: IConstruct): string[];
101
+ /**
102
+ * Validates a categorical rating scale.
103
+ * @param options - The categorical rating options to validate
104
+ * @param _scope - The construct scope for error reporting (optional)
105
+ * @returns Array of validation error messages, empty if valid
106
+ */
107
+ export declare function validateCategoricalRatingScale(options: CategoricalRatingOption[], _scope?: IConstruct): string[];
108
+ /**
109
+ * Validates a numerical rating scale.
110
+ * @param options - The numerical rating options to validate
111
+ * @param _scope - The construct scope for error reporting (optional)
112
+ * @returns Array of validation error messages, empty if valid
113
+ */
114
+ export declare function validateNumericalRatingScale(options: NumericalRatingOption[], _scope?: IConstruct): string[];
115
+ /**
116
+ * Validates the Lambda timeout in seconds.
117
+ * @param seconds - The timeout in seconds to validate
118
+ * @param _scope - The construct scope for error reporting (optional)
119
+ * @returns Array of validation error messages, empty if valid
120
+ */
121
+ export declare function validateLambdaTimeout(seconds: number | undefined, _scope?: IConstruct): string[];
122
+ /******************************************************************************
123
+ * HELPER FUNCTIONS
124
+ *****************************************************************************/
125
+ /**
126
+ * Throws a validation error if the validation function returns any errors.
127
+ * @param validationFn - The validation function to execute
128
+ * @param param - The parameter to validate
129
+ * @param scope - The construct scope for error reporting (optional)
130
+ * @returns The validated parameter
131
+ */
132
+ export declare function throwIfInvalid<T>(validationFn: ValidationFn<T>, param: T, scope?: IConstruct): T;
133
+ export {};