@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.
- package/.jsii +982 -776
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +25 -91
- package/README.md +158 -72
- package/awslint.json +6 -1
- package/lib/catalog.js +3 -3
- package/lib/code.js +3 -3
- package/lib/connection.d.ts +41 -1
- package/lib/connection.js +48 -9
- package/lib/data-format.d.ts +2 -2
- package/lib/data-format.js +8 -8
- package/lib/data-quality-ruleset.d.ts +28 -3
- package/lib/data-quality-ruleset.js +37 -5
- package/lib/database.d.ts +1 -1
- package/lib/database.js +2 -2
- package/lib/external-table.js +6 -4
- package/lib/index.d.ts +0 -1
- package/lib/index.js +1 -2
- package/lib/jobs/job.d.ts +1 -24
- package/lib/jobs/job.js +3 -3
- package/lib/jobs/pyspark-etl-job.d.ts +2 -1
- package/lib/jobs/pyspark-etl-job.js +10 -5
- package/lib/jobs/pyspark-flex-etl-job.d.ts +3 -2
- package/lib/jobs/pyspark-flex-etl-job.js +7 -6
- package/lib/jobs/pyspark-streaming-job.d.ts +2 -1
- package/lib/jobs/pyspark-streaming-job.js +6 -5
- package/lib/jobs/python-shell-job.js +1 -1
- package/lib/jobs/ray-job.d.ts +8 -0
- package/lib/jobs/ray-job.js +3 -7
- package/lib/jobs/scala-spark-etl-job.js +4 -8
- package/lib/jobs/scala-spark-flex-etl-job.js +4 -4
- package/lib/jobs/scala-spark-streaming-job.js +4 -8
- package/lib/jobs/spark-job.d.ts +26 -0
- package/lib/jobs/spark-job.js +2 -2
- package/lib/partition-projection.d.ts +8 -8
- package/lib/partition-projection.js +49 -2
- package/lib/s3-table.d.ts +83 -39
- package/lib/s3-table.js +136 -86
- package/lib/schema.d.ts +26 -6
- package/lib/schema.js +74 -82
- package/lib/security-configuration.d.ts +41 -47
- package/lib/security-configuration.js +83 -25
- package/lib/storage-parameter.d.ts +14 -3
- package/lib/storage-parameter.js +16 -6
- package/lib/table-base.d.ts +34 -1
- package/lib/table-base.js +33 -2
- package/lib/triggers/trigger-options.js +1 -1
- package/lib/triggers/workflow.js +2 -2
- package/package.json +7 -7
- package/lib/table-deprecated.d.ts +0 -13
- 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.
|
|
13
|
-
static BOOLEAN =
|
|
14
|
-
|
|
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
|
-
|
|
26
|
-
|
|
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
|
-
*
|
|
82
|
-
*
|
|
83
|
-
* @
|
|
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
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
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
|
-
*
|
|
34
|
-
*
|
|
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
|
|
39
|
+
export declare class S3Encryption {
|
|
37
40
|
/**
|
|
38
|
-
* Server-side encryption (SSE) with an
|
|
41
|
+
* Server-side encryption (SSE) with an Amazon S3-managed key.
|
|
39
42
|
*
|
|
40
|
-
* @see https://docs.aws.amazon.com/AmazonS3/latest/dev/
|
|
43
|
+
* @see https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
|
|
41
44
|
*/
|
|
42
|
-
|
|
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
|
-
*
|
|
47
|
+
* Server-side encryption (SSE) with an AWS KMS key managed by the account owner.
|
|
51
48
|
*
|
|
52
|
-
* @
|
|
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
|
-
|
|
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
|
|
74
|
-
/**
|
|
75
|
-
* Encryption mode
|
|
76
|
-
*/
|
|
77
|
-
readonly mode: CloudWatchEncryptionMode;
|
|
64
|
+
export declare class CloudWatchEncryption {
|
|
78
65
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
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
|
-
|
|
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
|
|
88
|
-
/**
|
|
89
|
-
* Encryption mode.
|
|
90
|
-
*/
|
|
91
|
-
readonly mode: JobBookmarksEncryptionMode;
|
|
80
|
+
export declare class JobBookmarksEncryption {
|
|
92
81
|
/**
|
|
93
|
-
*
|
|
94
|
-
*
|
|
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
|
-
|
|
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`.
|