@aws-cdk/aws-glue-alpha 2.265.0-alpha.0 → 2.267.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 (51) hide show
  1. package/.jsii +982 -776
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +25 -91
  4. package/README.md +158 -72
  5. package/awslint.json +6 -1
  6. package/lib/catalog.js +3 -3
  7. package/lib/code.js +3 -3
  8. package/lib/connection.d.ts +41 -1
  9. package/lib/connection.js +48 -9
  10. package/lib/data-format.d.ts +2 -2
  11. package/lib/data-format.js +8 -8
  12. package/lib/data-quality-ruleset.d.ts +28 -3
  13. package/lib/data-quality-ruleset.js +37 -5
  14. package/lib/database.d.ts +1 -1
  15. package/lib/database.js +2 -2
  16. package/lib/external-table.js +6 -4
  17. package/lib/index.d.ts +0 -1
  18. package/lib/index.js +1 -2
  19. package/lib/jobs/job.d.ts +1 -24
  20. package/lib/jobs/job.js +3 -3
  21. package/lib/jobs/pyspark-etl-job.d.ts +2 -1
  22. package/lib/jobs/pyspark-etl-job.js +10 -5
  23. package/lib/jobs/pyspark-flex-etl-job.d.ts +3 -2
  24. package/lib/jobs/pyspark-flex-etl-job.js +7 -6
  25. package/lib/jobs/pyspark-streaming-job.d.ts +2 -1
  26. package/lib/jobs/pyspark-streaming-job.js +6 -5
  27. package/lib/jobs/python-shell-job.js +1 -1
  28. package/lib/jobs/ray-job.d.ts +8 -0
  29. package/lib/jobs/ray-job.js +3 -7
  30. package/lib/jobs/scala-spark-etl-job.js +4 -8
  31. package/lib/jobs/scala-spark-flex-etl-job.js +4 -4
  32. package/lib/jobs/scala-spark-streaming-job.js +4 -8
  33. package/lib/jobs/spark-job.d.ts +26 -0
  34. package/lib/jobs/spark-job.js +2 -2
  35. package/lib/partition-projection.d.ts +8 -8
  36. package/lib/partition-projection.js +49 -2
  37. package/lib/s3-table.d.ts +83 -39
  38. package/lib/s3-table.js +136 -86
  39. package/lib/schema.d.ts +26 -6
  40. package/lib/schema.js +74 -82
  41. package/lib/security-configuration.d.ts +41 -47
  42. package/lib/security-configuration.js +83 -25
  43. package/lib/storage-parameter.d.ts +14 -3
  44. package/lib/storage-parameter.js +16 -6
  45. package/lib/table-base.d.ts +34 -1
  46. package/lib/table-base.js +33 -2
  47. package/lib/triggers/trigger-options.js +1 -1
  48. package/lib/triggers/workflow.js +2 -2
  49. package/package.json +7 -7
  50. package/lib/table-deprecated.d.ts +0 -13
  51. package/lib/table-deprecated.js +0 -70
package/lib/schema.js CHANGED
@@ -1,93 +1,93 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Schema = void 0;
3
+ exports.Schema = exports.Type = void 0;
4
4
  const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const aws_cdk_lib_1 = require("aws-cdk-lib");
7
7
  const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
8
+ /**
9
+ * The type of a column in a table schema.
10
+ *
11
+ * Instances are opaque: obtain one from a `Schema` factory (for example
12
+ * `Schema.STRING`, `Schema.decimal(...)`, `Schema.array(...)`) or, for a type the
13
+ * `Schema` factories don't model, from `Schema.custom(...)`.
14
+ */
15
+ class Type {
16
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Type", version: "2.267.0-alpha.0" };
17
+ /**
18
+ * Create a `Type` from its parts.
19
+ *
20
+ * @internal
21
+ */
22
+ static _of(inputString, isPrimitive) {
23
+ return new Type(inputString, isPrimitive);
24
+ }
25
+ /**
26
+ * Indicates whether this type is a primitive data type.
27
+ */
28
+ isPrimitive;
29
+ /**
30
+ * Glue InputString for this type.
31
+ */
32
+ inputString;
33
+ constructor(inputString, isPrimitive) {
34
+ this.inputString = inputString;
35
+ this.isPrimitive = isPrimitive;
36
+ }
37
+ }
38
+ exports.Type = Type;
8
39
  /**
9
40
  * @see https://docs.aws.amazon.com/athena/latest/ug/data-types.html
10
41
  */
11
42
  class Schema {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Schema", version: "2.265.0-alpha.0" };
13
- static BOOLEAN = {
14
- isPrimitive: true,
15
- inputString: 'boolean',
16
- };
17
- static BINARY = {
18
- isPrimitive: true,
19
- inputString: 'binary',
20
- };
43
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Schema", version: "2.267.0-alpha.0" };
44
+ static BOOLEAN = Type._of('boolean', true);
45
+ static BINARY = Type._of('binary', true);
21
46
  /**
22
47
  * A 64-bit signed INTEGER in two’s complement format, with a minimum value of -2^63 and a maximum value of 2^63-1.
23
48
  */
24
- static BIG_INT = {
25
- isPrimitive: true,
26
- inputString: 'bigint',
27
- };
28
- static DOUBLE = {
29
- isPrimitive: true,
30
- inputString: 'double',
31
- };
32
- static FLOAT = {
33
- isPrimitive: true,
34
- inputString: 'float',
35
- };
49
+ static BIG_INT = Type._of('bigint', true);
50
+ static DOUBLE = Type._of('double', true);
51
+ static FLOAT = Type._of('float', true);
36
52
  /**
37
53
  * A 32-bit signed INTEGER in two’s complement format, with a minimum value of -2^31 and a maximum value of 2^31-1.
38
54
  */
39
- static INTEGER = {
40
- isPrimitive: true,
41
- inputString: 'int',
42
- };
55
+ static INTEGER = Type._of('int', true);
43
56
  /**
44
57
  * A 16-bit signed INTEGER in two’s complement format, with a minimum value of -2^15 and a maximum value of 2^15-1.
45
58
  */
46
- static SMALL_INT = {
47
- isPrimitive: true,
48
- inputString: 'smallint',
49
- };
59
+ static SMALL_INT = Type._of('smallint', true);
50
60
  /**
51
61
  * A 8-bit signed INTEGER in two’s complement format, with a minimum value of -2^7 and a maximum value of 2^7-1
52
62
  */
53
- static TINY_INT = {
54
- isPrimitive: true,
55
- inputString: 'tinyint',
56
- };
63
+ static TINY_INT = Type._of('tinyint', true);
57
64
  /**
58
65
  * Date type.
59
66
  */
60
- static DATE = {
61
- isPrimitive: true,
62
- inputString: 'date',
63
- };
67
+ static DATE = Type._of('date', true);
64
68
  /**
65
69
  * Timestamp type (date and time).
66
70
  */
67
- static TIMESTAMP = {
68
- isPrimitive: true,
69
- inputString: 'timestamp',
70
- };
71
+ static TIMESTAMP = Type._of('timestamp', true);
71
72
  /**
72
73
  * Arbitrary-length string type.
73
74
  */
74
- static STRING = {
75
- isPrimitive: true,
76
- inputString: 'string',
77
- };
75
+ static STRING = Type._of('string', true);
78
76
  /**
79
77
  * Creates a decimal type.
80
78
  *
81
- * TODO: Bounds
82
- *
83
- * @param precision the total number of digits
84
- * @param scale the number of digits in fractional part, the default is 0
79
+ * @param precision the total number of digits, between 1 and 38
80
+ * @param scale the number of digits in the fractional part, between 0 and 38; the default is 0
81
+ * @see https://docs.aws.amazon.com/athena/latest/ug/data-types.html
85
82
  */
86
83
  static decimal(precision, scale) {
87
- return {
88
- isPrimitive: true,
89
- inputString: scale !== undefined ? `decimal(${precision},${scale})` : `decimal(${precision})`,
90
- };
84
+ if (aws_cdk_lib_1.Token.isResolved(precision) && (precision < 1 || precision > 38 || precision % 1 !== 0)) {
85
+ throw new aws_cdk_lib_1.UnscopedValidationError((0, helpers_internal_1.lit) `DecimalPrecisionOutOfRange`, `decimal precision must be a positive integer between 1 and 38, got ${precision}`);
86
+ }
87
+ if (scale !== undefined && aws_cdk_lib_1.Token.isResolved(scale) && (scale < 0 || scale > 38 || scale % 1 !== 0)) {
88
+ throw new aws_cdk_lib_1.UnscopedValidationError((0, helpers_internal_1.lit) `DecimalScaleOutOfRange`, `decimal scale must be an integer between 0 and 38, got ${scale}`);
89
+ }
90
+ return Type._of(scale !== undefined ? `decimal(${precision},${scale})` : `decimal(${precision})`, true);
91
91
  }
92
92
  /**
93
93
  * Fixed length character data, with a specified length between 1 and 255.
@@ -101,10 +101,7 @@ class Schema {
101
101
  if (length % 1 !== 0) {
102
102
  throw new aws_cdk_lib_1.UnscopedValidationError((0, helpers_internal_1.lit) `CharLengthNotInteger`, `char length must be a positive integer, was ${length}`);
103
103
  }
104
- return {
105
- isPrimitive: true,
106
- inputString: `char(${length})`,
107
- };
104
+ return Type._of(`char(${length})`, true);
108
105
  }
109
106
  /**
110
107
  * Variable length character data, with a specified length between 1 and 65535.
@@ -118,10 +115,7 @@ class Schema {
118
115
  if (length % 1 !== 0) {
119
116
  throw new aws_cdk_lib_1.UnscopedValidationError((0, helpers_internal_1.lit) `VarcharLengthNotInteger`, `varchar length must be a positive integer, was ${length}`);
120
117
  }
121
- return {
122
- isPrimitive: true,
123
- inputString: `varchar(${length})`,
124
- };
118
+ return Type._of(`varchar(${length})`, true);
125
119
  }
126
120
  /**
127
121
  * Creates an array of some other type.
@@ -138,10 +132,7 @@ class Schema {
138
132
  }
139
133
  throw error;
140
134
  }
141
- return {
142
- isPrimitive: false,
143
- inputString: `array<${itemType.inputString}>`,
144
- };
135
+ return Type._of(`array<${itemType.inputString}>`, false);
145
136
  }
146
137
  /**
147
138
  * Creates a map of some primitive key type to some value type.
@@ -163,10 +154,7 @@ class Schema {
163
154
  if (!keyType.isPrimitive) {
164
155
  throw new aws_cdk_lib_1.UnscopedValidationError((0, helpers_internal_1.lit) `MapKeyTypeNotPrimitive`, `the key type of a 'map' must be a primitive, but was ${keyType.inputString}`);
165
156
  }
166
- return {
167
- isPrimitive: false,
168
- inputString: `map<${keyType.inputString},${valueType.inputString}>`,
169
- };
157
+ return Type._of(`map<${keyType.inputString},${valueType.inputString}>`, false);
170
158
  }
171
159
  /**
172
160
  * Creates a nested structure containing individually named and typed columns.
@@ -174,18 +162,22 @@ class Schema {
174
162
  * @param columns the columns of the structure.
175
163
  */
176
164
  static struct(columns) {
177
- return {
178
- isPrimitive: false,
179
- inputString: `struct<${columns.map(column => {
180
- if (column.comment === undefined) {
181
- return `${column.name}:${column.type.inputString}`;
182
- }
183
- else {
184
- return `${column.name}:${column.type.inputString} COMMENT '${column.comment}'`;
185
- }
186
- }).join(',')}>`,
187
- };
165
+ return Type._of(`struct<${columns.map(column => {
166
+ return `${column.name}:${column.type.inputString}`;
167
+ }).join(',')}>`, false);
168
+ }
169
+ /**
170
+ * Creates a custom type from a raw Glue input string.
171
+ *
172
+ * Escape hatch for column types the other `Schema` factories don't model. The
173
+ * `inputString` is emitted verbatim and is not validated.
174
+ *
175
+ * @param inputString the Glue input string for the type (for example `interval_day_to_second`).
176
+ * @param isPrimitive whether the type is a primitive (non-nested) data type. Defaults to true.
177
+ */
178
+ static custom(inputString, isPrimitive) {
179
+ return Type._of(inputString, isPrimitive ?? true);
188
180
  }
189
181
  }
190
182
  exports.Schema = Schema;
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQXNEO0FBQ3RELDRFQUE0RDtBQXVDNUQ7O0dBRUc7QUFDSCxNQUFhLE1BQU07O0lBQ1YsTUFBTSxDQUFVLE9BQU8sR0FBUztRQUNyQyxXQUFXLEVBQUUsSUFBSTtRQUNqQixXQUFXLEVBQUUsU0FBUztLQUN2QixDQUFDO0lBRUssTUFBTSxDQUFVLE1BQU0sR0FBUztRQUNwQyxXQUFXLEVBQUUsSUFBSTtRQUNqQixXQUFXLEVBQUUsUUFBUTtLQUN0QixDQUFDO0lBRUY7O09BRUc7SUFDSSxNQUFNLENBQVUsT0FBTyxHQUFTO1FBQ3JDLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFdBQVcsRUFBRSxRQUFRO0tBQ3RCLENBQUM7SUFFSyxNQUFNLENBQVUsTUFBTSxHQUFTO1FBQ3BDLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFdBQVcsRUFBRSxRQUFRO0tBQ3RCLENBQUM7SUFFSyxNQUFNLENBQVUsS0FBSyxHQUFTO1FBQ25DLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFdBQVcsRUFBRSxPQUFPO0tBQ3JCLENBQUM7SUFFRjs7T0FFRztJQUNJLE1BQU0sQ0FBVSxPQUFPLEdBQVM7UUFDckMsV0FBVyxFQUFFLElBQUk7UUFDakIsV0FBVyxFQUFFLEtBQUs7S0FDbkIsQ0FBQztJQUVGOztPQUVHO0lBQ0ksTUFBTSxDQUFVLFNBQVMsR0FBUztRQUN2QyxXQUFXLEVBQUUsSUFBSTtRQUNqQixXQUFXLEVBQUUsVUFBVTtLQUN4QixDQUFDO0lBRUY7O09BRUc7SUFDSSxNQUFNLENBQVUsUUFBUSxHQUFTO1FBQ3RDLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFdBQVcsRUFBRSxTQUFTO0tBQ3ZCLENBQUM7SUFFRjs7T0FFRztJQUNJLE1BQU0sQ0FBVSxJQUFJLEdBQVM7UUFDbEMsV0FBVyxFQUFFLElBQUk7UUFDakIsV0FBVyxFQUFFLE1BQU07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QkFDMUMsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUNqQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyRCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLGFBQWEsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDO2dCQUNqRixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHO1NBQ2hCLENBQUM7S0FDSDs7QUE1S0gsd0JBNktDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcblxuLyoqXG4gKiBBIGNvbHVtbiBvZiBhIHRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbiB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBjb2x1bW4uXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgdGhlIGNvbHVtbi5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IFR5cGU7XG5cbiAgLyoqXG4gICAqIENvbWVudCBkZXNjcmliaW5nIHRoZSBjb2x1bW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHR5cGUgb2YgYSBjb2x1bW4gaW4gYSB0YWJsZSBzY2hlbWEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGlzIHR5cGUgaXMgYSBwcmltaXRpdmUgZGF0YSB0eXBlLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNQcmltaXRpdmU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdsdWUgSW5wdXRTdHJpbmcgZm9yIHRoaXMgdHlwZS5cbiAgICovXG4gIHJlYWRvbmx5IGlucHV0U3RyaW5nOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXRoZW5hL2xhdGVzdC91Zy9kYXRhLXR5cGVzLmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNjaGVtYSB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQk9PTEVBTjogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ2Jvb2xlYW4nLFxuICB9O1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQklOQVJZOiBUeXBlID0ge1xuICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgIGlucHV0U3RyaW5nOiAnYmluYXJ5JyxcbiAgfTtcblxuICAvKipcbiAgICogQSA2NC1iaXQgc2lnbmVkIElOVEVHRVIgaW4gdHdv4oCZcyBjb21wbGVtZW50IGZvcm1hdCwgd2l0aCBhIG1pbmltdW0gdmFsdWUgb2YgLTJeNjMgYW5kIGEgbWF4aW11bSB2YWx1ZSBvZiAyXjYzLTEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJJR19JTlQ6IFR5cGUgPSB7XG4gICAgaXNQcmltaXRpdmU6IHRydWUsXG4gICAgaW5wdXRTdHJpbmc6ICdiaWdpbnQnLFxuICB9O1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRE9VQkxFOiBUeXBlID0ge1xuICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgIGlucHV0U3RyaW5nOiAnZG91YmxlJyxcbiAgfTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZMT0FUOiBUeXBlID0ge1xuICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgIGlucHV0U3RyaW5nOiAnZmxvYXQnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBBIDMyLWJpdCBzaWduZWQgSU5URUdFUiBpbiB0d2/igJlzIGNvbXBsZW1lbnQgZm9ybWF0LCB3aXRoIGEgbWluaW11bSB2YWx1ZSBvZiAtMl4zMSBhbmQgYSBtYXhpbXVtIHZhbHVlIG9mIDJeMzEtMS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5URUdFUjogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ2ludCcsXG4gIH07XG5cbiAgLyoqXG4gICAqIEEgMTYtYml0IHNpZ25lZCBJTlRFR0VSIGluIHR3b+KAmXMgY29tcGxlbWVudCBmb3JtYXQsIHdpdGggYSBtaW5pbXVtIHZhbHVlIG9mIC0yXjE1IGFuZCBhIG1heGltdW0gdmFsdWUgb2YgMl4xNS0xLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTTUFMTF9JTlQ6IFR5cGUgPSB7XG4gICAgaXNQcmltaXRpdmU6IHRydWUsXG4gICAgaW5wdXRTdHJpbmc6ICdzbWFsbGludCcsXG4gIH07XG5cbiAgLyoqXG4gICAqIEEgOC1iaXQgc2lnbmVkIElOVEVHRVIgaW4gdHdv4oCZcyBjb21wbGVtZW50IGZvcm1hdCwgd2l0aCBhIG1pbmltdW0gdmFsdWUgb2YgLTJeNyBhbmQgYSBtYXhpbXVtIHZhbHVlIG9mIDJeNy0xXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRJTllfSU5UOiBUeXBlID0ge1xuICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgIGlucHV0U3RyaW5nOiAndGlueWludCcsXG4gIH07XG5cbiAgLyoqXG4gICAqIERhdGUgdHlwZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREFURTogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ2RhdGUnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgdHlwZSAoZGF0ZSBhbmQgdGltZSkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRJTUVTVEFNUDogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ3RpbWVzdGFtcCcsXG4gIH07XG5cbiAgLyoqXG4gICAqIEFyYml0cmFyeS1sZW5ndGggc3RyaW5nIHR5cGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNUUklORzogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ3N0cmluZycsXG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBkZWNpbWFsIHR5cGUuXG4gICAqXG4gICAqIFRPRE86IEJvdW5kc1xuICAgKlxuICAgKiBAcGFyYW0gcHJlY2lzaW9uIHRoZSB0b3RhbCBudW1iZXIgb2YgZGlnaXRzXG4gICAqIEBwYXJhbSBzY2FsZSB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBpbiBmcmFjdGlvbmFsIHBhcnQsIHRoZSBkZWZhdWx0IGlzIDBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGVjaW1hbChwcmVjaXNpb246IG51bWJlciwgc2NhbGU/OiBudW1iZXIpOiBUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNQcmltaXRpdmU6IHRydWUsXG4gICAgICBpbnB1dFN0cmluZzogc2NhbGUgIT09IHVuZGVmaW5lZCA/IGBkZWNpbWFsKCR7cHJlY2lzaW9ufSwke3NjYWxlfSlgIDogYGRlY2ltYWwoJHtwcmVjaXNpb259KWAsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXhlZCBsZW5ndGggY2hhcmFjdGVyIGRhdGEsIHdpdGggYSBzcGVjaWZpZWQgbGVuZ3RoIGJldHdlZW4gMSBhbmQgMjU1LlxuICAgKlxuICAgKiBAcGFyYW0gbGVuZ3RoIGxlbmd0aCBiZXR3ZWVuIDEgYW5kIDI1NVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjaGFyKGxlbmd0aDogbnVtYmVyKTogVHlwZSB7XG4gICAgaWYgKGxlbmd0aCA8PSAwIHx8IGxlbmd0aCA+IDI1NSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGxpdGBDaGFyTGVuZ3RoT3V0T2ZSYW5nZWAsIGBjaGFyIGxlbmd0aCBtdXN0IGJlIChpbmNsdXNpdmVseSkgYmV0d2VlbiAxIGFuZCAyNTUsIGJ1dCB3YXMgJHtsZW5ndGh9YCk7XG4gICAgfVxuICAgIGlmIChsZW5ndGggJSAxICE9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IobGl0YENoYXJMZW5ndGhOb3RJbnRlZ2VyYCwgYGNoYXIgbGVuZ3RoIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCB3YXMgJHtsZW5ndGh9YCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICAgIGlucHV0U3RyaW5nOiBgY2hhcigke2xlbmd0aH0pYCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZhcmlhYmxlIGxlbmd0aCBjaGFyYWN0ZXIgZGF0YSwgd2l0aCBhIHNwZWNpZmllZCBsZW5ndGggYmV0d2VlbiAxIGFuZCA2NTUzNS5cbiAgICpcbiAgICogQHBhcmFtIGxlbmd0aCBsZW5ndGggYmV0d2VlbiAxIGFuZCA2NTUzNS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmFyY2hhcihsZW5ndGg6IG51bWJlcik6IFR5cGUge1xuICAgIGlmIChsZW5ndGggPD0gMCB8fCBsZW5ndGggPiA2NTUzNSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGxpdGBWYXJjaGFyTGVuZ3RoT3V0T2ZSYW5nZWAsIGB2YXJjaGFyIGxlbmd0aCBtdXN0IGJlIChpbmNsdXNpdmVseSkgYmV0d2VlbiAxIGFuZCA2NTUzNSwgYnV0IHdhcyAke2xlbmd0aH1gKTtcbiAgICB9XG4gICAgaWYgKGxlbmd0aCAlIDEgIT09IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihsaXRgVmFyY2hhckxlbmd0aE5vdEludGVnZXJgLCBgdmFyY2hhciBsZW5ndGggbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIsIHdhcyAke2xlbmd0aH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgICAgaW5wdXRTdHJpbmc6IGB2YXJjaGFyKCR7bGVuZ3RofSlgLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBzb21lIG90aGVyIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtVHlwZSB0eXBlIGNvbnRhaW5lZCBieSB0aGUgYXJyYXkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFycmF5KGl0ZW1UeXBlOiBUeXBlKTogVHlwZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzUHJpbWl0aXZlOiBmYWxzZSxcbiAgICAgIGlucHV0U3RyaW5nOiBgYXJyYXk8JHtpdGVtVHlwZS5pbnB1dFN0cmluZ30+YCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBtYXAgb2Ygc29tZSBwcmltaXRpdmUga2V5IHR5cGUgdG8gc29tZSB2YWx1ZSB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5VHlwZSB0eXBlIG9mIGtleSwgbXVzdCBiZSBhIHByaW1pdGl2ZS5cbiAgICogQHBhcmFtIHZhbHVlVHlwZSB0eXBlIGZvIHRoZSB2YWx1ZSBpbmRleGVkIGJ5IHRoZSBrZXkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1hcChrZXlUeXBlOiBUeXBlLCB2YWx1ZVR5cGU6IFR5cGUpOiBUeXBlIHtcbiAgICBpZiAoIWtleVR5cGUuaXNQcmltaXRpdmUpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihsaXRgTWFwS2V5VHlwZU5vdFByaW1pdGl2ZWAsIGB0aGUga2V5IHR5cGUgb2YgYSAnbWFwJyBtdXN0IGJlIGEgcHJpbWl0aXZlLCBidXQgd2FzICR7a2V5VHlwZS5pbnB1dFN0cmluZ31gKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzUHJpbWl0aXZlOiBmYWxzZSxcbiAgICAgIGlucHV0U3RyaW5nOiBgbWFwPCR7a2V5VHlwZS5pbnB1dFN0cmluZ30sJHt2YWx1ZVR5cGUuaW5wdXRTdHJpbmd9PmAsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmVzdGVkIHN0cnVjdHVyZSBjb250YWluaW5nIGluZGl2aWR1YWxseSBuYW1lZCBhbmQgdHlwZWQgY29sdW1ucy5cbiAgICpcbiAgICogQHBhcmFtIGNvbHVtbnMgdGhlIGNvbHVtbnMgb2YgdGhlIHN0cnVjdHVyZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3RydWN0KGNvbHVtbnM6IENvbHVtbltdKTogVHlwZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzUHJpbWl0aXZlOiBmYWxzZSxcbiAgICAgIGlucHV0U3RyaW5nOiBgc3RydWN0PCR7Y29sdW1ucy5tYXAoY29sdW1uID0+IHtcbiAgICAgICAgaWYgKGNvbHVtbi5jb21tZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gYCR7Y29sdW1uLm5hbWV9OiR7Y29sdW1uLnR5cGUuaW5wdXRTdHJpbmd9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gYCR7Y29sdW1uLm5hbWV9OiR7Y29sdW1uLnR5cGUuaW5wdXRTdHJpbmd9IENPTU1FTlQgJyR7Y29sdW1uLmNvbW1lbnR9J2A7XG4gICAgICAgIH1cbiAgICAgIH0pLmpvaW4oJywnKX0+YCxcbiAgICB9O1xuICB9XG59XG4iXX0=
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTZEO0FBQzdELDRFQUE0RDtBQXdCNUQ7Ozs7OztHQU1HO0FBQ0gsTUFBYSxJQUFJOztJQUNmOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQW1CLEVBQUUsV0FBb0I7UUFDekQsT0FBTyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7S0FDM0M7SUFFRDs7T0FFRztJQUNhLFdBQVcsQ0FBVTtJQUVyQzs7T0FFRztJQUNhLFdBQVcsQ0FBUztJQUVwQyxZQUFvQixXQUFtQixFQUFFLFdBQW9CO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0tBQ2hDOztBQXZCSCxvQkF3QkM7QUFFRDs7R0FFRztBQUNILE1BQWEsTUFBTTs7SUFDVixNQUFNLENBQVUsT0FBTyxHQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRTFELE1BQU0sQ0FBVSxNQUFNLEdBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFL0Q7O09BRUc7SUFDSSxNQUFNLENBQVUsT0FBTyxHQUFTLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRXpELE1BQU0sQ0FBVSxNQUFNLEdBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFeEQsTUFBTSxDQUFVLEtBQUssR0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUU3RDs7T0FFRztJQUNJLE1BQU0sQ0FBVSxPQUFPLEdBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVB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RUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLENBQUM7S0FDbkQ7O0FBdklILHdCQXdJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRva2VuLCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IGxpdCB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuXG4vKipcbiAqIEEgY29sdW1uIG9mIGEgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGNvbHVtbi5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiB0aGUgY29sdW1uLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogVHlwZTtcblxuICAvKipcbiAgICogQ29tZW50IGRlc2NyaWJpbmcgdGhlIGNvbHVtbi5cbiAgICpcbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWVudD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgdHlwZSBvZiBhIGNvbHVtbiBpbiBhIHRhYmxlIHNjaGVtYS5cbiAqXG4gKiBJbnN0YW5jZXMgYXJlIG9wYXF1ZTogb2J0YWluIG9uZSBmcm9tIGEgYFNjaGVtYWAgZmFjdG9yeSAoZm9yIGV4YW1wbGVcbiAqIGBTY2hlbWEuU1RSSU5HYCwgYFNjaGVtYS5kZWNpbWFsKC4uLilgLCBgU2NoZW1hLmFycmF5KC4uLilgKSBvciwgZm9yIGEgdHlwZSB0aGVcbiAqIGBTY2hlbWFgIGZhY3RvcmllcyBkb24ndCBtb2RlbCwgZnJvbSBgU2NoZW1hLmN1c3RvbSguLi4pYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGUge1xuICAvKipcbiAgICogQ3JlYXRlIGEgYFR5cGVgIGZyb20gaXRzIHBhcnRzLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgX29mKGlucHV0U3RyaW5nOiBzdHJpbmcsIGlzUHJpbWl0aXZlOiBib29sZWFuKTogVHlwZSB7XG4gICAgcmV0dXJuIG5ldyBUeXBlKGlucHV0U3RyaW5nLCBpc1ByaW1pdGl2ZSk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhpcyB0eXBlIGlzIGEgcHJpbWl0aXZlIGRhdGEgdHlwZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc1ByaW1pdGl2ZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2x1ZSBJbnB1dFN0cmluZyBmb3IgdGhpcyB0eXBlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlucHV0U3RyaW5nOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihpbnB1dFN0cmluZzogc3RyaW5nLCBpc1ByaW1pdGl2ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaW5wdXRTdHJpbmcgPSBpbnB1dFN0cmluZztcbiAgICB0aGlzLmlzUHJpbWl0aXZlID0gaXNQcmltaXRpdmU7XG4gIH1cbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2RhdGEtdHlwZXMuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgU2NoZW1hIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCT09MRUFOOiBUeXBlID0gVHlwZS5fb2YoJ2Jvb2xlYW4nLCB0cnVlKTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJJTkFSWTogVHlwZSA9IFR5cGUuX29mKCdiaW5hcnknLCB0cnVlKTtcblxuICAvKipcbiAgICogQSA2NC1iaXQgc2lnbmVkIElOVEVHRVIgaW4gdHdv4oCZcyBjb21wbGVtZW50IGZvcm1hdCwgd2l0aCBhIG1pbmltdW0gdmFsdWUgb2YgLTJeNjMgYW5kIGEgbWF4aW11bSB2YWx1ZSBvZiAyXjYzLTEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJJR19JTlQ6IFR5cGUgPSBUeXBlLl9vZignYmlnaW50JywgdHJ1ZSk7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBET1VCTEU6IFR5cGUgPSBUeXBlLl9vZignZG91YmxlJywgdHJ1ZSk7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGTE9BVDogVHlwZSA9IFR5cGUuX29mKCdmbG9hdCcsIHRydWUpO1xuXG4gIC8qKlxuICAgKiBBIDMyLWJpdCBzaWduZWQgSU5URUdFUiBpbiB0d2/igJlzIGNvbXBsZW1lbnQgZm9ybWF0LCB3aXRoIGEgbWluaW11bSB2YWx1ZSBvZiAtMl4zMSBhbmQgYSBtYXhpbXVtIHZhbHVlIG9mIDJeMzEtMS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5URUdFUjogVHlwZSA9IFR5cGUuX29mKCdpbnQnLCB0cnVlKTtcblxuICAvKipcbiAgICogQSAxNi1iaXQgc2lnbmVkIElOVEVHRVIgaW4gdHdv4oCZcyBjb21wbGVtZW50IGZvcm1hdCwgd2l0aCBhIG1pbmltdW0gdmFsdWUgb2YgLTJeMTUgYW5kIGEgbWF4aW11bSB2YWx1ZSBvZiAyXjE1LTEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNNQUxMX0lOVDogVHlwZSA9IFR5cGUuX29mKCdzbWFsbGludCcsIHRydWUpO1xuXG4gIC8qKlxuICAgKiBBIDgtYml0IHNpZ25lZCBJTlRFR0VSIGluIHR3b+KAmXMgY29tcGxlbWVudCBmb3JtYXQsIHdpdGggYSBtaW5pbXVtIHZhbHVlIG9mIC0yXjcgYW5kIGEgbWF4aW11bSB2YWx1ZSBvZiAyXjctMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUSU5ZX0lOVDogVHlwZSA9IFR5cGUuX29mKCd0aW55aW50JywgdHJ1ZSk7XG5cbiAgLyoqXG4gICAqIERhdGUgdHlwZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREFURTogVHlwZSA9IFR5cGUuX29mKCdkYXRlJywgdHJ1ZSk7XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCB0eXBlIChkYXRlIGFuZCB0aW1lKS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVElNRVNUQU1QOiBUeXBlID0gVHlwZS5fb2YoJ3RpbWVzdGFtcCcsIHRydWUpO1xuXG4gIC8qKlxuICAgKiBBcmJpdHJhcnktbGVuZ3RoIHN0cmluZyB0eXBlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTVFJJTkc6IFR5cGUgPSBUeXBlLl9vZignc3RyaW5nJywgdHJ1ZSk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBkZWNpbWFsIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBwcmVjaXNpb24gdGhlIHRvdGFsIG51bWJlciBvZiBkaWdpdHMsIGJldHdlZW4gMSBhbmQgMzhcbiAgICogQHBhcmFtIHNjYWxlIHRoZSBudW1iZXIgb2YgZGlnaXRzIGluIHRoZSBmcmFjdGlvbmFsIHBhcnQsIGJldHdlZW4gMCBhbmQgMzg7IHRoZSBkZWZhdWx0IGlzIDBcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXRoZW5hL2xhdGVzdC91Zy9kYXRhLXR5cGVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGVjaW1hbChwcmVjaXNpb246IG51bWJlciwgc2NhbGU/OiBudW1iZXIpOiBUeXBlIHtcbiAgICBpZiAoVG9rZW4uaXNSZXNvbHZlZChwcmVjaXNpb24pICYmIChwcmVjaXNpb24gPCAxIHx8IHByZWNpc2lvbiA+IDM4IHx8IHByZWNpc2lvbiAlIDEgIT09IDApKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IobGl0YERlY2ltYWxQcmVjaXNpb25PdXRPZlJhbmdlYCwgYGRlY2ltYWwgcHJlY2lzaW9uIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMzgsIGdvdCAke3ByZWNpc2lvbn1gKTtcbiAgICB9XG4gICAgaWYgKHNjYWxlICE9PSB1bmRlZmluZWQgJiYgVG9rZW4uaXNSZXNvbHZlZChzY2FsZSkgJiYgKHNjYWxlIDwgMCB8fCBzY2FsZSA+IDM4IHx8IHNjYWxlICUgMSAhPT0gMCkpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihsaXRgRGVjaW1hbFNjYWxlT3V0T2ZSYW5nZWAsIGBkZWNpbWFsIHNjYWxlIG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDM4LCBnb3QgJHtzY2FsZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIFR5cGUuX29mKHNjYWxlICE9PSB1bmRlZmluZWQgPyBgZGVjaW1hbCgke3ByZWNpc2lvbn0sJHtzY2FsZX0pYCA6IGBkZWNpbWFsKCR7cHJlY2lzaW9ufSlgLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXhlZCBsZW5ndGggY2hhcmFjdGVyIGRhdGEsIHdpdGggYSBzcGVjaWZpZWQgbGVuZ3RoIGJldHdlZW4gMSBhbmQgMjU1LlxuICAgKlxuICAgKiBAcGFyYW0gbGVuZ3RoIGxlbmd0aCBiZXR3ZWVuIDEgYW5kIDI1NVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjaGFyKGxlbmd0aDogbnVtYmVyKTogVHlwZSB7XG4gICAgaWYgKGxlbmd0aCA8PSAwIHx8IGxlbmd0aCA+IDI1NSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGxpdGBDaGFyTGVuZ3RoT3V0T2ZSYW5nZWAsIGBjaGFyIGxlbmd0aCBtdXN0IGJlIChpbmNsdXNpdmVseSkgYmV0d2VlbiAxIGFuZCAyNTUsIGJ1dCB3YXMgJHtsZW5ndGh9YCk7XG4gICAgfVxuICAgIGlmIChsZW5ndGggJSAxICE9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IobGl0YENoYXJMZW5ndGhOb3RJbnRlZ2VyYCwgYGNoYXIgbGVuZ3RoIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCB3YXMgJHtsZW5ndGh9YCk7XG4gICAgfVxuICAgIHJldHVybiBUeXBlLl9vZihgY2hhcigke2xlbmd0aH0pYCwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVmFyaWFibGUgbGVuZ3RoIGNoYXJhY3RlciBkYXRhLCB3aXRoIGEgc3BlY2lmaWVkIGxlbmd0aCBiZXR3ZWVuIDEgYW5kIDY1NTM1LlxuICAgKlxuICAgKiBAcGFyYW0gbGVuZ3RoIGxlbmd0aCBiZXR3ZWVuIDEgYW5kIDY1NTM1LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2YXJjaGFyKGxlbmd0aDogbnVtYmVyKTogVHlwZSB7XG4gICAgaWYgKGxlbmd0aCA8PSAwIHx8IGxlbmd0aCA+IDY1NTM1KSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IobGl0YFZhcmNoYXJMZW5ndGhPdXRPZlJhbmdlYCwgYHZhcmNoYXIgbGVuZ3RoIG11c3QgYmUgKGluY2x1c2l2ZWx5KSBiZXR3ZWVuIDEgYW5kIDY1NTM1LCBidXQgd2FzICR7bGVuZ3RofWApO1xuICAgIH1cbiAgICBpZiAobGVuZ3RoICUgMSAhPT0gMCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGxpdGBWYXJjaGFyTGVuZ3RoTm90SW50ZWdlcmAsIGB2YXJjaGFyIGxlbmd0aCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgd2FzICR7bGVuZ3RofWApO1xuICAgIH1cbiAgICByZXR1cm4gVHlwZS5fb2YoYHZhcmNoYXIoJHtsZW5ndGh9KWAsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygc29tZSBvdGhlciB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbVR5cGUgdHlwZSBjb250YWluZWQgYnkgdGhlIGFycmF5LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhcnJheShpdGVtVHlwZTogVHlwZSk6IFR5cGUge1xuICAgIHJldHVybiBUeXBlLl9vZihgYXJyYXk8JHtpdGVtVHlwZS5pbnB1dFN0cmluZ30+YCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBtYXAgb2Ygc29tZSBwcmltaXRpdmUga2V5IHR5cGUgdG8gc29tZSB2YWx1ZSB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5VHlwZSB0eXBlIG9mIGtleSwgbXVzdCBiZSBhIHByaW1pdGl2ZS5cbiAgICogQHBhcmFtIHZhbHVlVHlwZSB0eXBlIGZvIHRoZSB2YWx1ZSBpbmRleGVkIGJ5IHRoZSBrZXkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1hcChrZXlUeXBlOiBUeXBlLCB2YWx1ZVR5cGU6IFR5cGUpOiBUeXBlIHtcbiAgICBpZiAoIWtleVR5cGUuaXNQcmltaXRpdmUpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihsaXRgTWFwS2V5VHlwZU5vdFByaW1pdGl2ZWAsIGB0aGUga2V5IHR5cGUgb2YgYSAnbWFwJyBtdXN0IGJlIGEgcHJpbWl0aXZlLCBidXQgd2FzICR7a2V5VHlwZS5pbnB1dFN0cmluZ31gKTtcbiAgICB9XG4gICAgcmV0dXJuIFR5cGUuX29mKGBtYXA8JHtrZXlUeXBlLmlucHV0U3RyaW5nfSwke3ZhbHVlVHlwZS5pbnB1dFN0cmluZ30+YCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXN0ZWQgc3RydWN0dXJlIGNvbnRhaW5pbmcgaW5kaXZpZHVhbGx5IG5hbWVkIGFuZCB0eXBlZCBjb2x1bW5zLlxuICAgKlxuICAgKiBAcGFyYW0gY29sdW1ucyB0aGUgY29sdW1ucyBvZiB0aGUgc3RydWN0dXJlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdHJ1Y3QoY29sdW1uczogQ29sdW1uW10pOiBUeXBlIHtcbiAgICByZXR1cm4gVHlwZS5fb2YoYHN0cnVjdDwke2NvbHVtbnMubWFwKGNvbHVtbiA9PiB7XG4gICAgICByZXR1cm4gYCR7Y29sdW1uLm5hbWV9OiR7Y29sdW1uLnR5cGUuaW5wdXRTdHJpbmd9YDtcbiAgICB9KS5qb2luKCcsJyl9PmAsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgY3VzdG9tIHR5cGUgZnJvbSBhIHJhdyBHbHVlIGlucHV0IHN0cmluZy5cbiAgICpcbiAgICogRXNjYXBlIGhhdGNoIGZvciBjb2x1bW4gdHlwZXMgdGhlIG90aGVyIGBTY2hlbWFgIGZhY3RvcmllcyBkb24ndCBtb2RlbC4gVGhlXG4gICAqIGBpbnB1dFN0cmluZ2AgaXMgZW1pdHRlZCB2ZXJiYXRpbSBhbmQgaXMgbm90IHZhbGlkYXRlZC5cbiAgICpcbiAgICogQHBhcmFtIGlucHV0U3RyaW5nIHRoZSBHbHVlIGlucHV0IHN0cmluZyBmb3IgdGhlIHR5cGUgKGZvciBleGFtcGxlIGBpbnRlcnZhbF9kYXlfdG9fc2Vjb25kYCkuXG4gICAqIEBwYXJhbSBpc1ByaW1pdGl2ZSB3aGV0aGVyIHRoZSB0eXBlIGlzIGEgcHJpbWl0aXZlIChub24tbmVzdGVkKSBkYXRhIHR5cGUuIERlZmF1bHRzIHRvIHRydWUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGN1c3RvbShpbnB1dFN0cmluZzogc3RyaW5nLCBpc1ByaW1pdGl2ZT86IGJvb2xlYW4pOiBUeXBlIHtcbiAgICByZXR1cm4gVHlwZS5fb2YoaW5wdXRTdHJpbmcsIGlzUHJpbWl0aXZlID8/IHRydWUpO1xuICB9XG59XG4iXX0=
@@ -30,70 +30,64 @@ export declare enum S3EncryptionMode {
30
30
  KMS = "SSE-KMS"
31
31
  }
32
32
  /**
33
- * Encryption mode for CloudWatch Logs.
34
- * @see https://docs.aws.amazon.com/glue/latest/webapi/API_CloudWatchEncryption.html#Glue-Type-CloudWatchEncryption-CloudWatchEncryptionMode
33
+ * S3 encryption configuration for a `SecurityConfiguration`.
34
+ *
35
+ * Use {@link S3Encryption.s3Managed} for SSE-S3 or {@link S3Encryption.kms} for
36
+ * SSE-KMS. Because these are separate factories, a KMS key can never be paired
37
+ * with S3-managed encryption.
35
38
  */
36
- export declare enum CloudWatchEncryptionMode {
39
+ export declare class S3Encryption {
37
40
  /**
38
- * Server-side encryption (SSE) with an AWS KMS key managed by the account owner.
41
+ * Server-side encryption (SSE) with an Amazon S3-managed key.
39
42
  *
40
- * @see https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html
43
+ * @see https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
41
44
  */
42
- KMS = "SSE-KMS"
43
- }
44
- /**
45
- * Encryption mode for Job Bookmarks.
46
- * @see https://docs.aws.amazon.com/glue/latest/webapi/API_JobBookmarksEncryption.html#Glue-Type-JobBookmarksEncryption-JobBookmarksEncryptionMode
47
- */
48
- export declare enum JobBookmarksEncryptionMode {
45
+ static s3Managed(): S3Encryption;
49
46
  /**
50
- * Client-side encryption (CSE) with an AWS KMS key managed by the account owner.
47
+ * Server-side encryption (SSE) with an AWS KMS key managed by the account owner.
51
48
  *
52
- * @see https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
53
- */
54
- CLIENT_SIDE_KMS = "CSE-KMS"
55
- }
56
- /**
57
- * S3 encryption configuration.
58
- */
59
- export interface S3Encryption {
60
- /**
61
- * Encryption mode.
62
- */
63
- readonly mode: S3EncryptionMode;
64
- /**
65
- * The KMS key to be used to encrypt the data.
66
- * @default no kms key if mode = S3_MANAGED. A key will be created if one is not provided and mode = KMS.
49
+ * @param kmsKey the KMS key used to encrypt the data. A key is created if one is not provided.
50
+ * @see https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html
67
51
  */
68
- readonly kmsKey?: kms.IKeyRef;
52
+ static kms(kmsKey?: kms.IKeyRef): S3Encryption;
53
+ /** @internal */
54
+ readonly _mode: S3EncryptionMode;
55
+ /** @internal */
56
+ readonly _kmsKey?: kms.IKeyRef;
57
+ private constructor();
69
58
  }
70
59
  /**
71
- * CloudWatch Logs encryption configuration.
60
+ * CloudWatch Logs encryption configuration for a `SecurityConfiguration`.
61
+ *
62
+ * CloudWatch Logs support only server-side encryption with a KMS key.
72
63
  */
73
- export interface CloudWatchEncryption {
74
- /**
75
- * Encryption mode
76
- */
77
- readonly mode: CloudWatchEncryptionMode;
64
+ export declare class CloudWatchEncryption {
78
65
  /**
79
- * The KMS key to be used to encrypt the data.
80
- * @default A key will be created if one is not provided.
66
+ * Server-side encryption (SSE) with an AWS KMS key managed by the account owner.
67
+ *
68
+ * @param kmsKey the KMS key used to encrypt the data. A key is created if one is not provided.
81
69
  */
82
- readonly kmsKey?: kms.IKeyRef;
70
+ static kms(kmsKey?: kms.IKeyRef): CloudWatchEncryption;
71
+ /** @internal */
72
+ readonly _kmsKey?: kms.IKeyRef;
73
+ private constructor();
83
74
  }
84
75
  /**
85
- * Job bookmarks encryption configuration.
76
+ * Job bookmarks encryption configuration for a `SecurityConfiguration`.
77
+ *
78
+ * Job bookmarks support only client-side encryption with a KMS key.
86
79
  */
87
- export interface JobBookmarksEncryption {
88
- /**
89
- * Encryption mode.
90
- */
91
- readonly mode: JobBookmarksEncryptionMode;
80
+ export declare class JobBookmarksEncryption {
92
81
  /**
93
- * The KMS key to be used to encrypt the data.
94
- * @default A key will be created if one is not provided.
82
+ * Client-side encryption (CSE) with an AWS KMS key managed by the account owner.
83
+ *
84
+ * @param kmsKey the KMS key used to encrypt the data. A key is created if one is not provided.
85
+ * @see https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html
95
86
  */
96
- readonly kmsKey?: kms.IKeyRef;
87
+ static clientSideKms(kmsKey?: kms.IKeyRef): JobBookmarksEncryption;
88
+ /** @internal */
89
+ readonly _kmsKey?: kms.IKeyRef;
90
+ private constructor();
97
91
  }
98
92
  /**
99
93
  * Constructions properties of `SecurityConfiguration`.