@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.
Files changed (46) hide show
  1. package/.jsii +1086 -878
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +1 -79
  4. package/README.md +101 -29
  5. package/adr/job-arguments.md +212 -0
  6. package/lib/catalog.js +3 -3
  7. package/lib/code.js +3 -3
  8. package/lib/connection.d.ts +44 -29
  9. package/lib/connection.js +66 -32
  10. package/lib/constants.d.ts +17 -0
  11. package/lib/constants.js +20 -2
  12. package/lib/data-format.js +5 -5
  13. package/lib/data-quality-ruleset.js +3 -3
  14. package/lib/database.js +1 -1
  15. package/lib/external-table.js +1 -1
  16. package/lib/jobs/job.d.ts +90 -9
  17. package/lib/jobs/job.js +115 -38
  18. package/lib/jobs/pyspark-etl-job.d.ts +1 -3
  19. package/lib/jobs/pyspark-etl-job.js +9 -14
  20. package/lib/jobs/pyspark-flex-etl-job.d.ts +1 -3
  21. package/lib/jobs/pyspark-flex-etl-job.js +9 -14
  22. package/lib/jobs/pyspark-streaming-job.d.ts +1 -3
  23. package/lib/jobs/pyspark-streaming-job.js +9 -14
  24. package/lib/jobs/python-shell-job.d.ts +20 -7
  25. package/lib/jobs/python-shell-job.js +30 -33
  26. package/lib/jobs/ray-job.js +8 -13
  27. package/lib/jobs/scala-spark-etl-job.d.ts +1 -3
  28. package/lib/jobs/scala-spark-etl-job.js +10 -14
  29. package/lib/jobs/scala-spark-flex-etl-job.d.ts +1 -3
  30. package/lib/jobs/scala-spark-flex-etl-job.js +10 -14
  31. package/lib/jobs/scala-spark-streaming-job.d.ts +1 -3
  32. package/lib/jobs/scala-spark-streaming-job.js +10 -14
  33. package/lib/jobs/spark-job.d.ts +9 -7
  34. package/lib/jobs/spark-job.js +23 -32
  35. package/lib/partition-projection.d.ts +36 -47
  36. package/lib/partition-projection.js +22 -40
  37. package/lib/s3-table.js +4 -4
  38. package/lib/schema.js +2 -2
  39. package/lib/security-configuration.js +4 -4
  40. package/lib/storage-parameter.js +1 -1
  41. package/lib/table-base.js +1 -1
  42. package/lib/triggers/trigger-options.d.ts +102 -42
  43. package/lib/triggers/trigger-options.js +202 -3
  44. package/lib/triggers/workflow.d.ts +31 -47
  45. package/lib/triggers/workflow.js +27 -142
  46. 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.268.0-alpha.0" };
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlci1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidHJpZ2dlci1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrREFBaUQ7QUErQ2pEOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBd0JVOztJQXZCcEM7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQTJCO1FBQzVDLE9BQU8sSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQUM1RTtJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFrQjtRQUN6QyxPQUFPLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3hDO0lBRUQ7O09BRUc7SUFDSCxZQUFvQyxnQkFBd0I7UUFBeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO0tBQUk7O0FBeEJsRSwwQ0F5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBldmVudHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgdHlwZSB7IENmbkNyYXdsZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2x1ZSc7XG5pbXBvcnQgdHlwZSAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB0eXBlIHsgSm9iU3RhdGUsIENyYXdsZXJTdGF0ZSwgQ29uZGl0aW9uTG9naWNhbE9wZXJhdG9yLCBQcmVkaWNhdGVMb2dpY2FsIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgSUpvYiB9IGZyb20gJy4uL2pvYnMvam9iJzsgLy8gVXNlIElKb2IgaW50ZXJmYWNlIGluc3RlYWQgb2YgY29uY3JldGUgY2xhc3NcbmltcG9ydCB0eXBlIHsgSVNlY3VyaXR5Q29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3NlY3VyaXR5LWNvbmZpZ3VyYXRpb24nO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0cmlnZ2VyIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xuICAvKipcbiAgICogVGhlIGpvYiB0byBiZSBleGVjdXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBqb2IgaXMgZXhlY3V0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGpvYj86IElKb2I7XG5cbiAgLyoqXG4gICAqIFRoZSBqb2IgYXJndW1lbnRzIHVzZWQgd2hlbiB0aGlzIHRyaWdnZXIgZmlyZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIGpvYlxuICAgKi9cbiAgcmVhZG9ubHkgYXJndW1lbnRzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIGpvYiBydW4gdGltZW91dC4gVGhpcyBpcyB0aGUgbWF4aW11bSB0aW1lIHRoYXQgYSBqb2IgcnVuIGNhbiBjb25zdW1lIHJlc291cmNlcyBiZWZvcmUgaXQgaXMgdGVybWluYXRlZCBhbmQgZW50ZXJzIFRJTUVPVVQgc3RhdHVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IHRpbWVvdXQgdmFsdWUgc2V0IGluIHRoZSBqb2IgZGVmaW5pdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGBTZWN1cml0eUNvbmZpZ3VyYXRpb25gIHRvIGJlIHVzZWQgd2l0aCB0aGlzIGFjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzZWN1cml0eSBjb25maWd1cmF0aW9uIGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5Q29uZmlndXJhdGlvbj86IElTZWN1cml0eUNvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjcmF3bGVyIHRvIGJlIHVzZWQgd2l0aCB0aGlzIGFjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjcmF3bGVyIGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGNyYXdsZXI/OiBDZm5DcmF3bGVyO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0cmlnZ2VyIHNjaGVkdWxlLlxuICovXG5leHBvcnQgY2xhc3MgVHJpZ2dlclNjaGVkdWxlIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgVHJpZ2dlclNjaGVkdWxlIGluc3RhbmNlIHdpdGggYSBjcm9uIGV4cHJlc3Npb24uXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBjcm9uIG9wdGlvbnMgZm9yIHRoZSBzY2hlZHVsZS5cbiAgICogQHJldHVybnMgQSBuZXcgVHJpZ2dlclNjaGVkdWxlIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjcm9uKG9wdGlvbnM6IGV2ZW50cy5Dcm9uT3B0aW9ucyk6IFRyaWdnZXJTY2hlZHVsZSB7XG4gICAgcmV0dXJuIG5ldyBUcmlnZ2VyU2NoZWR1bGUoZXZlbnRzLlNjaGVkdWxlLmNyb24ob3B0aW9ucykuZXhwcmVzc2lvblN0cmluZyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBUcmlnZ2VyU2NoZWR1bGUgaW5zdGFuY2Ugd2l0aCBhIGN1c3RvbSBleHByZXNzaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gZXhwcmVzc2lvbiBUaGUgY3VzdG9tIGV4cHJlc3Npb24gZm9yIHRoZSBzY2hlZHVsZS5cbiAgICogQHJldHVybnMgQSBuZXcgVHJpZ2dlclNjaGVkdWxlIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBleHByZXNzaW9uKGV4cHJlc3Npb246IHN0cmluZyk6IFRyaWdnZXJTY2hlZHVsZSB7XG4gICAgcmV0dXJuIG5ldyBUcmlnZ2VyU2NoZWR1bGUoZXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGV4cHJlc3Npb25TdHJpbmcgVGhlIGV4cHJlc3Npb24gc3RyaW5nIGZvciB0aGUgc2NoZWR1bGUuXG4gICAqL1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBleHByZXNzaW9uU3RyaW5nOiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHRyaWdnZXIgcHJlZGljYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY2F0ZSB7XG4gIC8qKlxuICAgKiBUaGUgbG9naWNhbCBvcGVyYXRvciB0byBiZSBhcHBsaWVkIHRvIHRoZSBjb25kaXRpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFByZWRpY2F0ZUxvZ2ljYWwuQU5EIGlmIG11bHRpcGxlIGNvbmRpdGlvbnMgYXJlIHByb3ZpZGVkLCBubyBsb2dpY2FsIG9wZXJhdG9yIGlmIG9ubHkgb25lIGNvbmRpdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgbG9naWNhbD86IFByZWRpY2F0ZUxvZ2ljYWw7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiB0aGUgY29uZGl0aW9ucyB0aGF0IGRldGVybWluZSB3aGVuIHRoZSB0cmlnZ2VyIHdpbGwgZmlyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb25kaXRpb25zIGFyZSBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9ucz86IENvbmRpdGlvbltdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0cmlnZ2VyIGNvbmRpdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb24ge1xuICAvKipcbiAgICogVGhlIGxvZ2ljYWwgb3BlcmF0b3IgZm9yIHRoZSBjb25kaXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IENvbmRpdGlvbkxvZ2ljYWxPcGVyYXRvci5FUVVBTFNcbiAgICovXG4gIHJlYWRvbmx5IGxvZ2ljYWxPcGVyYXRvcj86IENvbmRpdGlvbkxvZ2ljYWxPcGVyYXRvcjtcblxuICAvKipcbiAgICogVGhlIGpvYiB0byB3aGljaCB0aGlzIGNvbmRpdGlvbiBhcHBsaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGpvYiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IGpvYj86IElKb2I7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25kaXRpb24gam9iIHN0YXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGpvYiBzdGF0ZSBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlPzogSm9iU3RhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjcmF3bGVyIHRvIHdoaWNoIHRoaXMgY29uZGl0aW9uIGFwcGxpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY3Jhd2xlciBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IGNyYXdsZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uZGl0aW9uIGNyYXdsZXIgc3RhdGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY3Jhd2xlciBzdGF0ZSBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IGNyYXdsU3RhdGU/OiBDcmF3bGVyU3RhdGU7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBldmVudCB0cmlnZ2VyIGJhdGNoIGNvbmRpdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudEJhdGNoaW5nQ29uZGl0aW9uIHtcbiAgLyoqXG4gICAqIE51bWJlciBvZiBldmVudHMgdGhhdCBtdXN0IGJlIHJlY2VpdmVkIGZyb20gQW1hem9uIEV2ZW50QnJpZGdlIGJlZm9yZSBFdmVudEJyaWRnZSBldmVudCB0cmlnZ2VyIGZpcmVzLlxuICAgKi9cbiAgcmVhZG9ubHkgYmF0Y2hTaXplOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdpbmRvdyBvZiB0aW1lIGluIHNlY29uZHMgYWZ0ZXIgd2hpY2ggRXZlbnRCcmlkZ2UgZXZlbnQgdHJpZ2dlciBmaXJlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSA5MDAgc2Vjb25kc1xuICAgKi9cbiAgcmVhZG9ubHkgYmF0Y2hXaW5kb3c/OiBjZGsuRHVyYXRpb247XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY29uZmlndXJpbmcgYSBHbHVlIFRyaWdnZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmlnZ2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5hbWUgaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSB0cmlnZ2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFjdGlvbnMgaW5pdGlhdGVkIGJ5IHRoaXMgdHJpZ2dlci5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvbnM6IEFjdGlvbltdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIGFuIG9uLWRlbWFuZCBHbHVlIFRyaWdnZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25EZW1hbmRUcmlnZ2VyT3B0aW9ucyBleHRlbmRzIFRyaWdnZXJPcHRpb25zIHt9XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY29uZmlndXJpbmcgYSBkYWlseS1zY2hlZHVsZWQgR2x1ZSBUcmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhaWx5U2NoZWR1bGVUcmlnZ2VyT3B0aW9ucyBleHRlbmRzIFRyaWdnZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc3RhcnQgdGhlIHRyaWdnZXIgb24gY3JlYXRpb24gb3Igbm90LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdGFydE9uQ3JlYXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIGEgd2Vla2x5LXNjaGVkdWxlZCBHbHVlIFRyaWdnZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2Vla2x5U2NoZWR1bGVUcmlnZ2VyT3B0aW9ucyBleHRlbmRzIERhaWx5U2NoZWR1bGVUcmlnZ2VyT3B0aW9ucyB7fVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIGEgY3VzdG9tLXNjaGVkdWxlZCBHbHVlIFRyaWdnZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tU2NoZWR1bGVkVHJpZ2dlck9wdGlvbnMgZXh0ZW5kcyBXZWVrbHlTY2hlZHVsZVRyaWdnZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gc2NoZWR1bGUgZm9yIHRoZSB0cmlnZ2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU6IFRyaWdnZXJTY2hlZHVsZTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyBhbiBFdmVudCBCcmlkZ2UgYmFzZWQgR2x1ZSBUcmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmeUV2ZW50VHJpZ2dlck9wdGlvbnMgZXh0ZW5kcyBUcmlnZ2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBCYXRjaCBjb25kaXRpb24gZm9yIHRoZSB0cmlnZ2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGJhdGNoIGNvbmRpdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCYXRjaGluZ0NvbmRpdGlvbj86IEV2ZW50QmF0Y2hpbmdDb25kaXRpb247XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY29uZmlndXJpbmcgYSBDb25kaXRpb24gKFByZWRpY2F0ZSkgYmFzZWQgR2x1ZSBUcmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmRpdGlvbmFsVHJpZ2dlck9wdGlvbnMgZXh0ZW5kcyBEYWlseVNjaGVkdWxlVHJpZ2dlck9wdGlvbnN7XG4gIC8qKlxuICAgKiBUaGUgcHJlZGljYXRlIGZvciB0aGUgdHJpZ2dlci5cbiAgICovXG4gIHJlYWRvbmx5IHByZWRpY2F0ZTogUHJlZGljYXRlO1xufVxuIl19
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 { CfnTrigger } from 'aws-cdk-lib/aws-glue';
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, WeeklyScheduleTriggerOptions, DailyScheduleTriggerOptions, CustomScheduledTriggerOptions, NotifyEventTriggerOptions, ConditionalTriggerOptions } from './trigger-options';
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): CfnTrigger;
27
+ addOnDemandTrigger(id: string, options: OnDemandTriggerOptions): ITriggerRef;
26
28
  /**
27
- * Add an daily-scheduled trigger to the workflow
29
+ * Add a scheduled trigger to the workflow.
30
+ *
31
+ * @returns a reference to the created trigger.
28
32
  */
29
- addDailyScheduledTrigger(id: string, options: DailyScheduleTriggerOptions): CfnTrigger;
33
+ addScheduledTrigger(id: string, options: ScheduledTriggerOptions): ITriggerRef;
30
34
  /**
31
- * Add an weekly-scheduled trigger to the workflow
35
+ * Add an EventBridge event-based trigger to the workflow.
36
+ *
37
+ * @returns a reference to the created trigger.
32
38
  */
33
- addWeeklyScheduledTrigger(id: string, options: WeeklyScheduleTriggerOptions): CfnTrigger;
39
+ addEventTrigger(id: string, options: EventTriggerOptions): ITriggerRef;
34
40
  /**
35
- * Add an custom-scheduled trigger to the workflow
41
+ * Add a conditional (predicate-based) trigger to the workflow.
42
+ *
43
+ * @returns a reference to the created trigger.
36
44
  */
37
- addCustomScheduledTrigger(id: string, options: CustomScheduledTriggerOptions): CfnTrigger;
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
- * @throws If both job and crawler are provided, or if neither job nor crawler is provided.
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
- addWeeklyScheduledTrigger(id: string, options: WeeklyScheduleTriggerOptions): CfnTrigger;
112
+ addOnDemandTrigger(id: string, options: OnDemandTriggerOptions): ITriggerRef;
124
113
  /**
125
- * Add a custom-scheduled trigger to the workflow.
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
- * @throws If both job and crawler are provided, or if neither job nor crawler is provided.
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
- addCustomScheduledTrigger(id: string, options: CustomScheduledTriggerOptions): CfnTrigger;
120
+ addScheduledTrigger(id: string, options: ScheduledTriggerOptions): ITriggerRef;
133
121
  /**
134
- * Add an Event Bridge based trigger to the workflow.
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
- * @throws If both job and crawler are provided, or if neither job nor crawler is provided.
139
- * @returns The created CfnTrigger resource.
126
+ * @returns a reference to the created trigger.
140
127
  */
141
- addNotifyEventTrigger(id: string, options: NotifyEventTriggerOptions): CfnTrigger;
128
+ addEventTrigger(id: string, options: EventTriggerOptions): ITriggerRef;
142
129
  /**
143
- * Add a Condition (Predicate) based trigger to the workflow.
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
- * @throws If both job and crawler are provided, or if neither job nor crawler is provided for any condition.
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): CfnTrigger;
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: [{ job: job }],
167
+ * actions: [glue.Action.job(job)],
184
168
  * });
185
169
  * ```
186
170
  */