@aws-cdk/aws-glue-alpha 2.268.0-alpha.0 → 2.270.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 +1820 -1612
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +1649 -10
  4. package/README.md +105 -35
  5. package/adr/job-arguments.md +212 -0
  6. package/lib/catalog.js +88 -4
  7. package/lib/code.js +59 -4
  8. package/lib/connection.d.ts +44 -29
  9. package/lib/connection.js +147 -31
  10. package/lib/constants.d.ts +17 -0
  11. package/lib/constants.js +20 -2
  12. package/lib/data-format.js +43 -6
  13. package/lib/data-quality-ruleset.js +60 -4
  14. package/lib/database.js +48 -2
  15. package/lib/external-table.js +48 -2
  16. package/lib/jobs/job.d.ts +90 -9
  17. package/lib/jobs/job.js +219 -38
  18. package/lib/jobs/pyspark-etl-job.d.ts +1 -3
  19. package/lib/jobs/pyspark-etl-job.js +28 -14
  20. package/lib/jobs/pyspark-flex-etl-job.d.ts +1 -3
  21. package/lib/jobs/pyspark-flex-etl-job.js +28 -14
  22. package/lib/jobs/pyspark-streaming-job.d.ts +1 -3
  23. package/lib/jobs/pyspark-streaming-job.js +28 -14
  24. package/lib/jobs/python-shell-job.d.ts +20 -7
  25. package/lib/jobs/python-shell-job.js +49 -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 +29 -14
  29. package/lib/jobs/scala-spark-flex-etl-job.d.ts +1 -3
  30. package/lib/jobs/scala-spark-flex-etl-job.js +29 -14
  31. package/lib/jobs/scala-spark-streaming-job.d.ts +1 -3
  32. package/lib/jobs/scala-spark-streaming-job.js +29 -14
  33. package/lib/jobs/spark-job.d.ts +9 -7
  34. package/lib/jobs/spark-job.js +26 -32
  35. package/lib/partition-projection.d.ts +36 -47
  36. package/lib/partition-projection.js +34 -40
  37. package/lib/s3-table.js +106 -5
  38. package/lib/schema.js +50 -3
  39. package/lib/security-configuration.js +60 -5
  40. package/lib/storage-parameter.js +91 -2
  41. package/lib/table-base.js +32 -2
  42. package/lib/triggers/trigger-options.d.ts +102 -42
  43. package/lib/triggers/trigger-options.js +242 -3
  44. package/lib/triggers/workflow.d.ts +31 -47
  45. package/lib/triggers/workflow.js +87 -142
  46. package/package.json +10 -10
@@ -77,7 +77,7 @@ let ExternalTable = (() => {
77
77
  ExternalTable = _classThis = _classDescriptor.value;
78
78
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
79
79
  }
80
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.ExternalTable", version: "2.268.0-alpha.0" };
80
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.ExternalTable", version: "2.270.0-alpha.0" };
81
81
  /** Uniquely identifies this class. */
82
82
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.ExternalTable';
83
83
  /**
@@ -93,6 +93,7 @@ let ExternalTable = (() => {
93
93
  constructor(scope, id, props) {
94
94
  super(scope, id, props);
95
95
  try {
96
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.ExternalTable", "");
96
97
  jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_ExternalTableProps(props);
97
98
  }
98
99
  catch (error) {
@@ -154,12 +155,30 @@ let ExternalTable = (() => {
154
155
  * Name of this table.
155
156
  */
156
157
  get tableName() {
158
+ try {
159
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.ExternalTable#tableName", "");
160
+ }
161
+ catch (error) {
162
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
163
+ Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "tableName").get);
164
+ }
165
+ throw error;
166
+ }
157
167
  return this.getResourceNameAttribute(this.resource.ref);
158
168
  }
159
169
  /**
160
170
  * ARN of this table.
161
171
  */
162
172
  get tableArn() {
173
+ try {
174
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.ExternalTable#tableArn", "");
175
+ }
176
+ catch (error) {
177
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
178
+ Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "tableArn").get);
179
+ }
180
+ throw error;
181
+ }
163
182
  return this.stack.formatArn({
164
183
  service: 'glue',
165
184
  resource: 'table',
@@ -173,6 +192,15 @@ let ExternalTable = (() => {
173
192
  * @param grantee the principal
174
193
  */
175
194
  grantRead(grantee) {
195
+ try {
196
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.ExternalTable#grantRead", "");
197
+ }
198
+ catch (error) {
199
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
200
+ Error.captureStackTrace(error, this.grantRead);
201
+ }
202
+ throw error;
203
+ }
176
204
  const ret = this.grant(grantee, readPermissions);
177
205
  return ret;
178
206
  }
@@ -183,6 +211,15 @@ let ExternalTable = (() => {
183
211
  * @param grantee the principal
184
212
  */
185
213
  grantWrite(grantee) {
214
+ try {
215
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.ExternalTable#grantWrite", "");
216
+ }
217
+ catch (error) {
218
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
219
+ Error.captureStackTrace(error, this.grantWrite);
220
+ }
221
+ throw error;
222
+ }
186
223
  const ret = this.grant(grantee, writePermissions);
187
224
  return ret;
188
225
  }
@@ -193,6 +230,15 @@ let ExternalTable = (() => {
193
230
  * @param grantee the principal
194
231
  */
195
232
  grantReadWrite(grantee) {
233
+ try {
234
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.ExternalTable#grantReadWrite", "");
235
+ }
236
+ catch (error) {
237
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
238
+ Error.captureStackTrace(error, this.grantReadWrite);
239
+ }
240
+ throw error;
241
+ }
196
242
  const ret = this.grant(grantee, [...readPermissions, ...writePermissions]);
197
243
  return ret;
198
244
  }
@@ -231,4 +277,4 @@ function renderColumns(columns) {
231
277
  };
232
278
  });
233
279
  }
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlcm5hbC10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBOEM7QUFDOUMsbURBQWdEO0FBRWhELDRFQUE0RTtBQUM1RSw4RUFBOEY7QUFDOUYsMEVBQTBFO0FBSzFFLDZDQUF5QztBQW9CekM7OztHQUdHO0lBRVUsYUFBYTs0QkFEekIsb0NBQWtCOzs7O3NCQUNnQixzQkFBUzs7Ozs7Ozs2QkFBakIsU0FBUSxXQUFTOzs7O3lDQWdGekMsaUNBQWM7d0NBUWQsaUNBQWM7cUNBZWQsSUFBQSxrQ0FBYyxHQUFFO3NDQVloQixJQUFBLGtDQUFjLEdBQUU7MENBWWhCLElBQUEsa0NBQWMsR0FBRTtZQTlDakIsa0xBQVcsU0FBUyw2REFFbkI7WUFNRCwrS0FBVyxRQUFRLDZEQU1sQjtZQVNELDhLQUFPLFNBQVMsNkRBR2Y7WUFTRCxpTEFBTyxVQUFVLDZEQUdoQjtZQVNELDZMQUFPLGNBQWMsNkRBR3BCO1lBbklILDZLQW9JQzs7Ozs7UUFuSUMsc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyx1Q0FBdUMsQ0FBQztRQUUvRjs7V0FFRztRQUNhLFVBQVUsR0FQZixtREFBYSxDQU9nQjtRQUV4Qzs7V0FFRztRQUNhLGdCQUFnQixDQUFvQjtRQUVqQyxhQUFhLENBQVc7UUFFbkMsUUFBUSxDQUFXO1FBRTNCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7WUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7Ozs7OzttREFuQmYsYUFBYTs7OztZQW9CdEIsbUNBQW1DO1lBQ25DLElBQUEsd0NBQW9CLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUs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LENBQUM7QUFFRixTQUFTLGFBQWEsQ0FBQyxPQUFrQjtJQUN2QyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMxQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzFCLE9BQU87WUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVztZQUM3QixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDeEIsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENmblRhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdsdWUnO1xuaW1wb3J0IHR5cGUgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBtZW1vaXplZEdldHRlciwgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSwgTWV0aG9kTWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSUNvbm5lY3Rpb24gfSBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHR5cGUgeyBDb2x1bW4gfSBmcm9tICcuL3NjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IFBhcnRpdGlvbkluZGV4LCBUYWJsZUJhc2VQcm9wcyB9IGZyb20gJy4vdGFibGUtYmFzZSc7XG5pbXBvcnQgeyBUYWJsZUJhc2UgfSBmcm9tICcuL3RhYmxlLWJhc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVybmFsVGFibGVQcm9wcyBleHRlbmRzIFRhYmxlQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBjb25uZWN0aW9uIHRoZSB0YWJsZSB3aWxsIHVzZSB3aGVuIHBlcmZvcm1pbmcgcmVhZHMgYW5kIHdyaXRlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBjb25uZWN0aW9uXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uOiBJQ29ubmVjdGlvbjtcblxuICAvKipcbiAgICogVGhlIGRhdGEgc291cmNlIGxvY2F0aW9uIG9mIHRoZSBnbHVlIHRhYmxlLCAoZS5nLiBgZGVmYXVsdF9kYl9wdWJsaWNfZXhhbXBsZWAgZm9yIFJlZHNoaWZ0KS5cbiAgICpcbiAgICogSWYgdGhpcyBwcm9wZXJ0eSBpcyBzZXQsIGl0IHdpbGwgb3ZlcnJpZGUgYm90aCBgYnVja2V0YCBhbmQgYHMzUHJlZml4YC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBvdXRzb3VyY2VkIGRhdGEgc291cmNlIGxvY2F0aW9uXG4gICAqL1xuICByZWFkb25seSBleHRlcm5hbERhdGFMb2NhdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgR2x1ZSB0YWJsZSB0aGF0IHRhcmdldHMgYW4gZXh0ZXJuYWwgZGF0YSBsb2NhdGlvbiAoZS5nLiBBIHRhYmxlIGluIGEgUmVkc2hpZnQgQ2x1c3RlcikuXG4gKiBAcmVzb3VyY2UgQVdTOjpHbHVlOjpUYWJsZVxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxUYWJsZSBleHRlbmRzIFRhYmxlQmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWdsdWUtYWxwaGEuRXh0ZXJuYWxUYWJsZSc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25uZWN0aW9uIGFzc29jaWF0ZWQgdG8gdGhpcyB0YWJsZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb246IElDb25uZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGlzIHRhYmxlJ3MgcGFydGl0aW9uIGluZGV4ZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGFydGl0aW9uSW5kZXhlcz86IFBhcnRpdGlvbkluZGV4W107XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRhYmxlUmVzb3VyY2U6IENmblRhYmxlO1xuXG4gIHByaXZhdGUgcmVzb3VyY2U6IENmblRhYmxlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFeHRlcm5hbFRhYmxlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBwcm9wcy5jb25uZWN0aW9uO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuVGFibGUodGhpcywgJ1RhYmxlJywge1xuICAgICAgY2F0YWxvZ0lkOiBwcm9wcy5kYXRhYmFzZS5jYXRhbG9nLmNhdGFsb2dJZCxcblxuICAgICAgZGF0YWJhc2VOYW1lOiBwcm9wcy5kYXRhYmFzZS5kYXRhYmFzZU5hbWUsXG5cbiAgICAgIHRhYmxlSW5wdXQ6IHtcbiAgICAgICAgbmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbiB8fCBgJHt0aGlzLnBoeXNpY2FsTmFtZX0gZ2VuZXJhdGVkIGJ5IENES2AsXG5cbiAgICAgICAgcGFydGl0aW9uS2V5czogcmVuZGVyQ29sdW1ucyhwcm9wcy5wYXJ0aXRpb25LZXlzKSxcblxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgJ2NsYXNzaWZpY2F0aW9uJzogcHJvcHMuZGF0YUZvcm1hdC5jbGFzc2lmaWNhdGlvblN0cmluZz8udmFsdWUsXG4gICAgICAgICAgJ3BhcnRpdGlvbl9maWx0ZXJpbmcuZW5hYmxlZCc6IHByb3BzLmVuYWJsZVBhcnRpdGlvbkZpbHRlcmluZyxcbiAgICAgICAgICAnY29ubmVjdGlvbk5hbWUnOiBwcm9wcy5jb25uZWN0aW9uLmNvbm5lY3Rpb25OYW1lLFxuICAgICAgICAgIC4uLnRoaXMucGFyYW1ldGVycyxcbiAgICAgICAgICAvLyBNYW5hZ2VkIGtleXMgYXJlIGVtaXR0ZWQgbGFzdCBzbyBmcmVlLWZvcm0gYHBhcmFtZXRlcnNgIGNhbm5vdFxuICAgICAgICAgIC8vIHNpbGVudGx5IG92ZXJyaWRlIHRoZW0uIENvbmZsaWN0cyBhcmUgcmVqZWN0ZWQgaW4gYFRhYmxlQmFzZWAuXG4gICAgICAgICAgJ2hhc19lbmNyeXB0ZWRfZGF0YSc6IHRoaXMuaGFzRW5jcnlwdGVkRGF0YSxcbiAgICAgICAgfSxcbiAgICAgICAgc3RvcmFnZURlc2NyaXB0b3I6IHtcbiAgICAgICAgICBsb2NhdGlvbjogcHJvcHMuZXh0ZXJuYWxEYXRhTG9jYXRpb24sXG4gICAgICAgICAgY29tcHJlc3NlZDogdGhpcy5jb21wcmVzc2VkLFxuICAgICAgICAgIHN0b3JlZEFzU3ViRGlyZWN0b3JpZXM6IHByb3BzLnN0b3JlZEFzU3ViRGlyZWN0b3JpZXMgPz8gZmFsc2UsXG4gICAgICAgICAgY29sdW1uczogcmVuZGVyQ29sdW1ucyhwcm9wcy5jb2x1bW5zKSxcbiAgICAgICAgICBpbnB1dEZvcm1hdDogcHJvcHMuZGF0YUZvcm1hdC5pbnB1dEZvcm1hdC5jbGFzc05hbWUsXG4gICAgICAgICAgb3V0cHV0Rm9ybWF0OiBwcm9wcy5kYXRhRm9ybWF0Lm91dHB1dEZvcm1hdC5jbGFzc05hbWUsXG4gICAgICAgICAgc2VyZGVJbmZvOiB7XG4gICAgICAgICAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogcHJvcHMuZGF0YUZvcm1hdC5zZXJpYWxpemF0aW9uTGlicmFyeS5jbGFzc05hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiBwcm9wcy5zdG9yYWdlUGFyYW1ldGVycyA/IHByb3BzLnN0b3JhZ2VQYXJhbWV0ZXJzLnJlZHVjZSgoYWNjLCBwYXJhbSkgPT4ge1xuICAgICAgICAgICAgaWYgKHBhcmFtLmtleSBpbiBhY2MpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgRHVwbGljYXRlU3RvcmFnZVBhcmFtZXRlcktleWAsIGBEdXBsaWNhdGUgc3RvcmFnZSBwYXJhbWV0ZXIga2V5OiAke3BhcmFtLmtleX1gLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGtleSA9IHBhcmFtLmtleTtcbiAgICAgICAgICAgIGFjY1trZXldID0gcGFyYW0udmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgIH0sIHt9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuXG4gICAgICAgIHRhYmxlVHlwZTogJ0VYVEVSTkFMX1RBQkxFJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnRhYmxlUmVzb3VyY2UgPSB0aGlzLnJlc291cmNlO1xuICAgIHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgPSB0aGlzLnJlc291cmNlO1xuXG4gICAgLy8gUGFydGl0aW9uIGluZGV4IGNyZWF0aW9uIHJlbGllcyBvbiBjcmVhdGVkIHRhYmxlLlxuICAgIGlmIChwcm9wcy5wYXJ0aXRpb25JbmRleGVzKSB7XG4gICAgICB0aGlzLnBhcnRpdGlvbkluZGV4ZXMgPSBwcm9wcy5wYXJ0aXRpb25JbmRleGVzO1xuICAgICAgdGhpcy5wYXJ0aXRpb25JbmRleGVzLmZvckVhY2goKGluZGV4KSA9PiB0aGlzLmFkZFBhcnRpdGlvbkluZGV4KGluZGV4KSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhpcyB0YWJsZS5cbiAgICovXG4gIEBtZW1vaXplZEdldHRlclxuICBwdWJsaWMgZ2V0IHRhYmxlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZSh0aGlzLnJlc291cmNlLnJlZik7XG4gIH1cblxuICAvKipcbiAgICogQVJOIG9mIHRoaXMgdGFibGUuXG4gICAqL1xuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCB0YWJsZUFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0YWNrLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnZ2x1ZScsXG4gICAgICByZXNvdXJjZTogJ3RhYmxlJyxcbiAgICAgIHJlc291cmNlTmFtZTogYCR7dGhpcy5kYXRhYmFzZS5kYXRhYmFzZU5hbWV9LyR7dGhpcy50YWJsZU5hbWV9YCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIHRvIHRoZSB0YWJsZVxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgdGhlIHByaW5jaXBhbFxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgY29uc3QgcmV0ID0gdGhpcy5ncmFudChncmFudGVlLCByZWFkUGVybWlzc2lvbnMpO1xuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgd3JpdGUgcGVybWlzc2lvbnMgdG8gdGhlIHRhYmxlXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSB0aGUgcHJpbmNpcGFsXG4gICAqL1xuICBATWV0aG9kTWV0YWRhdGEoKVxuICBwdWJsaWMgZ3JhbnRXcml0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgY29uc3QgcmV0ID0gdGhpcy5ncmFudChncmFudGVlLCB3cml0ZVBlcm1pc3Npb25zKTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIHRvIHRoZSB0YWJsZVxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgdGhlIHByaW5jaXBhbFxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGdyYW50UmVhZFdyaXRlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICBjb25zdCByZXQgPSB0aGlzLmdyYW50KGdyYW50ZWUsIFsuLi5yZWFkUGVybWlzc2lvbnMsIC4uLndyaXRlUGVybWlzc2lvbnNdKTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG59XG5cbmNvbnN0IHJlYWRQZXJtaXNzaW9ucyA9IFtcbiAgJ2dsdWU6QmF0Y2hHZXRQYXJ0aXRpb24nLFxuICAnZ2x1ZTpHZXRQYXJ0aXRpb24nLFxuICAnZ2x1ZTpHZXRQYXJ0aXRpb25zJyxcbiAgJ2dsdWU6R2V0VGFibGUnLFxuICAnZ2x1ZTpHZXRUYWJsZXMnLFxuICAnZ2x1ZTpHZXRUYWJsZVZlcnNpb24nLFxuICAnZ2x1ZTpHZXRUYWJsZVZlcnNpb25zJyxcbl07XG5cbmNvbnN0IHdyaXRlUGVybWlzc2lvbnMgPSBbXG4gICdnbHVlOkJhdGNoQ3JlYXRlUGFydGl0aW9uJyxcbiAgJ2dsdWU6QmF0Y2hEZWxldGVQYXJ0aXRpb24nLFxuICAnZ2x1ZTpDcmVhdGVQYXJ0aXRpb24nLFxuICAnZ2x1ZTpEZWxldGVQYXJ0aXRpb24nLFxuICAnZ2x1ZTpVcGRhdGVQYXJ0aXRpb24nLFxuXTtcblxuZnVuY3Rpb24gcmVuZGVyQ29sdW1ucyhjb2x1bW5zPzogQ29sdW1uW10pIHtcbiAgaWYgKGNvbHVtbnMgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIGNvbHVtbnMubWFwKGNvbHVtbiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGNvbHVtbi5uYW1lLFxuICAgICAgdHlwZTogY29sdW1uLnR5cGUuaW5wdXRTdHJpbmcsXG4gICAgICBjb21tZW50OiBjb2x1bW4uY29tbWVudCxcbiAgICB9O1xuICB9KTtcbn1cbiJdfQ==
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlcm5hbC10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBOEM7QUFDOUMsbURBQWdEO0FBRWhELDRFQUE0RTtBQUM1RSw4RUFBOEY7QUFDOUYsMEVBQTBFO0FBSzFFLDZDQUF5QztBQW9CekM7OztHQUdHO0lBRVUsYUFBYTs0QkFEekIsb0NBQWtCOzs7O3NCQUNnQixzQkFBUzs7Ozs7Ozs2QkFBakIsU0FBUSxXQUFTOzs7O3lDQWdGekMsaUNBQWM7d0NBUWQsaUNBQWM7cUNBZWQsSUFBQSxrQ0FBYyxHQUFFO3NDQVloQixJQUFBLGtDQUFjLEdBQUU7MENBWWhCLElBQUEsa0NBQWMsR0FBRTtZQTlDakIsa0xBQVcsU0FBUyw2REFFbkI7WUFNRCwrS0FBVyxRQUFRLDZEQU1sQjtZQVNELDhLQUFPLFNBQVMsNkRBR2Y7WUFTRCxpTEFBTyxVQUFVLDZEQUdoQjtZQVNELDZMQUFPLGNBQWMsNkRBR3BCO1lBbklILDZLQW9JQzs7Ozs7UUFuSUMsc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyx1Q0FBdUMsQ0FBQztRQUUvRjs7V0FFRztRQUNhLFVBQVUsR0FQZixtREFBYSxDQU9nQjtRQUV4Qzs7V0FFRztRQUNhLGdCQUFnQixDQUFvQjtRQUVqQyxhQUFhLENBQVc7UUFFbkMsUUFBUSxDQUFXO1FBRTNCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7WUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7Ozs7Ozs7bURBbkJmLGFBQWE7Ozs7WUFvQnRCLG1DQUFtQztZQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFV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QjtJQUMzQixzQkFBc0I7SUFDdEIsc0JBQXNCO0lBQ3RCLHNCQUFzQjtDQUN2QixDQUFDO0FBRUYsU0FBUyxhQUFhLENBQUMsT0FBa0I7SUFDdkMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMxQixPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1NBQ3hCLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDZm5UYWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCB0eXBlICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgbWVtb2l6ZWRHZXR0ZXIsIGxpdCB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEsIE1ldGhvZE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElDb25uZWN0aW9uIH0gZnJvbSAnLi9jb25uZWN0aW9uJztcbmltcG9ydCB0eXBlIHsgQ29sdW1uIH0gZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBQYXJ0aXRpb25JbmRleCwgVGFibGVCYXNlUHJvcHMgfSBmcm9tICcuL3RhYmxlLWJhc2UnO1xuaW1wb3J0IHsgVGFibGVCYXNlIH0gZnJvbSAnLi90YWJsZS1iYXNlJztcblxuZXhwb3J0IGludGVyZmFjZSBFeHRlcm5hbFRhYmxlUHJvcHMgZXh0ZW5kcyBUYWJsZUJhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbiB0aGUgdGFibGUgd2lsbCB1c2Ugd2hlbiBwZXJmb3JtaW5nIHJlYWRzIGFuZCB3cml0ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gY29ubmVjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbjogSUNvbm5lY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIHNvdXJjZSBsb2NhdGlvbiBvZiB0aGUgZ2x1ZSB0YWJsZSwgKGUuZy4gYGRlZmF1bHRfZGJfcHVibGljX2V4YW1wbGVgIGZvciBSZWRzaGlmdCkuXG4gICAqXG4gICAqIElmIHRoaXMgcHJvcGVydHkgaXMgc2V0LCBpdCB3aWxsIG92ZXJyaWRlIGJvdGggYGJ1Y2tldGAgYW5kIGBzM1ByZWZpeGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gb3V0c291cmNlZCBkYXRhIHNvdXJjZSBsb2NhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZXJuYWxEYXRhTG9jYXRpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIEdsdWUgdGFibGUgdGhhdCB0YXJnZXRzIGFuIGV4dGVybmFsIGRhdGEgbG9jYXRpb24gKGUuZy4gQSB0YWJsZSBpbiBhIFJlZHNoaWZ0IENsdXN0ZXIpLlxuICogQHJlc291cmNlIEFXUzo6R2x1ZTo6VGFibGVcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEV4dGVybmFsVGFibGUgZXh0ZW5kcyBUYWJsZUJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1nbHVlLWFscGhhLkV4dGVybmFsVGFibGUnO1xuXG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbiBhc3NvY2lhdGVkIHRvIHRoaXMgdGFibGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uOiBJQ29ubmVjdGlvbjtcblxuICAvKipcbiAgICogVGhpcyB0YWJsZSdzIHBhcnRpdGlvbiBpbmRleGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcnRpdGlvbkluZGV4ZXM/OiBQYXJ0aXRpb25JbmRleFtdO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0YWJsZVJlc291cmNlOiBDZm5UYWJsZTtcblxuICBwcml2YXRlIHJlc291cmNlOiBDZm5UYWJsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXh0ZXJuYWxUYWJsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG4gICAgdGhpcy5jb25uZWN0aW9uID0gcHJvcHMuY29ubmVjdGlvbjtcbiAgICB0aGlzLnJlc291cmNlID0gbmV3IENmblRhYmxlKHRoaXMsICdUYWJsZScsIHtcbiAgICAgIGNhdGFsb2dJZDogcHJvcHMuZGF0YWJhc2UuY2F0YWxvZy5jYXRhbG9nSWQsXG5cbiAgICAgIGRhdGFiYXNlTmFtZTogcHJvcHMuZGF0YWJhc2UuZGF0YWJhc2VOYW1lLFxuXG4gICAgICB0YWJsZUlucHV0OiB7XG4gICAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24gfHwgYCR7dGhpcy5waHlzaWNhbE5hbWV9IGdlbmVyYXRlZCBieSBDREtgLFxuXG4gICAgICAgIHBhcnRpdGlvbktleXM6IHJlbmRlckNvbHVtbnMocHJvcHMucGFydGl0aW9uS2V5cyksXG5cbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICdjbGFzc2lmaWNhdGlvbic6IHByb3BzLmRhdGFGb3JtYXQuY2xhc3NpZmljYXRpb25TdHJpbmc/LnZhbHVlLFxuICAgICAgICAgICdwYXJ0aXRpb25fZmlsdGVyaW5nLmVuYWJsZWQnOiBwcm9wcy5lbmFibGVQYXJ0aXRpb25GaWx0ZXJpbmcsXG4gICAgICAgICAgJ2Nvbm5lY3Rpb25OYW1lJzogcHJvcHMuY29ubmVjdGlvbi5jb25uZWN0aW9uTmFtZSxcbiAgICAgICAgICAuLi50aGlzLnBhcmFtZXRlcnMsXG4gICAgICAgICAgLy8gTWFuYWdlZCBrZXlzIGFyZSBlbWl0dGVkIGxhc3Qgc28gZnJlZS1mb3JtIGBwYXJhbWV0ZXJzYCBjYW5ub3RcbiAgICAgICAgICAvLyBzaWxlbnRseSBvdmVycmlkZSB0aGVtLiBDb25mbGljdHMgYXJlIHJlamVjdGVkIGluIGBUYWJsZUJhc2VgLlxuICAgICAgICAgICdoYXNfZW5jcnlwdGVkX2RhdGEnOiB0aGlzLmhhc0VuY3J5cHRlZERhdGEsXG4gICAgICAgIH0sXG4gICAgICAgIHN0b3JhZ2VEZXNjcmlwdG9yOiB7XG4gICAgICAgICAgbG9jYXRpb246IHByb3BzLmV4dGVybmFsRGF0YUxvY2F0aW9uLFxuICAgICAgICAgIGNvbXByZXNzZWQ6IHRoaXMuY29tcHJlc3NlZCxcbiAgICAgICAgICBzdG9yZWRBc1N1YkRpcmVjdG9yaWVzOiBwcm9wcy5zdG9yZWRBc1N1YkRpcmVjdG9yaWVzID8/IGZhbHNlLFxuICAgICAgICAgIGNvbHVtbnM6IHJlbmRlckNvbHVtbnMocHJvcHMuY29sdW1ucyksXG4gICAgICAgICAgaW5wdXRGb3JtYXQ6IHByb3BzLmRhdGFGb3JtYXQuaW5wdXRGb3JtYXQuY2xhc3NOYW1lLFxuICAgICAgICAgIG91dHB1dEZvcm1hdDogcHJvcHMuZGF0YUZvcm1hdC5vdXRwdXRGb3JtYXQuY2xhc3NOYW1lLFxuICAgICAgICAgIHNlcmRlSW5mbzoge1xuICAgICAgICAgICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IHByb3BzLmRhdGFGb3JtYXQuc2VyaWFsaXphdGlvbkxpYnJhcnkuY2xhc3NOYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGFyYW1ldGVyczogcHJvcHMuc3RvcmFnZVBhcmFtZXRlcnMgPyBwcm9wcy5zdG9yYWdlUGFyYW1ldGVycy5yZWR1Y2UoKGFjYywgcGFyYW0pID0+IHtcbiAgICAgICAgICAgIGlmIChwYXJhbS5rZXkgaW4gYWNjKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YER1cGxpY2F0ZVN0b3JhZ2VQYXJhbWV0ZXJLZXlgLCBgRHVwbGljYXRlIHN0b3JhZ2UgcGFyYW1ldGVyIGtleTogJHtwYXJhbS5rZXl9YCwgdGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBwYXJhbS5rZXk7XG4gICAgICAgICAgICBhY2Nba2V5XSA9IHBhcmFtLnZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICB9LCB7fSBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcblxuICAgICAgICB0YWJsZVR5cGU6ICdFWFRFUk5BTF9UQUJMRScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWJsZVJlc291cmNlID0gdGhpcy5yZXNvdXJjZTtcbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5yZXNvdXJjZTtcblxuICAgIC8vIFBhcnRpdGlvbiBpbmRleCBjcmVhdGlvbiByZWxpZXMgb24gY3JlYXRlZCB0YWJsZS5cbiAgICBpZiAocHJvcHMucGFydGl0aW9uSW5kZXhlcykge1xuICAgICAgdGhpcy5wYXJ0aXRpb25JbmRleGVzID0gcHJvcHMucGFydGl0aW9uSW5kZXhlcztcbiAgICAgIHRoaXMucGFydGl0aW9uSW5kZXhlcy5mb3JFYWNoKChpbmRleCkgPT4gdGhpcy5hZGRQYXJ0aXRpb25JbmRleChpbmRleCkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoaXMgdGFibGUuXG4gICAqL1xuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCB0YWJsZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUodGhpcy5yZXNvdXJjZS5yZWYpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFSTiBvZiB0aGlzIHRhYmxlLlxuICAgKi9cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgdGFibGVBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdGFjay5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dsdWUnLFxuICAgICAgcmVzb3VyY2U6ICd0YWJsZScsXG4gICAgICByZXNvdXJjZU5hbWU6IGAke3RoaXMuZGF0YWJhc2UuZGF0YWJhc2VOYW1lfS8ke3RoaXMudGFibGVOYW1lfWAsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0byB0aGUgdGFibGVcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIHRoZSBwcmluY2lwYWxcbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IHJldCA9IHRoaXMuZ3JhbnQoZ3JhbnRlZSwgcmVhZFBlcm1pc3Npb25zKTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHdyaXRlIHBlcm1pc3Npb25zIHRvIHRoZSB0YWJsZVxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgdGhlIHByaW5jaXBhbFxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGdyYW50V3JpdGUoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IHJldCA9IHRoaXMuZ3JhbnQoZ3JhbnRlZSwgd3JpdGVQZXJtaXNzaW9ucyk7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIGFuZCB3cml0ZSBwZXJtaXNzaW9ucyB0byB0aGUgdGFibGVcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIHRoZSBwcmluY2lwYWxcbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBncmFudFJlYWRXcml0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgY29uc3QgcmV0ID0gdGhpcy5ncmFudChncmFudGVlLCBbLi4ucmVhZFBlcm1pc3Npb25zLCAuLi53cml0ZVBlcm1pc3Npb25zXSk7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxufVxuXG5jb25zdCByZWFkUGVybWlzc2lvbnMgPSBbXG4gICdnbHVlOkJhdGNoR2V0UGFydGl0aW9uJyxcbiAgJ2dsdWU6R2V0UGFydGl0aW9uJyxcbiAgJ2dsdWU6R2V0UGFydGl0aW9ucycsXG4gICdnbHVlOkdldFRhYmxlJyxcbiAgJ2dsdWU6R2V0VGFibGVzJyxcbiAgJ2dsdWU6R2V0VGFibGVWZXJzaW9uJyxcbiAgJ2dsdWU6R2V0VGFibGVWZXJzaW9ucycsXG5dO1xuXG5jb25zdCB3cml0ZVBlcm1pc3Npb25zID0gW1xuICAnZ2x1ZTpCYXRjaENyZWF0ZVBhcnRpdGlvbicsXG4gICdnbHVlOkJhdGNoRGVsZXRlUGFydGl0aW9uJyxcbiAgJ2dsdWU6Q3JlYXRlUGFydGl0aW9uJyxcbiAgJ2dsdWU6RGVsZXRlUGFydGl0aW9uJyxcbiAgJ2dsdWU6VXBkYXRlUGFydGl0aW9uJyxcbl07XG5cbmZ1bmN0aW9uIHJlbmRlckNvbHVtbnMoY29sdW1ucz86IENvbHVtbltdKSB7XG4gIGlmIChjb2x1bW5zID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiBjb2x1bW5zLm1hcChjb2x1bW4gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBjb2x1bW4ubmFtZSxcbiAgICAgIHR5cGU6IGNvbHVtbi50eXBlLmlucHV0U3RyaW5nLFxuICAgICAgY29tbWVudDogY29sdW1uLmNvbW1lbnQsXG4gICAgfTtcbiAgfSk7XG59XG4iXX0=
package/lib/jobs/job.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';
2
2
  import * as events from 'aws-cdk-lib/aws-events';
3
+ import type { IJobRef, JobReference } from 'aws-cdk-lib/aws-glue';
3
4
  import * as iam from 'aws-cdk-lib/aws-iam';
4
5
  import type * as logs from 'aws-cdk-lib/aws-logs';
5
6
  import * as cdk from 'aws-cdk-lib/core';
@@ -12,7 +13,7 @@ import type { ISecurityConfiguration } from '../security-configuration';
12
13
  /**
13
14
  * Interface representing a new or an imported Glue Job
14
15
  */
15
- export interface IJob extends cdk.IResource, iam.IGrantable {
16
+ export interface IJob extends cdk.IResource, iam.IGrantable, IJobRef {
16
17
  /**
17
18
  * The name of the job.
18
19
  * @attribute
@@ -119,6 +120,10 @@ export declare abstract class JobBase extends cdk.Resource implements IJob {
119
120
  abstract readonly jobArn: string;
120
121
  abstract readonly jobName: string;
121
122
  abstract readonly grantPrincipal: iam.IPrincipal;
123
+ /**
124
+ * A reference to this Job resource, for use with the generated L1 ref interface.
125
+ */
126
+ get jobRef(): JobReference;
122
127
  /**
123
128
  * Create a CloudWatch Event Rule for this Glue Job when it's in a given state
124
129
  *
@@ -268,7 +273,16 @@ export interface JobProps {
268
273
  * The default arguments for every run of this Glue job,
269
274
  * specified as name-value pairs.
270
275
  *
271
- * These are emitted verbatim into the CloudFormation template, so avoid
276
+ * This map is the escape hatch for Glue job arguments that this construct does not model. It
277
+ * MUST NOT be used to set arguments that already have a dedicated prop — configure those through
278
+ * the corresponding prop instead (`continuousLogging`, `enableMetrics`,
279
+ * `enableObservabilityMetrics`, `sparkUI`, `className`, `extraJars`, `extraJarsFirst`,
280
+ * `extraPythonFiles`, `extraFiles`). Passing a construct-managed argument (e.g.
281
+ * `--enable-continuous-cloudwatch-log`, `--enable-metrics`, `--enable-spark-ui`,
282
+ * `--job-language`) or a Glue-reserved argument (`--debug`, `--mode`, `--JOB_NAME`, `--endpoint`)
283
+ * here throws at synthesis time, so there is exactly one way to express each intent.
284
+ *
285
+ * Also note that these are emitted verbatim into the CloudFormation template, so avoid
272
286
  * placing secrets here in plaintext. Pass secrets to the job at runtime
273
287
  * through AWS Secrets Manager instead. A synthesis-time warning is emitted
274
288
  * when an argument key looks like a credential and holds a plaintext literal.
@@ -351,26 +365,93 @@ export declare abstract class Job extends JobBase {
351
365
  * @param attrs Attributes for the Glue Job we want to import
352
366
  */
353
367
  static fromJobAttributes(scope: constructs.Construct, id: string, attrs: JobAttributes): IJob;
368
+ /**
369
+ * Argument keys that Glue reserves for its own use and that a caller must never set through
370
+ * `defaultArguments`. Unlike construct-managed arguments (which are derived from what each job
371
+ * class emits), these are owned by the Glue service itself and are reserved for every job type.
372
+ *
373
+ * @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html
374
+ */
375
+ private static readonly GLUE_RESERVED_ARGUMENTS;
354
376
  /**
355
377
  * The IAM role Glue assumes to run this job.
356
378
  */
357
379
  abstract readonly role: iam.IRole;
358
380
  /**
359
- * Check no usage of reserved arguments.
381
+ * The construct-managed job arguments that are actually emitted for the current configuration,
382
+ * accumulated via {@link setManagedArgument}. Passed through to `CfnJob.defaultArguments` after
383
+ * being merged with the user-supplied `defaultArguments` by {@link mergeDefaultArguments}.
384
+ */
385
+ private readonly _managedArguments;
386
+ /**
387
+ * Every argument key this construct manages, accumulated via {@link setManagedArgument} — whether
388
+ * or not the current configuration emits a value for it. This is the reserved set that a
389
+ * user-supplied `defaultArguments` must not collide with. Registering a key even when its value
390
+ * is `undefined` (feature disabled or unset) is what keeps `defaultArguments` from silently
391
+ * re-enabling it.
392
+ */
393
+ private readonly _managedArgumentKeys;
394
+ /**
395
+ * Declare `key` as construct-managed and, when `value` is defined, emit it into the job's
396
+ * arguments.
360
397
  *
398
+ * This is the single sink for every argument a job construct derives from its typed props (or
399
+ * from the job class itself). Call it once per managed key, passing `undefined` as the value when
400
+ * the corresponding feature is turned off or unset — the key is still reserved from
401
+ * `defaultArguments` either way, so a disabled feature cannot be re-enabled through the escape
402
+ * hatch. There is deliberately no other way for a subclass to emit a managed argument, so the
403
+ * reserved set can never drift from what is emitted.
404
+ *
405
+ * @param key the Glue argument key, e.g. `--enable-metrics`
406
+ * @param value the value to emit, or `undefined` to reserve the key without emitting it
407
+ */
408
+ protected setManagedArgument(key: string, value?: string): void;
409
+ /**
410
+ * Merge the customer-supplied `defaultArguments` with the arguments this construct manages.
411
+ *
412
+ * The construct owns every argument it emits — whether the value comes from a dedicated typed
413
+ * prop (e.g. `continuousLogging`, `enableMetrics`, `sparkUI`) or from the job class itself
414
+ * (e.g. `--job-language`). Those arguments, plus the arguments Glue reserves for its own use,
415
+ * MUST be configured through their dedicated props rather than the untyped `defaultArguments`
416
+ * map, so there is exactly one way to express each intent. Passing such a key through
417
+ * `defaultArguments` therefore throws instead of silently winning or being silently dropped.
418
+ *
419
+ * A managed key whose supplied value is identical to the construct's value is not contradictory,
420
+ * so it is allowed rather than rejected (auto-correcting config is preferred over errors).
421
+ * Glue-reserved keys are never emitted by the construct, so there is no value to reconcile and
422
+ * they always throw.
423
+ *
424
+ * The reserved set is `_managedArgumentKeys` — every key the construct declared through
425
+ * {@link setManagedArgument}, whether or not a value was emitted for it. It is deliberately NOT
426
+ * derived from the keys that carry a value: a typed prop that turns a feature *off* (e.g.
427
+ * `enableMetrics: false`) emits no value but still reserves its key, so `defaultArguments` cannot
428
+ * silently re-enable it.
429
+ *
430
+ * Conflict detection relies on string equality of the argument keys, which cannot see through
431
+ * unresolved tokens (e.g. a key produced by `CfnJson` that only resolves at deploy time). If a
432
+ * key is a token, the check is skipped for that key and a synthesis-time warning is emitted, so
433
+ * the (rare) case where a token key resolves to a managed argument at deploy time — in which the
434
+ * construct-managed value would silently take precedence — is surfaced rather than hidden.
435
+ *
436
+ * @param defaultArguments the caller-supplied escape-hatch arguments, if any
361
437
  * @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html
362
438
  */
363
- protected checkNoReservedArgs(defaultArguments?: {
439
+ protected mergeDefaultArguments(defaultArguments?: {
364
440
  [key: string]: string;
365
441
  }): {
366
442
  [key: string]: string;
367
- } | undefined;
443
+ };
368
444
  /**
369
- * Setup Continuous Logging Properties
370
- * @param role The IAM role to use for continuous logging
445
+ * Register (and, when enabled, emit) the continuous-logging arguments this job manages.
446
+ *
447
+ * All five continuous-logging keys are reserved on every job type regardless of configuration:
448
+ * they are always registered through {@link setManagedArgument}, and carry a value only when
449
+ * logging is enabled. This keeps `defaultArguments` from re-enabling logging a user turned off.
450
+ *
451
+ * @param role The IAM role to grant write access to a custom log group, if one is provided
371
452
  * @param props The properties for continuous logging configuration
372
- * @returns String containing the args for the continuous logging command
453
+ * @param securityConfiguration The security configuration attached to the job, if any
373
454
  */
374
- protected setupContinuousLogging(role: iam.IRole, props: ContinuousLoggingProps | undefined): any;
455
+ protected setupContinuousLogging(role: iam.IRole, props: ContinuousLoggingProps | undefined, securityConfiguration?: ISecurityConfiguration): void;
375
456
  protected codeS3ObjectUrl(code: Code): string;
376
457
  }