@aws-cdk/aws-glue-alpha 2.268.0-alpha.0 → 2.269.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 +1086 -878
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +1 -79
- package/README.md +101 -29
- package/adr/job-arguments.md +212 -0
- package/lib/catalog.js +3 -3
- package/lib/code.js +3 -3
- package/lib/connection.d.ts +44 -29
- package/lib/connection.js +66 -32
- package/lib/constants.d.ts +17 -0
- package/lib/constants.js +20 -2
- package/lib/data-format.js +5 -5
- package/lib/data-quality-ruleset.js +3 -3
- package/lib/database.js +1 -1
- package/lib/external-table.js +1 -1
- package/lib/jobs/job.d.ts +90 -9
- package/lib/jobs/job.js +115 -38
- package/lib/jobs/pyspark-etl-job.d.ts +1 -3
- package/lib/jobs/pyspark-etl-job.js +9 -14
- package/lib/jobs/pyspark-flex-etl-job.d.ts +1 -3
- package/lib/jobs/pyspark-flex-etl-job.js +9 -14
- package/lib/jobs/pyspark-streaming-job.d.ts +1 -3
- package/lib/jobs/pyspark-streaming-job.js +9 -14
- package/lib/jobs/python-shell-job.d.ts +20 -7
- package/lib/jobs/python-shell-job.js +30 -33
- package/lib/jobs/ray-job.js +8 -13
- package/lib/jobs/scala-spark-etl-job.d.ts +1 -3
- package/lib/jobs/scala-spark-etl-job.js +10 -14
- package/lib/jobs/scala-spark-flex-etl-job.d.ts +1 -3
- package/lib/jobs/scala-spark-flex-etl-job.js +10 -14
- package/lib/jobs/scala-spark-streaming-job.d.ts +1 -3
- package/lib/jobs/scala-spark-streaming-job.js +10 -14
- package/lib/jobs/spark-job.d.ts +9 -7
- package/lib/jobs/spark-job.js +23 -32
- package/lib/partition-projection.d.ts +36 -47
- package/lib/partition-projection.js +22 -40
- package/lib/s3-table.js +4 -4
- package/lib/schema.js +2 -2
- package/lib/security-configuration.js +4 -4
- package/lib/storage-parameter.js +1 -1
- package/lib/table-base.js +1 -1
- package/lib/triggers/trigger-options.d.ts +102 -42
- package/lib/triggers/trigger-options.js +202 -3
- package/lib/triggers/workflow.d.ts +31 -47
- package/lib/triggers/workflow.js +27 -142
- package/package.json +7 -7
|
@@ -33,15 +33,104 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.TriggerSchedule = void 0;
|
|
36
|
+
exports.Condition = exports.TriggerSchedule = exports.Action = void 0;
|
|
37
|
+
const jsiiDeprecationWarnings = require("../../.warnings.jsii.js");
|
|
37
38
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
38
39
|
const events = __importStar(require("aws-cdk-lib/aws-events"));
|
|
40
|
+
const constants_1 = require("../constants");
|
|
41
|
+
/**
|
|
42
|
+
* An action initiated by a trigger.
|
|
43
|
+
*
|
|
44
|
+
* An action runs exactly one target: use {@link Action.job} to run a job or
|
|
45
|
+
* {@link Action.crawler} to run a crawler. Because these are separate factory
|
|
46
|
+
* methods, an action can never target both or neither.
|
|
47
|
+
*/
|
|
48
|
+
class Action {
|
|
49
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Action", version: "2.269.0-alpha.0" };
|
|
50
|
+
/**
|
|
51
|
+
* Create an action that runs a job.
|
|
52
|
+
*
|
|
53
|
+
* @param job the job to run when the trigger fires.
|
|
54
|
+
* @param options additional options for the action.
|
|
55
|
+
*/
|
|
56
|
+
static job(job, options = {}) {
|
|
57
|
+
try {
|
|
58
|
+
jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_JobActionOptions(options);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
62
|
+
Error.captureStackTrace(error, this.job);
|
|
63
|
+
}
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
return new JobAction(job, options);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Create an action that runs a crawler.
|
|
70
|
+
*
|
|
71
|
+
* @param crawler the crawler to run when the trigger fires.
|
|
72
|
+
* @param options additional options for the action.
|
|
73
|
+
*/
|
|
74
|
+
static crawler(crawler, options = {}) {
|
|
75
|
+
try {
|
|
76
|
+
jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_CrawlerActionOptions(options);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
80
|
+
Error.captureStackTrace(error, this.crawler);
|
|
81
|
+
}
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
return new CrawlerAction(crawler, options);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.Action = Action;
|
|
88
|
+
/**
|
|
89
|
+
* An action that runs a job.
|
|
90
|
+
*/
|
|
91
|
+
class JobAction extends Action {
|
|
92
|
+
job;
|
|
93
|
+
options;
|
|
94
|
+
constructor(job, options) {
|
|
95
|
+
super();
|
|
96
|
+
this.job = job;
|
|
97
|
+
this.options = options;
|
|
98
|
+
}
|
|
99
|
+
_render() {
|
|
100
|
+
return {
|
|
101
|
+
jobName: this.job.jobRef.jobName,
|
|
102
|
+
arguments: this.options.arguments,
|
|
103
|
+
timeout: this.options.timeout?.toMinutes(),
|
|
104
|
+
securityConfiguration: this.options.securityConfiguration?.securityConfigurationName,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* An action that runs a crawler.
|
|
110
|
+
*/
|
|
111
|
+
class CrawlerAction extends Action {
|
|
112
|
+
crawler;
|
|
113
|
+
options;
|
|
114
|
+
constructor(crawler, options) {
|
|
115
|
+
super();
|
|
116
|
+
this.crawler = crawler;
|
|
117
|
+
this.options = options;
|
|
118
|
+
}
|
|
119
|
+
_render() {
|
|
120
|
+
return {
|
|
121
|
+
crawlerName: this.crawler.crawlerRef.crawlerName,
|
|
122
|
+
arguments: this.options.arguments,
|
|
123
|
+
timeout: this.options.timeout?.toMinutes(),
|
|
124
|
+
securityConfiguration: this.options.securityConfiguration?.securityConfigurationName,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
39
128
|
/**
|
|
40
129
|
* Represents a trigger schedule.
|
|
41
130
|
*/
|
|
42
131
|
class TriggerSchedule {
|
|
43
132
|
expressionString;
|
|
44
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.TriggerSchedule", version: "2.
|
|
133
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.TriggerSchedule", version: "2.269.0-alpha.0" };
|
|
45
134
|
/**
|
|
46
135
|
* Creates a new TriggerSchedule instance with a cron expression.
|
|
47
136
|
*
|
|
@@ -60,6 +149,22 @@ class TriggerSchedule {
|
|
|
60
149
|
static expression(expression) {
|
|
61
150
|
return new TriggerSchedule(expression);
|
|
62
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Creates a schedule that fires once a day, at midnight UTC.
|
|
154
|
+
*
|
|
155
|
+
* @returns A new TriggerSchedule instance.
|
|
156
|
+
*/
|
|
157
|
+
static daily() {
|
|
158
|
+
return TriggerSchedule.cron({ minute: '0', hour: '0' });
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Creates a schedule that fires once a week, at midnight UTC on Sunday.
|
|
162
|
+
*
|
|
163
|
+
* @returns A new TriggerSchedule instance.
|
|
164
|
+
*/
|
|
165
|
+
static weekly() {
|
|
166
|
+
return TriggerSchedule.cron({ minute: '0', hour: '0', weekDay: 'SUN' });
|
|
167
|
+
}
|
|
63
168
|
/**
|
|
64
169
|
* @param expressionString The expression string for the schedule.
|
|
65
170
|
*/
|
|
@@ -68,4 +173,98 @@ class TriggerSchedule {
|
|
|
68
173
|
}
|
|
69
174
|
}
|
|
70
175
|
exports.TriggerSchedule = TriggerSchedule;
|
|
71
|
-
|
|
176
|
+
/**
|
|
177
|
+
* A condition that determines when a conditional trigger fires.
|
|
178
|
+
*
|
|
179
|
+
* A condition watches exactly one target in exactly one state: use
|
|
180
|
+
* {@link Condition.job} to watch a job or {@link Condition.crawler} to watch a
|
|
181
|
+
* crawler. Because the state is a required argument of each factory, a condition
|
|
182
|
+
* can never reference a target without its state, or both a job and a crawler.
|
|
183
|
+
*/
|
|
184
|
+
class Condition {
|
|
185
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Condition", version: "2.269.0-alpha.0" };
|
|
186
|
+
/**
|
|
187
|
+
* Create a condition on the state of a job.
|
|
188
|
+
*
|
|
189
|
+
* @param job the job to watch.
|
|
190
|
+
* @param state the job state that satisfies the condition.
|
|
191
|
+
* @param options additional options for the condition.
|
|
192
|
+
*/
|
|
193
|
+
static job(job, state, options = {}) {
|
|
194
|
+
try {
|
|
195
|
+
jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_JobState(state);
|
|
196
|
+
jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_ConditionOptions(options);
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
200
|
+
Error.captureStackTrace(error, this.job);
|
|
201
|
+
}
|
|
202
|
+
throw error;
|
|
203
|
+
}
|
|
204
|
+
return new JobCondition(job, state, options);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Create a condition on the state of a crawler.
|
|
208
|
+
*
|
|
209
|
+
* @param crawler the crawler to watch.
|
|
210
|
+
* @param crawlState the crawler state that satisfies the condition.
|
|
211
|
+
* @param options additional options for the condition.
|
|
212
|
+
*/
|
|
213
|
+
static crawler(crawler, crawlState, options = {}) {
|
|
214
|
+
try {
|
|
215
|
+
jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_CrawlerState(crawlState);
|
|
216
|
+
jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_ConditionOptions(options);
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
220
|
+
Error.captureStackTrace(error, this.crawler);
|
|
221
|
+
}
|
|
222
|
+
throw error;
|
|
223
|
+
}
|
|
224
|
+
return new CrawlerCondition(crawler, crawlState, options);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
exports.Condition = Condition;
|
|
228
|
+
/**
|
|
229
|
+
* A condition on the state of a job.
|
|
230
|
+
*/
|
|
231
|
+
class JobCondition extends Condition {
|
|
232
|
+
job;
|
|
233
|
+
state;
|
|
234
|
+
options;
|
|
235
|
+
constructor(job, state, options) {
|
|
236
|
+
super();
|
|
237
|
+
this.job = job;
|
|
238
|
+
this.state = state;
|
|
239
|
+
this.options = options;
|
|
240
|
+
}
|
|
241
|
+
_render() {
|
|
242
|
+
return {
|
|
243
|
+
logicalOperator: this.options.logicalOperator ?? constants_1.ConditionLogicalOperator.EQUALS,
|
|
244
|
+
jobName: this.job.jobRef.jobName,
|
|
245
|
+
state: this.state,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* A condition on the state of a crawler.
|
|
251
|
+
*/
|
|
252
|
+
class CrawlerCondition extends Condition {
|
|
253
|
+
crawler;
|
|
254
|
+
crawlState;
|
|
255
|
+
options;
|
|
256
|
+
constructor(crawler, crawlState, options) {
|
|
257
|
+
super();
|
|
258
|
+
this.crawler = crawler;
|
|
259
|
+
this.crawlState = crawlState;
|
|
260
|
+
this.options = options;
|
|
261
|
+
}
|
|
262
|
+
_render() {
|
|
263
|
+
return {
|
|
264
|
+
logicalOperator: this.options.logicalOperator ?? constants_1.ConditionLogicalOperator.EQUALS,
|
|
265
|
+
crawlerName: this.crawler.crawlerRef.crawlerName,
|
|
266
|
+
crawlState: this.crawlState,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlci1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidHJpZ2dlci1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0RBQWlEO0FBR2pELDRDQUF3RDtBQXdEeEQ7Ozs7OztHQU1HO0FBQ0gsTUFBc0IsTUFBTTs7SUFDMUI7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQVksRUFBRSxVQUE0QixFQUFFOzs7Ozs7Ozs7O1FBQzVELE9BQU8sSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3BDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQW9CLEVBQUUsVUFBZ0MsRUFBRTs7Ozs7Ozs7OztRQUM1RSxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztLQUM1Qzs7QUFuQkgsd0JBMkJDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFNBQVUsU0FBUSxNQUFNO0lBQ0M7SUFBK0I7SUFBNUQsWUFBNkIsR0FBWSxFQUFtQixPQUF5QjtRQUNuRixLQUFLLEVBQUUsQ0FBQztRQURtQixRQUFHLEdBQUgsR0FBRyxDQUFTO1FBQW1CLFlBQU8sR0FBUCxPQUFPLENBQWtCO0tBRXBGO0lBRU0sT0FBTztRQUNaLE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTztZQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUU7WUFDMUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSx5QkFBeUI7U0FDckYsQ0FBQztLQUNIO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0s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LFVBQXdCLEVBQ3hCLE9BQXlCO1FBRTFDLEtBQUssRUFBRSxDQUFDO1FBSlMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFjO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQWtCO0tBRzNDO0lBRU0sT0FBTztRQUNaLE9BQU87WUFDTCxlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLElBQUksb0NBQXdCLENBQUMsTUFBTTtZQUNoRixXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVztZQUNoRCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQztLQUNIO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBldmVudHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgdHlwZSB7IENmblRyaWdnZXIsIElDcmF3bGVyUmVmLCBJSm9iUmVmIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdsdWUnO1xuaW1wb3J0IHR5cGUgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25kaXRpb25Mb2dpY2FsT3BlcmF0b3IgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBKb2JTdGF0ZSwgQ3Jhd2xlclN0YXRlLCBQcmVkaWNhdGVMb2dpY2FsIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgSVNlY3VyaXR5Q29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3NlY3VyaXR5LWNvbmZpZ3VyYXRpb24nO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBleGVjdXRpb24gb2YgYSBjcmF3bGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyYXdsZXJBY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhcmd1bWVudHMgdXNlZCB3aGVuIHRoaXMgdHJpZ2dlciBmaXJlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byB0aGUgam9iXG4gICAqL1xuICByZWFkb25seSBhcmd1bWVudHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgcnVuIHRpbWVvdXQuIFRoaXMgaXMgdGhlIG1heGltdW0gdGltZSB0aGF0IGEgcnVuIGNhbiBjb25zdW1lIHJlc291cmNlcyBiZWZvcmUgaXQgaXMgdGVybWluYXRlZCBhbmQgZW50ZXJzIFRJTUVPVVQgc3RhdHVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IHRpbWVvdXQgdmFsdWUgc2V0IGluIHRoZSBqb2IgZGVmaW5pdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGBTZWN1cml0eUNvbmZpZ3VyYXRpb25gIHRvIGJlIHVzZWQgd2l0aCB0aGlzIGFjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzZWN1cml0eSBjb25maWd1cmF0aW9uIGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5Q29uZmlndXJhdGlvbj86IElTZWN1cml0eUNvbmZpZ3VyYXRpb247XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGV4ZWN1dGlvbiBvZiBhIGpvYi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2JBY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhcmd1bWVudHMgdXNlZCB3aGVuIHRoaXMgdHJpZ2dlciBmaXJlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byB0aGUgam9iXG4gICAqL1xuICByZWFkb25seSBhcmd1bWVudHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgcnVuIHRpbWVvdXQuIFRoaXMgaXMgdGhlIG1heGltdW0gdGltZSB0aGF0IGEgcnVuIGNhbiBjb25zdW1lIHJlc291cmNlcyBiZWZvcmUgaXQgaXMgdGVybWluYXRlZCBhbmQgZW50ZXJzIFRJTUVPVVQgc3RhdHVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IHRpbWVvdXQgdmFsdWUgc2V0IGluIHRoZSBqb2IgZGVmaW5pdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGBTZWN1cml0eUNvbmZpZ3VyYXRpb25gIHRvIGJlIHVzZWQgd2l0aCB0aGlzIGFjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzZWN1cml0eSBjb25maWd1cmF0aW9uIGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5Q29uZmlndXJhdGlvbj86IElTZWN1cml0eUNvbmZpZ3VyYXRpb247XG59XG5cbi8qKlxuICogQW4gYWN0aW9uIGluaXRpYXRlZCBieSBhIHRyaWdnZXIuXG4gKlxuICogQW4gYWN0aW9uIHJ1bnMgZXhhY3RseSBvbmUgdGFyZ2V0OiB1c2Uge0BsaW5rIEFjdGlvbi5qb2J9IHRvIHJ1biBhIGpvYiBvclxuICoge0BsaW5rIEFjdGlvbi5jcmF3bGVyfSB0byBydW4gYSBjcmF3bGVyLiBCZWNhdXNlIHRoZXNlIGFyZSBzZXBhcmF0ZSBmYWN0b3J5XG4gKiBtZXRob2RzLCBhbiBhY3Rpb24gY2FuIG5ldmVyIHRhcmdldCBib3RoIG9yIG5laXRoZXIuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBY3Rpb24ge1xuICAvKipcbiAgICogQ3JlYXRlIGFuIGFjdGlvbiB0aGF0IHJ1bnMgYSBqb2IuXG4gICAqXG4gICAqIEBwYXJhbSBqb2IgdGhlIGpvYiB0byBydW4gd2hlbiB0aGUgdHJpZ2dlciBmaXJlcy5cbiAgICogQHBhcmFtIG9wdGlvbnMgYWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgYWN0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBqb2Ioam9iOiBJSm9iUmVmLCBvcHRpb25zOiBKb2JBY3Rpb25PcHRpb25zID0ge30pOiBBY3Rpb24ge1xuICAgIHJldHVybiBuZXcgSm9iQWN0aW9uKGpvYiwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGFjdGlvbiB0aGF0IHJ1bnMgYSBjcmF3bGVyLlxuICAgKlxuICAgKiBAcGFyYW0gY3Jhd2xlciB0aGUgY3Jhd2xlciB0byBydW4gd2hlbiB0aGUgdHJpZ2dlciBmaXJlcy5cbiAgICogQHBhcmFtIG9wdGlvbnMgYWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgYWN0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjcmF3bGVyKGNyYXdsZXI6IElDcmF3bGVyUmVmLCBvcHRpb25zOiBDcmF3bGVyQWN0aW9uT3B0aW9ucyA9IHt9KTogQWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IENyYXdsZXJBY3Rpb24oY3Jhd2xlciwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoaXMgYWN0aW9uIHRvIGl0cyBDbG91ZEZvcm1hdGlvbiByZXByZXNlbnRhdGlvbi5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgX3JlbmRlcigpOiBDZm5UcmlnZ2VyLkFjdGlvblByb3BlcnR5O1xufVxuXG4vKipcbiAqIEFuIGFjdGlvbiB0aGF0IHJ1bnMgYSBqb2IuXG4gKi9cbmNsYXNzIEpvYkFjdGlvbiBleHRlbmRzIEFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgam9iOiBJSm9iUmVmLCBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEpvYkFjdGlvbk9wdGlvbnMpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuVHJpZ2dlci5BY3Rpb25Qcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGpvYk5hbWU6IHRoaXMuam9iLmpvYlJlZi5qb2JOYW1lLFxuICAgICAgYXJndW1lbnRzOiB0aGlzLm9wdGlvbnMuYXJndW1lbnRzLFxuICAgICAgdGltZW91dDogdGhpcy5vcHRpb25zLnRpbWVvdXQ/LnRvTWludXRlcygpLFxuICAgICAgc2VjdXJpdHlDb25maWd1cmF0aW9uOiB0aGlzLm9wdGlvbnMuc2VjdXJpdHlDb25maWd1cmF0aW9uPy5zZWN1cml0eUNvbmZpZ3VyYXRpb25OYW1lLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBhY3Rpb24gdGhhdCBydW5zIGEgY3Jhd2xlci5cbiAqL1xuY2xhc3MgQ3Jhd2xlckFjdGlvbiBleHRlbmRzIEFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY3Jhd2xlcjogSUNyYXdsZXJSZWYsIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQ3Jhd2xlckFjdGlvbk9wdGlvbnMpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuVHJpZ2dlci5BY3Rpb25Qcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNyYXdsZXJOYW1lOiB0aGlzLmNyYXdsZXIuY3Jhd2xlclJlZi5jcmF3bGVyTmFtZSxcbiAgICAgIGFyZ3VtZW50czogdGhpcy5vcHRpb25zLmFyZ3VtZW50cyxcbiAgICAgIHRpbWVvdXQ6IHRoaXMub3B0aW9ucy50aW1lb3V0Py50b01pbnV0ZXMoKSxcbiAgICAgIHNlY3VyaXR5Q29uZmlndXJhdGlvbjogdGhpcy5vcHRpb25zLnNlY3VyaXR5Q29uZmlndXJhdGlvbj8uc2VjdXJpdHlDb25maWd1cmF0aW9uTmFtZSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHRyaWdnZXIgc2NoZWR1bGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmlnZ2VyU2NoZWR1bGUge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBUcmlnZ2VyU2NoZWR1bGUgaW5zdGFuY2Ugd2l0aCBhIGNyb24gZXhwcmVzc2lvbi5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGNyb24gb3B0aW9ucyBmb3IgdGhlIHNjaGVkdWxlLlxuICAgKiBAcmV0dXJucyBBIG5ldyBUcmlnZ2VyU2NoZWR1bGUgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNyb24ob3B0aW9uczogZXZlbnRzLkNyb25PcHRpb25zKTogVHJpZ2dlclNjaGVkdWxlIHtcbiAgICByZXR1cm4gbmV3IFRyaWdnZXJTY2hlZHVsZShldmVudHMuU2NoZWR1bGUuY3JvbihvcHRpb25zKS5leHByZXNzaW9uU3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFRyaWdnZXJTY2hlZHVsZSBpbnN0YW5jZSB3aXRoIGEgY3VzdG9tIGV4cHJlc3Npb24uXG4gICAqXG4gICAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBjdXN0b20gZXhwcmVzc2lvbiBmb3IgdGhlIHNjaGVkdWxlLlxuICAgKiBAcmV0dXJucyBBIG5ldyBUcmlnZ2VyU2NoZWR1bGUgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV4cHJlc3Npb24oZXhwcmVzc2lvbjogc3RyaW5nKTogVHJpZ2dlclNjaGVkdWxlIHtcbiAgICByZXR1cm4gbmV3IFRyaWdnZXJTY2hlZHVsZShleHByZXNzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc2NoZWR1bGUgdGhhdCBmaXJlcyBvbmNlIGEgZGF5LCBhdCBtaWRuaWdodCBVVEMuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgbmV3IFRyaWdnZXJTY2hlZHVsZSBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGFpbHkoKTogVHJpZ2dlclNjaGVkdWxlIHtcbiAgICByZXR1cm4gVHJpZ2dlclNjaGVkdWxlLmNyb24oeyBtaW51dGU6ICcwJywgaG91cjogJzAnIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzY2hlZHVsZSB0aGF0IGZpcmVzIG9uY2UgYSB3ZWVrLCBhdCBtaWRuaWdodCBVVEMgb24gU3VuZGF5LlxuICAgKlxuICAgKiBAcmV0dXJucyBBIG5ldyBUcmlnZ2VyU2NoZWR1bGUgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdlZWtseSgpOiBUcmlnZ2VyU2NoZWR1bGUge1xuICAgIHJldHVybiBUcmlnZ2VyU2NoZWR1bGUuY3Jvbih7IG1pbnV0ZTogJzAnLCBob3VyOiAnMCcsIHdlZWtEYXk6ICdTVU4nIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBleHByZXNzaW9uU3RyaW5nIFRoZSBleHByZXNzaW9uIHN0cmluZyBmb3IgdGhlIHNjaGVkdWxlLlxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZXhwcmVzc2lvblN0cmluZzogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0cmlnZ2VyIHByZWRpY2F0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWNhdGUge1xuICAvKipcbiAgICogVGhlIGxvZ2ljYWwgb3BlcmF0b3IgdG8gYmUgYXBwbGllZCB0byB0aGUgY29uZGl0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBQcmVkaWNhdGVMb2dpY2FsLkFORCBpZiBtdWx0aXBsZSBjb25kaXRpb25zIGFyZSBwcm92aWRlZCwgbm8gbG9naWNhbCBvcGVyYXRvciBpZiBvbmx5IG9uZSBjb25kaXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGxvZ2ljYWw/OiBQcmVkaWNhdGVMb2dpY2FsO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgdGhlIGNvbmRpdGlvbnMgdGhhdCBkZXRlcm1pbmUgd2hlbiB0aGUgdHJpZ2dlciB3aWxsIGZpcmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29uZGl0aW9ucyBhcmUgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbnM/OiBDb25kaXRpb25bXTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIHNoYXJlZCBieSBhbGwgdHJpZ2dlciBjb25kaXRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmRpdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGxvZ2ljYWwgb3BlcmF0b3IgZm9yIHRoZSBjb25kaXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IENvbmRpdGlvbkxvZ2ljYWxPcGVyYXRvci5FUVVBTFNcbiAgICovXG4gIHJlYWRvbmx5IGxvZ2ljYWxPcGVyYXRvcj86IENvbmRpdGlvbkxvZ2ljYWxPcGVyYXRvcjtcbn1cblxuLyoqXG4gKiBBIGNvbmRpdGlvbiB0aGF0IGRldGVybWluZXMgd2hlbiBhIGNvbmRpdGlvbmFsIHRyaWdnZXIgZmlyZXMuXG4gKlxuICogQSBjb25kaXRpb24gd2F0Y2hlcyBleGFjdGx5IG9uZSB0YXJnZXQgaW4gZXhhY3RseSBvbmUgc3RhdGU6IHVzZVxuICoge0BsaW5rIENvbmRpdGlvbi5qb2J9IHRvIHdhdGNoIGEgam9iIG9yIHtAbGluayBDb25kaXRpb24uY3Jhd2xlcn0gdG8gd2F0Y2ggYVxuICogY3Jhd2xlci4gQmVjYXVzZSB0aGUgc3RhdGUgaXMgYSByZXF1aXJlZCBhcmd1bWVudCBvZiBlYWNoIGZhY3RvcnksIGEgY29uZGl0aW9uXG4gKiBjYW4gbmV2ZXIgcmVmZXJlbmNlIGEgdGFyZ2V0IHdpdGhvdXQgaXRzIHN0YXRlLCBvciBib3RoIGEgam9iIGFuZCBhIGNyYXdsZXIuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb25kaXRpb24ge1xuICAvKipcbiAgICogQ3JlYXRlIGEgY29uZGl0aW9uIG9uIHRoZSBzdGF0ZSBvZiBhIGpvYi5cbiAgICpcbiAgICogQHBhcmFtIGpvYiB0aGUgam9iIHRvIHdhdGNoLlxuICAgKiBAcGFyYW0gc3RhdGUgdGhlIGpvYiBzdGF0ZSB0aGF0IHNhdGlzZmllcyB0aGUgY29uZGl0aW9uLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSBjb25kaXRpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGpvYihqb2I6IElKb2JSZWYsIHN0YXRlOiBKb2JTdGF0ZSwgb3B0aW9uczogQ29uZGl0aW9uT3B0aW9ucyA9IHt9KTogQ29uZGl0aW9uIHtcbiAgICByZXR1cm4gbmV3IEpvYkNvbmRpdGlvbihqb2IsIHN0YXRlLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBjb25kaXRpb24gb24gdGhlIHN0YXRlIG9mIGEgY3Jhd2xlci5cbiAgICpcbiAgICogQHBhcmFtIGNyYXdsZXIgdGhlIGNyYXdsZXIgdG8gd2F0Y2guXG4gICAqIEBwYXJhbSBjcmF3bFN0YXRlIHRoZSBjcmF3bGVyIHN0YXRlIHRoYXQgc2F0aXNmaWVzIHRoZSBjb25kaXRpb24uXG4gICAqIEBwYXJhbSBvcHRpb25zIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIGNvbmRpdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY3Jhd2xlcihjcmF3bGVyOiBJQ3Jhd2xlclJlZiwgY3Jhd2xTdGF0ZTogQ3Jhd2xlclN0YXRlLCBvcHRpb25zOiBDb25kaXRpb25PcHRpb25zID0ge30pOiBDb25kaXRpb24ge1xuICAgIHJldHVybiBuZXcgQ3Jhd2xlckNvbmRpdGlvbihjcmF3bGVyLCBjcmF3bFN0YXRlLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhpcyBjb25kaXRpb24gdG8gaXRzIENsb3VkRm9ybWF0aW9uIHJlcHJlc2VudGF0aW9uLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBfcmVuZGVyKCk6IENmblRyaWdnZXIuQ29uZGl0aW9uUHJvcGVydHk7XG59XG5cbi8qKlxuICogQSBjb25kaXRpb24gb24gdGhlIHN0YXRlIG9mIGEgam9iLlxuICovXG5jbGFzcyBKb2JDb25kaXRpb24gZXh0ZW5kcyBDb25kaXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGpvYjogSUpvYlJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlOiBKb2JTdGF0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IENvbmRpdGlvbk9wdGlvbnMsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgX3JlbmRlcigpOiBDZm5UcmlnZ2VyLkNvbmRpdGlvblByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naWNhbE9wZXJhdG9yOiB0aGlzLm9wdGlvbnMubG9naWNhbE9wZXJhdG9yID8/IENvbmRpdGlvbkxvZ2ljYWxPcGVyYXRvci5FUVVBTFMsXG4gICAgICBqb2JOYW1lOiB0aGlzLmpvYi5qb2JSZWYuam9iTmFtZSxcbiAgICAgIHN0YXRlOiB0aGlzLnN0YXRlLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBIGNvbmRpdGlvbiBvbiB0aGUgc3RhdGUgb2YgYSBjcmF3bGVyLlxuICovXG5jbGFzcyBDcmF3bGVyQ29uZGl0aW9uIGV4dGVuZHMgQ29uZGl0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjcmF3bGVyOiBJQ3Jhd2xlclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNyYXdsU3RhdGU6IENyYXdsZXJTdGF0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IENvbmRpdGlvbk9wdGlvbnMsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgX3JlbmRlcigpOiBDZm5UcmlnZ2VyLkNvbmRpdGlvblByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naWNhbE9wZXJhdG9yOiB0aGlzLm9wdGlvbnMubG9naWNhbE9wZXJhdG9yID8/IENvbmRpdGlvbkxvZ2ljYWxPcGVyYXRvci5FUVVBTFMsXG4gICAgICBjcmF3bGVyTmFtZTogdGhpcy5jcmF3bGVyLmNyYXdsZXJSZWYuY3Jhd2xlck5hbWUsXG4gICAgICBjcmF3bFN0YXRlOiB0aGlzLmNyYXdsU3RhdGUsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgZXZlbnQgdHJpZ2dlciBiYXRjaCBjb25kaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRCYXRjaGluZ0NvbmRpdGlvbiB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZXZlbnRzIHRoYXQgbXVzdCBiZSByZWNlaXZlZCBmcm9tIEFtYXpvbiBFdmVudEJyaWRnZSBiZWZvcmUgRXZlbnRCcmlkZ2UgZXZlbnQgdHJpZ2dlciBmaXJlcy5cbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoU2l6ZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaW5kb3cgb2YgdGltZSBpbiBzZWNvbmRzIGFmdGVyIHdoaWNoIEV2ZW50QnJpZGdlIGV2ZW50IHRyaWdnZXIgZmlyZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gOTAwIHNlY29uZHNcbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoV2luZG93PzogY2RrLkR1cmF0aW9uO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIGEgR2x1ZSBUcmlnZ2VyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJpZ2dlck9wdGlvbnMge1xuICAvKipcbiAgICogQSBuYW1lIGZvciB0aGUgdHJpZ2dlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBuYW1lIGlzIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGRlc2NyaXB0aW9uIGZvciB0aGUgdHJpZ2dlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhY3Rpb25zIGluaXRpYXRlZCBieSB0aGlzIHRyaWdnZXIuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25zOiBBY3Rpb25bXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyBhbiBvbi1kZW1hbmQgR2x1ZSBUcmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uRGVtYW5kVHJpZ2dlck9wdGlvbnMgZXh0ZW5kcyBUcmlnZ2VyT3B0aW9ucyB7fVxuXG4vKipcbiAqIEJhc2Ugb3B0aW9ucyBmb3IgdHJpZ2dlcnMgdGhhdCBjYW4gYmUgc3RhcnRlZCB3aGVuIHRoZXkgYXJlIGNyZWF0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhcnRhYmxlVHJpZ2dlck9wdGlvbnMgZXh0ZW5kcyBUcmlnZ2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHN0YXJ0IHRoZSB0cmlnZ2VyIG9uIGNyZWF0aW9uIG9yIG5vdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhcnRPbkNyZWF0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyBhIHNjaGVkdWxlZCBHbHVlIFRyaWdnZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVkVHJpZ2dlck9wdGlvbnMgZXh0ZW5kcyBTdGFydGFibGVUcmlnZ2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgc2NoZWR1bGUgb24gd2hpY2ggdGhpcyB0cmlnZ2VyIGZpcmVzLlxuICAgKlxuICAgKiBCdWlsZCBvbmUgd2l0aCB7QGxpbmsgVHJpZ2dlclNjaGVkdWxlLmRhaWx5fSwge0BsaW5rIFRyaWdnZXJTY2hlZHVsZS53ZWVrbHl9LFxuICAgKiB7QGxpbmsgVHJpZ2dlclNjaGVkdWxlLmNyb259LCBvciB7QGxpbmsgVHJpZ2dlclNjaGVkdWxlLmV4cHJlc3Npb259LlxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU6IFRyaWdnZXJTY2hlZHVsZTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyBhbiBFdmVudCBCcmlkZ2UgYmFzZWQgR2x1ZSBUcmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50VHJpZ2dlck9wdGlvbnMgZXh0ZW5kcyBUcmlnZ2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBCYXRjaCBjb25kaXRpb24gZm9yIHRoZSB0cmlnZ2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGJhdGNoIGNvbmRpdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCYXRjaGluZ0NvbmRpdGlvbj86IEV2ZW50QmF0Y2hpbmdDb25kaXRpb247XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY29uZmlndXJpbmcgYSBDb25kaXRpb24gKFByZWRpY2F0ZSkgYmFzZWQgR2x1ZSBUcmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmRpdGlvbmFsVHJpZ2dlck9wdGlvbnMgZXh0ZW5kcyBTdGFydGFibGVUcmlnZ2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcHJlZGljYXRlIGZvciB0aGUgdHJpZ2dlci5cbiAgICovXG4gIHJlYWRvbmx5IHByZWRpY2F0ZTogUHJlZGljYXRlO1xufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ITriggerRef } from 'aws-cdk-lib/aws-glue';
|
|
2
2
|
import * as cdk from 'aws-cdk-lib/core';
|
|
3
3
|
import type * as constructs from 'constructs';
|
|
4
|
-
import type { OnDemandTriggerOptions,
|
|
4
|
+
import type { OnDemandTriggerOptions, ScheduledTriggerOptions, EventTriggerOptions, ConditionalTriggerOptions } from './trigger-options';
|
|
5
5
|
/**
|
|
6
6
|
* The base interface for Glue Workflow
|
|
7
7
|
*
|
|
@@ -20,21 +20,29 @@ export interface IWorkflow extends cdk.IResource {
|
|
|
20
20
|
*/
|
|
21
21
|
readonly workflowArn: string;
|
|
22
22
|
/**
|
|
23
|
-
* Add an on-demand trigger to the workflow
|
|
23
|
+
* Add an on-demand trigger to the workflow.
|
|
24
|
+
*
|
|
25
|
+
* @returns a reference to the created trigger.
|
|
24
26
|
*/
|
|
25
|
-
addOnDemandTrigger(id: string, options: OnDemandTriggerOptions):
|
|
27
|
+
addOnDemandTrigger(id: string, options: OnDemandTriggerOptions): ITriggerRef;
|
|
26
28
|
/**
|
|
27
|
-
* Add
|
|
29
|
+
* Add a scheduled trigger to the workflow.
|
|
30
|
+
*
|
|
31
|
+
* @returns a reference to the created trigger.
|
|
28
32
|
*/
|
|
29
|
-
|
|
33
|
+
addScheduledTrigger(id: string, options: ScheduledTriggerOptions): ITriggerRef;
|
|
30
34
|
/**
|
|
31
|
-
* Add an
|
|
35
|
+
* Add an EventBridge event-based trigger to the workflow.
|
|
36
|
+
*
|
|
37
|
+
* @returns a reference to the created trigger.
|
|
32
38
|
*/
|
|
33
|
-
|
|
39
|
+
addEventTrigger(id: string, options: EventTriggerOptions): ITriggerRef;
|
|
34
40
|
/**
|
|
35
|
-
* Add
|
|
41
|
+
* Add a conditional (predicate-based) trigger to the workflow.
|
|
42
|
+
*
|
|
43
|
+
* @returns a reference to the created trigger.
|
|
36
44
|
*/
|
|
37
|
-
|
|
45
|
+
addConditionalTrigger(id: string, options: ConditionalTriggerOptions): ITriggerRef;
|
|
38
46
|
}
|
|
39
47
|
/**
|
|
40
48
|
* Properties for importing a Workflow using its attributes
|
|
@@ -99,57 +107,33 @@ export declare abstract class WorkflowBase extends cdk.Resource implements IWork
|
|
|
99
107
|
*
|
|
100
108
|
* @param id The id of the trigger.
|
|
101
109
|
* @param options Additional options for the trigger.
|
|
102
|
-
* @
|
|
103
|
-
* @returns The created CfnTrigger resource.
|
|
104
|
-
*/
|
|
105
|
-
addOnDemandTrigger(id: string, options: OnDemandTriggerOptions): CfnTrigger;
|
|
106
|
-
/**
|
|
107
|
-
* Add a daily-scheduled trigger to the workflow.
|
|
108
|
-
*
|
|
109
|
-
* @param id The id of the trigger.
|
|
110
|
-
* @param options Additional options for the trigger.
|
|
111
|
-
* @throws If both job and crawler are provided, or if neither job nor crawler is provided.
|
|
112
|
-
* @returns The created CfnTrigger resource.
|
|
113
|
-
*/
|
|
114
|
-
addDailyScheduledTrigger(id: string, options: DailyScheduleTriggerOptions): CfnTrigger;
|
|
115
|
-
/**
|
|
116
|
-
* Add a weekly-scheduled trigger to the workflow.
|
|
117
|
-
*
|
|
118
|
-
* @param id The id of the trigger.
|
|
119
|
-
* @param options Additional options for the trigger.
|
|
120
|
-
* @throws If both job and crawler are provided, or if neither job nor crawler is provided.
|
|
121
|
-
* @returns The created CfnTrigger resource.
|
|
110
|
+
* @returns a reference to the created trigger.
|
|
122
111
|
*/
|
|
123
|
-
|
|
112
|
+
addOnDemandTrigger(id: string, options: OnDemandTriggerOptions): ITriggerRef;
|
|
124
113
|
/**
|
|
125
|
-
* Add a
|
|
114
|
+
* Add a scheduled trigger to the workflow.
|
|
126
115
|
*
|
|
127
116
|
* @param id The id of the trigger.
|
|
128
|
-
* @param options Additional options for the trigger.
|
|
129
|
-
* @
|
|
130
|
-
* @returns The created CfnTrigger resource.
|
|
117
|
+
* @param options Additional options for the trigger, including the schedule.
|
|
118
|
+
* @returns a reference to the created trigger.
|
|
131
119
|
*/
|
|
132
|
-
|
|
120
|
+
addScheduledTrigger(id: string, options: ScheduledTriggerOptions): ITriggerRef;
|
|
133
121
|
/**
|
|
134
|
-
* Add an
|
|
122
|
+
* Add an EventBridge event-based trigger to the workflow.
|
|
135
123
|
*
|
|
136
124
|
* @param id The id of the trigger.
|
|
137
125
|
* @param options Additional options for the trigger.
|
|
138
|
-
* @
|
|
139
|
-
* @returns The created CfnTrigger resource.
|
|
126
|
+
* @returns a reference to the created trigger.
|
|
140
127
|
*/
|
|
141
|
-
|
|
128
|
+
addEventTrigger(id: string, options: EventTriggerOptions): ITriggerRef;
|
|
142
129
|
/**
|
|
143
|
-
* Add a
|
|
130
|
+
* Add a conditional (predicate-based) trigger to the workflow.
|
|
144
131
|
*
|
|
145
132
|
* @param id The id of the trigger.
|
|
146
133
|
* @param options Additional options for the trigger.
|
|
147
|
-
* @
|
|
148
|
-
* @throws If a job is provided without a job state, or if a crawler is provided without a crawler state for any condition.
|
|
149
|
-
* @returns The created CfnTrigger resource.
|
|
134
|
+
* @returns a reference to the created trigger.
|
|
150
135
|
*/
|
|
151
|
-
addConditionalTrigger(id: string, options: ConditionalTriggerOptions):
|
|
152
|
-
private renderAction;
|
|
136
|
+
addConditionalTrigger(id: string, options: ConditionalTriggerOptions): ITriggerRef;
|
|
153
137
|
private renderPredicate;
|
|
154
138
|
private renderEventBatchingCondition;
|
|
155
139
|
protected buildWorkflowArn(scope: constructs.Construct, workflowName: string): string;
|
|
@@ -180,7 +164,7 @@ export declare abstract class WorkflowBase extends cdk.Resource implements IWork
|
|
|
180
164
|
*
|
|
181
165
|
* // Add an on-demand trigger to the Workflow
|
|
182
166
|
* workflow.addOnDemandTrigger('OnDemandTrigger', {
|
|
183
|
-
* actions: [
|
|
167
|
+
* actions: [glue.Action.job(job)],
|
|
184
168
|
* });
|
|
185
169
|
* ```
|
|
186
170
|
*/
|