@aws-cdk/aws-glue-alpha 2.266.0-alpha.0 → 2.268.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 +1002 -642
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +0 -58
- package/README.md +52 -33
- package/awslint.json +4 -0
- package/lib/catalog.d.ts +2 -2
- package/lib/catalog.js +4 -4
- package/lib/code.js +3 -3
- package/lib/connection.d.ts +41 -1
- package/lib/connection.js +48 -9
- package/lib/data-format.js +5 -5
- package/lib/data-quality-ruleset.d.ts +20 -9
- package/lib/data-quality-ruleset.js +33 -6
- package/lib/database.d.ts +3 -1
- package/lib/database.js +8 -2
- package/lib/external-table.js +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.js +1 -2
- package/lib/jobs/job.d.ts +1 -1
- package/lib/jobs/job.js +3 -3
- package/lib/jobs/pyspark-etl-job.d.ts +1 -1
- package/lib/jobs/pyspark-etl-job.js +3 -3
- package/lib/jobs/pyspark-flex-etl-job.d.ts +1 -1
- package/lib/jobs/pyspark-flex-etl-job.js +3 -3
- package/lib/jobs/pyspark-streaming-job.d.ts +1 -1
- package/lib/jobs/pyspark-streaming-job.js +3 -3
- package/lib/jobs/python-shell-job.js +1 -1
- package/lib/jobs/ray-job.js +1 -1
- package/lib/jobs/scala-spark-etl-job.d.ts +3 -2
- package/lib/jobs/scala-spark-etl-job.js +5 -4
- package/lib/jobs/scala-spark-flex-etl-job.d.ts +11 -20
- package/lib/jobs/scala-spark-flex-etl-job.js +12 -11
- package/lib/jobs/scala-spark-streaming-job.d.ts +3 -2
- package/lib/jobs/scala-spark-streaming-job.js +5 -4
- package/lib/jobs/spark-job.js +1 -1
- package/lib/partition-projection.d.ts +8 -8
- package/lib/partition-projection.js +49 -2
- package/lib/s3-table.d.ts +86 -40
- package/lib/s3-table.js +136 -85
- package/lib/schema.d.ts +26 -6
- package/lib/schema.js +74 -77
- package/lib/security-configuration.js +4 -4
- package/lib/storage-parameter.d.ts +14 -3
- package/lib/storage-parameter.js +16 -6
- package/lib/table-base.d.ts +1 -1
- package/lib/table-base.js +2 -2
- package/lib/triggers/trigger-options.d.ts +1 -1
- package/lib/triggers/trigger-options.js +2 -2
- 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/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
package/.warnings.jsii.js
CHANGED
|
@@ -46,35 +46,6 @@ const VALIDATORS = { _aws_cdk_aws_glue_alpha_CatalogEncryptionOptions: function
|
|
|
46
46
|
finally {
|
|
47
47
|
visitedObjects.delete(p);
|
|
48
48
|
}
|
|
49
|
-
}, _aws_cdk_aws_glue_alpha_S3TableProps: function _aws_cdk_aws_glue_alpha_S3TableProps(p) {
|
|
50
|
-
if (p == null)
|
|
51
|
-
return;
|
|
52
|
-
visitedObjects.add(p);
|
|
53
|
-
try {
|
|
54
|
-
if (p.columns != null)
|
|
55
|
-
for (const o of p.columns)
|
|
56
|
-
if (!visitedObjects.has(o))
|
|
57
|
-
module.exports._aws_cdk_aws_glue_alpha_Column(o);
|
|
58
|
-
if (p.partitionIndexes != null)
|
|
59
|
-
for (const o of p.partitionIndexes)
|
|
60
|
-
if (!visitedObjects.has(o))
|
|
61
|
-
module.exports._aws_cdk_aws_glue_alpha_PartitionIndex(o);
|
|
62
|
-
if (p.partitionKeys != null)
|
|
63
|
-
for (const o of p.partitionKeys)
|
|
64
|
-
if (!visitedObjects.has(o))
|
|
65
|
-
module.exports._aws_cdk_aws_glue_alpha_Column(o);
|
|
66
|
-
if (p.partitionProjection != null)
|
|
67
|
-
for (const o of Object.values(p.partitionProjection))
|
|
68
|
-
if (!visitedObjects.has(o))
|
|
69
|
-
module.exports._aws_cdk_aws_glue_alpha_PartitionProjectionConfiguration(o);
|
|
70
|
-
if (p.storageParameters != null)
|
|
71
|
-
for (const o of p.storageParameters)
|
|
72
|
-
if (!visitedObjects.has(o))
|
|
73
|
-
module.exports._aws_cdk_aws_glue_alpha_StorageParameter(o);
|
|
74
|
-
}
|
|
75
|
-
finally {
|
|
76
|
-
visitedObjects.delete(p);
|
|
77
|
-
}
|
|
78
49
|
}, _aws_cdk_aws_glue_alpha_WorkerType: function _aws_cdk_aws_glue_alpha_WorkerType(p) {
|
|
79
50
|
if (p == null)
|
|
80
51
|
return;
|
|
@@ -374,35 +345,6 @@ const VALIDATORS = { _aws_cdk_aws_glue_alpha_CatalogEncryptionOptions: function
|
|
|
374
345
|
finally {
|
|
375
346
|
visitedObjects.delete(p);
|
|
376
347
|
}
|
|
377
|
-
}, _aws_cdk_aws_glue_alpha_TableProps: function _aws_cdk_aws_glue_alpha_TableProps(p) {
|
|
378
|
-
if (p == null)
|
|
379
|
-
return;
|
|
380
|
-
visitedObjects.add(p);
|
|
381
|
-
try {
|
|
382
|
-
if (p.columns != null)
|
|
383
|
-
for (const o of p.columns)
|
|
384
|
-
if (!visitedObjects.has(o))
|
|
385
|
-
module.exports._aws_cdk_aws_glue_alpha_Column(o);
|
|
386
|
-
if (p.partitionIndexes != null)
|
|
387
|
-
for (const o of p.partitionIndexes)
|
|
388
|
-
if (!visitedObjects.has(o))
|
|
389
|
-
module.exports._aws_cdk_aws_glue_alpha_PartitionIndex(o);
|
|
390
|
-
if (p.partitionKeys != null)
|
|
391
|
-
for (const o of p.partitionKeys)
|
|
392
|
-
if (!visitedObjects.has(o))
|
|
393
|
-
module.exports._aws_cdk_aws_glue_alpha_Column(o);
|
|
394
|
-
if (p.partitionProjection != null)
|
|
395
|
-
for (const o of Object.values(p.partitionProjection))
|
|
396
|
-
if (!visitedObjects.has(o))
|
|
397
|
-
module.exports._aws_cdk_aws_glue_alpha_PartitionProjectionConfiguration(o);
|
|
398
|
-
if (p.storageParameters != null)
|
|
399
|
-
for (const o of p.storageParameters)
|
|
400
|
-
if (!visitedObjects.has(o))
|
|
401
|
-
module.exports._aws_cdk_aws_glue_alpha_StorageParameter(o);
|
|
402
|
-
}
|
|
403
|
-
finally {
|
|
404
|
-
visitedObjects.delete(p);
|
|
405
|
-
}
|
|
406
348
|
}, _aws_cdk_aws_glue_alpha_TriggerOptions: function _aws_cdk_aws_glue_alpha_TriggerOptions(p) {
|
|
407
349
|
if (p == null)
|
|
408
350
|
return;
|
package/README.md
CHANGED
|
@@ -71,7 +71,7 @@ for more granular details.
|
|
|
71
71
|
#### ETL Jobs
|
|
72
72
|
|
|
73
73
|
ETL jobs support pySpark and Scala languages, for which there are separate but
|
|
74
|
-
similar constructors. ETL jobs default to the
|
|
74
|
+
similar constructors. ETL jobs default to the G1 worker type, but you can
|
|
75
75
|
override this default with other supported worker type values (G1, G2, G4
|
|
76
76
|
and G8). ETL jobs defaults to Glue version 4.0, which you can override to 3.0.
|
|
77
77
|
The following ETL features are enabled by default:
|
|
@@ -140,7 +140,7 @@ Streaming jobs are similar to ETL jobs, except that they perform ETL on data
|
|
|
140
140
|
streams using the Apache Spark Structured Streaming framework. Some Spark
|
|
141
141
|
job features are not available to Streaming ETL jobs. They support Scala
|
|
142
142
|
and pySpark languages. PySpark streaming jobs run on Python 3. It
|
|
143
|
-
defaults to the
|
|
143
|
+
defaults to the G1 worker type and Glue 4.0, both of which you can override.
|
|
144
144
|
The following best practice features are enabled by default:
|
|
145
145
|
`—enable-metrics, —enable-continuous-cloudwatch-log`.
|
|
146
146
|
The Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the
|
|
@@ -197,7 +197,7 @@ new glue.PySparkStreamingJob(stack, 'PySparkStreamingJob', {
|
|
|
197
197
|
|
|
198
198
|
The flexible execution class is appropriate for non-urgent jobs such as
|
|
199
199
|
pre-production jobs, testing, and one-time data loads. Flexible jobs default
|
|
200
|
-
to Glue version 5.0 and worker type `
|
|
200
|
+
to Glue version 5.0 and worker type `G_1X`. The following best practice
|
|
201
201
|
features are enabled by default:
|
|
202
202
|
`—enable-metrics, —enable-continuous-cloudwatch-log`
|
|
203
203
|
The Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the
|
|
@@ -445,18 +445,21 @@ A `Connection` allows Glue jobs, crawlers and development endpoints to access
|
|
|
445
445
|
certain types of data stores.
|
|
446
446
|
|
|
447
447
|
* **Secrets Management**
|
|
448
|
-
|
|
449
|
-
|
|
448
|
+
Manage JDBC connection credentials in Secrets Manager and pass the secret
|
|
449
|
+
to the connection via the `secret` property (see the example below), rather
|
|
450
|
+
than embedding credentials in `properties`.
|
|
450
451
|
|
|
451
452
|
* **Networking - the CDK determines the best fit subnet for Glue connection
|
|
452
453
|
configuration**
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
454
|
+
You can specify the exact subnet of the Connection when it's defined, but
|
|
455
|
+
you are not required to. Instead, you can provide a `vpc` and, optionally, a
|
|
456
|
+
`vpcSubnets` selection, and the L2 leverages the existing
|
|
457
|
+
[EC2 Subnet Selection](https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_ec2/SubnetSelection.html)
|
|
458
|
+
library to make the best choice selection for the subnet. A Glue connection
|
|
459
|
+
targets a single subnet, so the first subnet of the selection is used.
|
|
460
|
+
`subnet` and `vpc` are mutually exclusive.
|
|
461
|
+
|
|
462
|
+
Pin the connection to a specific subnet:
|
|
460
463
|
|
|
461
464
|
```ts
|
|
462
465
|
declare const securityGroup: ec2.SecurityGroup;
|
|
@@ -470,7 +473,21 @@ new glue.Connection(this, 'MyConnection', {
|
|
|
470
473
|
});
|
|
471
474
|
```
|
|
472
475
|
|
|
473
|
-
|
|
476
|
+
Or let the CDK select a subnet from a VPC:
|
|
477
|
+
|
|
478
|
+
```ts
|
|
479
|
+
declare const securityGroup: ec2.SecurityGroup;
|
|
480
|
+
declare const vpc: ec2.Vpc;
|
|
481
|
+
new glue.Connection(this, 'MyConnection', {
|
|
482
|
+
type: glue.ConnectionType.NETWORK,
|
|
483
|
+
securityGroups: [securityGroup],
|
|
484
|
+
vpc,
|
|
485
|
+
// Optional - defaults to private subnets
|
|
486
|
+
vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },
|
|
487
|
+
});
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
For RDS `Connection` by JDBC, it is recommended to manage credentials using AWS Secrets Manager. Pass the secret via the `secret` property: Glue reads the credentials at runtime through the connection's `SECRET_ID`, so the secret value never enters the template. Note that in this case, the subnet must have a route to the AWS Secrets Manager VPC endpoint or to the AWS Secrets Manager endpoint through a NAT gateway.
|
|
474
491
|
|
|
475
492
|
```ts
|
|
476
493
|
declare const securityGroup: ec2.SecurityGroup;
|
|
@@ -480,18 +497,18 @@ new glue.Connection(this, "RdsConnection", {
|
|
|
480
497
|
type: glue.ConnectionType.JDBC,
|
|
481
498
|
securityGroups: [securityGroup],
|
|
482
499
|
subnet,
|
|
500
|
+
secret: db.secret,
|
|
483
501
|
properties: {
|
|
484
502
|
JDBC_CONNECTION_URL: `jdbc:mysql://${db.clusterEndpoint.socketAddress}/databasename`,
|
|
485
503
|
JDBC_ENFORCE_SSL: "false",
|
|
486
|
-
SECRET_ID: db.secret!.secretName,
|
|
487
504
|
},
|
|
488
505
|
});
|
|
489
506
|
```
|
|
490
507
|
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
`
|
|
508
|
+
Prefer the `secret` property over placing credentials in `properties`. Connection
|
|
509
|
+
`properties` are emitted verbatim into the CloudFormation template, so any
|
|
510
|
+
credential placed there in plaintext is stored in plaintext in the template,
|
|
511
|
+
`cdk.out`, and source control. If a property key looks like a credential (for
|
|
495
512
|
example `PASSWORD`, `SECRET`, or `TOKEN`) and holds a plaintext literal, the
|
|
496
513
|
construct emits a synthesis-time warning.
|
|
497
514
|
|
|
@@ -724,13 +741,13 @@ new glue.S3Table(this, 'MyTable', {
|
|
|
724
741
|
});
|
|
725
742
|
```
|
|
726
743
|
|
|
727
|
-
By default, a S3 bucket will be created to store the table's data but you can
|
|
744
|
+
By default, a S3 bucket will be created to store the table's data but you can bring your own with `S3TableStorage.fromBucket` and set an `s3Prefix`:
|
|
728
745
|
|
|
729
746
|
```ts
|
|
730
747
|
declare const myBucket: s3.Bucket;
|
|
731
748
|
declare const myDatabase: glue.Database;
|
|
732
749
|
new glue.S3Table(this, 'MyTable', {
|
|
733
|
-
|
|
750
|
+
storage: glue.S3TableStorage.fromBucket(myBucket),
|
|
734
751
|
s3Prefix: 'my-table/',
|
|
735
752
|
// ...
|
|
736
753
|
database: myDatabase,
|
|
@@ -1081,10 +1098,11 @@ Data Quality Definition Language (DQDL) — that are evaluated against a table i
|
|
|
1081
1098
|
the Data Catalog.
|
|
1082
1099
|
|
|
1083
1100
|
```ts
|
|
1101
|
+
declare const database: glue.IDatabase;
|
|
1084
1102
|
new glue.DataQualityRuleset(this, 'MyRuleset', {
|
|
1085
1103
|
rulesetName: 'my_ruleset',
|
|
1086
1104
|
dqdl: glue.Dqdl.fromString('Rules = [ RowCount > 100, IsComplete "order_id" ]'),
|
|
1087
|
-
targetTable:
|
|
1105
|
+
targetTable: glue.DataQualityTargetTable.fromTableName(database, 'my_table'),
|
|
1088
1106
|
});
|
|
1089
1107
|
```
|
|
1090
1108
|
|
|
@@ -1095,16 +1113,17 @@ full rule syntax.
|
|
|
1095
1113
|
|
|
1096
1114
|
## [Encryption](https://docs.aws.amazon.com/athena/latest/ug/encryption.html)
|
|
1097
1115
|
|
|
1098
|
-
When the table creates its own S3 bucket (
|
|
1116
|
+
When the table creates its own S3 bucket (`S3TableStorage.managedBucket`, the default), that bucket enforces SSL: a bucket policy denies any request made over plain HTTP. If you bring your own bucket with `S3TableStorage.fromBucket`, enabling `enforceSSL` on it is your responsibility.
|
|
1099
1117
|
|
|
1100
|
-
|
|
1118
|
+
Server-side encryption applies only to a bucket the table manages. Choose it with
|
|
1119
|
+
`storage: glue.S3TableStorage.managedBucket(...)`:
|
|
1101
1120
|
|
|
1102
1121
|
* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - (default) Server side encryption (`SSE-S3`) with an Amazon S3-managed key.
|
|
1103
1122
|
|
|
1104
1123
|
```ts
|
|
1105
1124
|
declare const myDatabase: glue.Database;
|
|
1106
1125
|
new glue.S3Table(this, 'MyTable', {
|
|
1107
|
-
|
|
1126
|
+
storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.s3Managed()),
|
|
1108
1127
|
// ...
|
|
1109
1128
|
database: myDatabase,
|
|
1110
1129
|
columns: [{
|
|
@@ -1121,7 +1140,7 @@ new glue.S3Table(this, 'MyTable', {
|
|
|
1121
1140
|
declare const myDatabase: glue.Database;
|
|
1122
1141
|
// KMS key is created automatically
|
|
1123
1142
|
new glue.S3Table(this, 'MyTable', {
|
|
1124
|
-
|
|
1143
|
+
storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.kms()),
|
|
1125
1144
|
// ...
|
|
1126
1145
|
database: myDatabase,
|
|
1127
1146
|
columns: [{
|
|
@@ -1133,8 +1152,7 @@ new glue.S3Table(this, 'MyTable', {
|
|
|
1133
1152
|
|
|
1134
1153
|
// with an explicit KMS key
|
|
1135
1154
|
new glue.S3Table(this, 'MyTable', {
|
|
1136
|
-
|
|
1137
|
-
encryptionKey: new kms.Key(this, 'MyKey'),
|
|
1155
|
+
storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.kms(new kms.Key(this, 'MyKey'))),
|
|
1138
1156
|
// ...
|
|
1139
1157
|
database: myDatabase,
|
|
1140
1158
|
columns: [{
|
|
@@ -1150,7 +1168,7 @@ new glue.S3Table(this, 'MyTable', {
|
|
|
1150
1168
|
```ts
|
|
1151
1169
|
declare const myDatabase: glue.Database;
|
|
1152
1170
|
new glue.S3Table(this, 'MyTable', {
|
|
1153
|
-
|
|
1171
|
+
storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.kmsManaged()),
|
|
1154
1172
|
// ...
|
|
1155
1173
|
database: myDatabase,
|
|
1156
1174
|
columns: [{
|
|
@@ -1161,13 +1179,13 @@ new glue.S3Table(this, 'MyTable', {
|
|
|
1161
1179
|
});
|
|
1162
1180
|
```
|
|
1163
1181
|
|
|
1164
|
-
|
|
1182
|
+
Client-side encryption ([CSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html#client-side-encryption-kms-managed-master-key-intro)) is independent of the bucket's server-side encryption and works with either a managed or an existing bucket. Configure it with `clientSideEncryption`:
|
|
1165
1183
|
|
|
1166
1184
|
```ts
|
|
1167
1185
|
declare const myDatabase: glue.Database;
|
|
1168
1186
|
// KMS key is created automatically
|
|
1169
1187
|
new glue.S3Table(this, 'MyTable', {
|
|
1170
|
-
|
|
1188
|
+
clientSideEncryption: glue.TableClientSideEncryption.kms(),
|
|
1171
1189
|
// ...
|
|
1172
1190
|
database: myDatabase,
|
|
1173
1191
|
columns: [{
|
|
@@ -1179,8 +1197,7 @@ new glue.S3Table(this, 'MyTable', {
|
|
|
1179
1197
|
|
|
1180
1198
|
// with an explicit KMS key
|
|
1181
1199
|
new glue.S3Table(this, 'MyTable', {
|
|
1182
|
-
|
|
1183
|
-
encryptionKey: new kms.Key(this, 'MyKey'),
|
|
1200
|
+
clientSideEncryption: glue.TableClientSideEncryption.kms(new kms.Key(this, 'MyKey')),
|
|
1184
1201
|
// ...
|
|
1185
1202
|
database: myDatabase,
|
|
1186
1203
|
columns: [{
|
|
@@ -1191,7 +1208,7 @@ new glue.S3Table(this, 'MyTable', {
|
|
|
1191
1208
|
});
|
|
1192
1209
|
```
|
|
1193
1210
|
|
|
1194
|
-
|
|
1211
|
+
To store the table's data in an existing bucket, use `glue.S3TableStorage.fromBucket(bucket)`. CDK does not manage that bucket's server-side encryption, so an encryption choice can never be paired with a provided bucket — but client-side encryption still applies.
|
|
1195
1212
|
|
|
1196
1213
|
### Marking table data as encrypted
|
|
1197
1214
|
|
|
@@ -1250,6 +1267,8 @@ new glue.S3Table(this, 'MyTable', {
|
|
|
1250
1267
|
});
|
|
1251
1268
|
```
|
|
1252
1269
|
|
|
1270
|
+
For a type the `Schema` factories don't model, use `glue.Schema.custom('...')`, which takes the raw Glue input string.
|
|
1271
|
+
|
|
1253
1272
|
## Public FAQ
|
|
1254
1273
|
|
|
1255
1274
|
### What are we launching today?
|
package/awslint.json
CHANGED
|
@@ -110,6 +110,10 @@
|
|
|
110
110
|
"interface-extends-ref:@aws-cdk/aws-glue-alpha.ITable",
|
|
111
111
|
"interface-extends-ref:@aws-cdk/aws-glue-alpha.IWorkflow",
|
|
112
112
|
"prefer-ref-interface:@aws-cdk/aws-glue-alpha.DatabaseProps.catalog",
|
|
113
|
+
"prefer-ref-interface:@aws-cdk/aws-glue-alpha.ConnectionProps.vpc",
|
|
114
|
+
"prefer-ref-interface:aws-cdk-lib.aws_ec2.ClientVpnEndpointOptions.securityGroups",
|
|
115
|
+
"prefer-ref-interface:aws-cdk-lib.aws_ec2.SubnetSelection.subnets",
|
|
116
|
+
"prefer-ref-interface:aws-cdk-lib.aws_ec2.InterfaceVpcEndpointOptions.securityGroups",
|
|
113
117
|
"no-unused-type:@aws-cdk/aws-glue-alpha.S3EncryptionMode"
|
|
114
118
|
]
|
|
115
119
|
}
|
package/lib/catalog.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export declare class DataCatalogEncryptionAtRest {
|
|
|
44
44
|
* @param key the KMS key to use. If omitted, an AWS-managed key is used and
|
|
45
45
|
* the key is not exposed as a grantable resource.
|
|
46
46
|
*/
|
|
47
|
-
static kms(key?: kms.
|
|
47
|
+
static kms(key?: kms.IKeyRef): DataCatalogEncryptionAtRest;
|
|
48
48
|
/**
|
|
49
49
|
* Encrypt the Data Catalog at rest with an AWS KMS key, accessed through a
|
|
50
50
|
* service role that AWS Glue assumes on your behalf.
|
|
@@ -56,7 +56,7 @@ export declare class DataCatalogEncryptionAtRest {
|
|
|
56
56
|
* @param key the KMS key to use. If omitted, an AWS-managed key is used and
|
|
57
57
|
* the key is not exposed as a grantable resource.
|
|
58
58
|
*/
|
|
59
|
-
static kmsWithServiceRole(role: iam.IRole, key?: kms.
|
|
59
|
+
static kmsWithServiceRole(role: iam.IRole, key?: kms.IKeyRef): DataCatalogEncryptionAtRest;
|
|
60
60
|
/**
|
|
61
61
|
* The encryption mode.
|
|
62
62
|
*/
|
package/lib/catalog.js
CHANGED
|
@@ -74,7 +74,7 @@ var CatalogEncryptionMode;
|
|
|
74
74
|
* @see https://docs.aws.amazon.com/glue/latest/webapi/API_EncryptionAtRest.html
|
|
75
75
|
*/
|
|
76
76
|
class DataCatalogEncryptionAtRest {
|
|
77
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.DataCatalogEncryptionAtRest", version: "2.
|
|
77
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.DataCatalogEncryptionAtRest", version: "2.268.0-alpha.0" };
|
|
78
78
|
/**
|
|
79
79
|
* Disable encryption at rest for the Data Catalog.
|
|
80
80
|
*/
|
|
@@ -130,7 +130,7 @@ exports.DataCatalogEncryptionAtRest = DataCatalogEncryptionAtRest;
|
|
|
130
130
|
* construction, so a catalog either carries settings or it does not.
|
|
131
131
|
*/
|
|
132
132
|
class CatalogBase extends core_1.Resource {
|
|
133
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.CatalogBase", version: "2.
|
|
133
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.CatalogBase", version: "2.268.0-alpha.0" };
|
|
134
134
|
_encryptionKey;
|
|
135
135
|
_connectionPasswordKey;
|
|
136
136
|
get encryptionKey() {
|
|
@@ -224,7 +224,7 @@ let Catalog = (() => {
|
|
|
224
224
|
Catalog = _classThis = _classDescriptor.value;
|
|
225
225
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
226
226
|
}
|
|
227
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Catalog", version: "2.
|
|
227
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Catalog", version: "2.268.0-alpha.0" };
|
|
228
228
|
/** Uniquely identifies this class. */
|
|
229
229
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.Catalog';
|
|
230
230
|
/**
|
|
@@ -421,4 +421,4 @@ let ImportedCatalog = (() => {
|
|
|
421
421
|
};
|
|
422
422
|
return ImportedCatalog = _classThis;
|
|
423
423
|
})();
|
|
424
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNhdGFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsbURBQW9GO0FBR3BGLGlEQUFnRDtBQUVoRCwyQ0FBc0Y7QUFDdEYsNEVBQTREO0FBQzVELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFHMUU7Ozs7R0FJRztBQUNILElBQVkscUJBZ0JYO0FBaEJELFdBQVkscUJBQXFCO0lBQy9COztPQUVHO0lBQ0gsOENBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCw0Q0FBbUIsQ0FBQTtJQUVuQjs7O09BR0c7SUFDSCxnRkFBdUQsQ0FBQTtBQUN6RCxDQUFDLEVBaEJXLHFCQUFxQixxQ0FBckIscUJBQXFCLFFBZ0JoQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSwyQkFBMkI7O0lBQ3RDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVE7UUFDcEIsT0FBTyxJQUFJLDJCQUEyQixDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3hFO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQWM7UUFDOUIsT0FBTyxJQUFJLDJCQUEyQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztLQUM1RTtJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBZSxFQUFFLEdBQWM7UUFDOUQsT0FBTyxJQUFJLDJCQUEyQixDQUFDLHFCQUFxQixDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNwRztJQUVEOztPQUVHO0lBQ2EsSUFBSSxDQUF3QjtJQUU1Qzs7T0FFRztJQUNhLE1BQU0sQ0FBZTtJQUVyQzs7T0FFRztJQUNhLFdBQVcsQ0FBYTtJQUV4QyxZQUFvQixJQUEyQixFQUFFLE1BQW9CLEVBQUUsV0FB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QVcseUNBQXlDLENBQUM7UUFDakYsU0FBUyxDQUFTO1FBQ2xCLFVBQVUsQ0FBUztRQUVuQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFNBQWlCLEVBQUUsVUFBa0I7WUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqQixtQ0FBbUM7WUFDbkMsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7U0FDOUI7O1lBWkcsdURBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENhdGFsb2dSZWZlcmVuY2UsIElDYXRhbG9nUmVmIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdsdWUnO1xuaW1wb3J0IHsgQ2ZuQ2F0YWxvZywgQ2ZuRGF0YUNhdGFsb2dFbmNyeXB0aW9uU2V0dGluZ3MgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2x1ZSc7XG5pbXBvcnQgdHlwZSAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB0eXBlICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0IHsgS2V5R3JhbnRzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgdHlwZSB7IElSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgQXJuRm9ybWF0LCBSZXNvdXJjZSwgU3RhY2ssIFRva2VuLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGxpdCB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBUaGUgZW5jcnlwdGlvbi1hdC1yZXN0IG1vZGUgZm9yIGEgR2x1ZSBEYXRhIENhdGFsb2cuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3Qvd2ViYXBpL0FQSV9FbmNyeXB0aW9uQXRSZXN0Lmh0bWwjR2x1ZS1UeXBlLUVuY3J5cHRpb25BdFJlc3QtQ2F0YWxvZ0VuY3J5cHRpb25Nb2RlXG4gKi9cbmV4cG9ydCBlbnVtIENhdGFsb2dFbmNyeXB0aW9uTW9kZSB7XG4gIC8qKlxuICAgKiBFbmNyeXB0aW9uIGF0IHJlc3QgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBESVNBQkxFRCA9ICdESVNBQkxFRCcsXG5cbiAgLyoqXG4gICAqIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gKFNTRSkgd2l0aCBhbiBBV1MgS01TIGtleS5cbiAgICovXG4gIFNTRV9LTVMgPSAnU1NFLUtNUycsXG5cbiAgLyoqXG4gICAqIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gKFNTRSkgd2l0aCBhbiBBV1MgS01TIGtleSwgdXNpbmcgYSBzZXJ2aWNlIHJvbGUgdGhhdFxuICAgKiBBV1MgR2x1ZSBhc3N1bWVzIHRvIGFjY2VzcyB0aGUga2V5IG9uIHlvdXIgYmVoYWxmLlxuICAgKi9cbiAgU1NFX0tNU19XSVRIX1NFUlZJQ0VfUk9MRSA9ICdTU0UtS01TLVdJVEgtU0VSVklDRS1ST0xFJyxcbn1cblxuLyoqXG4gKiBFbmNyeXB0aW9uLWF0LXJlc3QgY29uZmlndXJhdGlvbiBmb3IgYSBHbHVlIERhdGEgQ2F0YWxvZy5cbiAqXG4gKiBUaGUgRGF0YSBDYXRhbG9nIGVuY3J5cHRpb24gYXQgcmVzdCBhbmQgdGhlIGNvbm5lY3Rpb24gcGFzc3dvcmQgZW5jcnlwdGlvblxuICogYXJlIGluZGVwZW5kZW50OiBlbmFibGluZyBvbmUgZG9lcyBub3QgcmVxdWlyZSB0aGUgb3RoZXIsIGFuZCBlYWNoIG1heSB1c2UgYVxuICogZGlmZmVyZW50IEtNUyBrZXkuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3Qvd2ViYXBpL0FQSV9FbmNyeXB0aW9uQXRSZXN0Lmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFDYXRhbG9nRW5jcnlwdGlvbkF0UmVzdCB7XG4gIC8qKlxuICAgKiBEaXNhYmxlIGVuY3J5cHRpb24gYXQgcmVzdCBmb3IgdGhlIERhdGEgQ2F0YWxvZy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGlzYWJsZWQoKTogRGF0YUNhdGFsb2dFbmNyeXB0aW9uQXRSZXN0IHtcbiAgICByZXR1cm4gbmV3IERhdGFDYXRhbG9nRW5jcnlwdGlvbkF0UmVzdChDYXRhbG9nRW5jcnlwdGlvbk1vZGUuRElTQUJMRUQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuY3J5cHQgdGhlIERhdGEgQ2F0YWxvZyBhdCByZXN0IHdpdGggYW4gQVdTIEtNUyBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgdGhlIEtNUyBrZXkgdG8gdXNlLiBJZiBvbWl0dGVkLCBhbiBBV1MtbWFuYWdlZCBrZXkgaXMgdXNlZCBhbmRcbiAgICogdGhlIGtleSBpcyBub3QgZXhwb3NlZCBhcyBhIGdyYW50YWJsZSByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMga21zKGtleT86IGttcy5JS2V5KTogRGF0YUNhdGFsb2dFbmNyeXB0aW9uQXRSZXN0IHtcbiAgICByZXR1cm4gbmV3IERhdGFDYXRhbG9nRW5jcnlwdGlvbkF0UmVzdChDYXRhbG9nRW5jcnlwdGlvbk1vZGUuU1NFX0tNUywga2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNyeXB0IHRoZSBEYXRhIENhdGFsb2cgYXQgcmVzdCB3aXRoIGFuIEFXUyBLTVMga2V5LCBhY2Nlc3NlZCB0aHJvdWdoIGFcbiAgICogc2VydmljZSByb2xlIHRoYXQgQVdTIEdsdWUgYXNzdW1lcyBvbiB5b3VyIGJlaGFsZi5cbiAgICpcbiAgICogV2hlbiBhIGN1c3RvbWVyLW1hbmFnZWQgYGtleWAgaXMgcHJvdmlkZWQsIHRoZSBgcm9sZWAgaXMgYXV0b21hdGljYWxseVxuICAgKiBncmFudGVkIGBrbXM6RW5jcnlwdGAvYGttczpEZWNyeXB0YC9ga21zOkdlbmVyYXRlRGF0YUtleSpgIG9uIGl0LlxuICAgKlxuICAgKiBAcGFyYW0gcm9sZSB0aGUgc2VydmljZSByb2xlIHRoYXQgQVdTIEdsdWUgYXNzdW1lcyB0byBhY2Nlc3MgdGhlIGtleS5cbiAgICogQHBhcmFtIGtleSB0aGUgS01TIGtleSB0byB1c2UuIElmIG9taXR0ZWQsIGFuIEFXUy1tYW5hZ2VkIGtleSBpcyB1c2VkIGFuZFxuICAgKiB0aGUga2V5IGlzIG5vdCBleHBvc2VkIGFzIGEgZ3JhbnRhYmxlIHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBrbXNXaXRoU2VydmljZVJvbGUocm9sZTogaWFtLklSb2xlLCBrZXk/OiBrbXMuSUtleSk6IERhdGFDYXRhbG9nRW5jcnlwdGlvbkF0UmVzdCB7XG4gICAgcmV0dXJuIG5ldyBEYXRhQ2F0YWxvZ0VuY3J5cHRpb25BdFJlc3QoQ2F0YWxvZ0VuY3J5cHRpb25Nb2RlLlNTRV9LTVNfV0lUSF9TRVJWSUNFX1JPTEUsIGtleSwgcm9sZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVuY3J5cHRpb24gbW9kZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtb2RlOiBDYXRhbG9nRW5jcnlwdGlvbk1vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b21lci1tYW5hZ2VkIEtNUyBrZXkgdXNlZCBmb3IgZW5jcnlwdGlvbiBhdCByZXN0LCBpZiBhbnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkga21zS2V5Pzoga21zLklLZXlSZWY7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHJvbGUgdGhhdCBBV1MgR2x1ZSBhc3N1bWVzIHRvIGFjY2VzcyB0aGUgS01TIGtleSwgaWYgYW55LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2VSb2xlPzogaWFtLklSb2xlO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IobW9kZTogQ2F0YWxvZ0VuY3J5cHRpb25Nb2RlLCBrbXNLZXk/OiBrbXMuSUtleVJlZiwgc2VydmljZVJvbGU/OiBpYW0uSVJvbGUpIHtcbiAgICB0aGlzLm1vZGUgPSBtb2RlO1xuICAgIHRoaXMua21zS2V5ID0ga21zS2V5O1xuICAgIHRoaXMuc2VydmljZVJvbGUgPSBzZXJ2aWNlUm9sZTtcbiAgfVxufVxuXG4vKipcbiAqIENvbm5lY3Rpb24tcGFzc3dvcmQgZW5jcnlwdGlvbiBjb25maWd1cmF0aW9uIGZvciBhIEdsdWUgRGF0YSBDYXRhbG9nLlxuICpcbiAqIFdoZW4gZW5hYmxlZCwgdGhlIERhdGEgQ2F0YWxvZyBlbmNyeXB0cyB0aGUgcGFzc3dvcmQgYXMgcGFydCBvZlxuICogYENyZWF0ZUNvbm5lY3Rpb25gIG9yIGBVcGRhdGVDb25uZWN0aW9uYCBhbmQgc3RvcmVzIGl0IGluIHRoZVxuICogYEVOQ1JZUFRFRF9QQVNTV09SRGAgZmllbGQgb2YgdGhlIGNvbm5lY3Rpb24gcHJvcGVydGllcy4gVGhpcyBpcyBpbmRlcGVuZGVudFxuICogZnJvbSBjYXRhbG9nIGVuY3J5cHRpb24gYXQgcmVzdCwgYW5kIG1heSB1c2UgYSBkaWZmZXJlbnQgS01TIGtleS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC93ZWJhcGkvQVBJX0Nvbm5lY3Rpb25QYXNzd29yZEVuY3J5cHRpb24uaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25QYXNzd29yZEVuY3J5cHRpb24ge1xuICAvKipcbiAgICogVGhlIEtNUyBrZXkgdXNlZCB0byBlbmNyeXB0IGNvbm5lY3Rpb24gcGFzc3dvcmRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFuIEFXUy1tYW5hZ2VkIGtleSBpcyB1c2VkIGFuZCB0aGUga2V5IGlzIG5vdCBleHBvc2VkIGFzIGEgZ3JhbnRhYmxlIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5Pzoga21zLklLZXlSZWY7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgcGFzc3dvcmRzIHJlbWFpbiBlbmNyeXB0ZWQgaW4gdGhlIHJlc3BvbnNlcyBvZiBgR2V0Q29ubmVjdGlvbmAgYW5kXG4gICAqIGBHZXRDb25uZWN0aW9uc2AuIFRoaXMgdGFrZXMgZWZmZWN0IGluZGVwZW5kZW50bHkgZnJvbSBjYXRhbG9nIGVuY3J5cHRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJldHVybkNvbm5lY3Rpb25QYXNzd29yZEVuY3J5cHRlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5jcnlwdGlvbiBjb25maWd1cmF0aW9uIGZvciBhIEdsdWUgRGF0YSBDYXRhbG9nLlxuICpcbiAqIEVuY3J5cHRpb24gaXMgZml4ZWQgYXQgY29uc3RydWN0aW9uOiBhIGNhdGFsb2cgZWl0aGVyIGNhcnJpZXMgZW5jcnlwdGlvblxuICogc2V0dGluZ3Mgb3IgaXQgZG9lcyBub3QsIHdoaWNoIGtlZXBzIGl0cyBjb25maWd1cmF0aW9uIGVhc3kgdG8gcmVhc29uIGFib3V0XG4gKiBhbmQgYXZvaWRzIG9yZGVyLWRlcGVuZGVudCBtdXRhdGlvbiBhZnRlciB0aGUgY2F0YWxvZyBpcyBjcmVhdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2dFbmNyeXB0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBFbmNyeXB0aW9uLWF0LXJlc3QgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNhdGFsb2cuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZW5jcnlwdGlvbiBhdCByZXN0IGlzIG5vdCBtYW5hZ2VkIGJ5IENESyAodGhlIGNhdGFsb2cgZGVmYXVsdCBhcHBsaWVzKVxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbkF0UmVzdD86IERhdGFDYXRhbG9nRW5jcnlwdGlvbkF0UmVzdDtcblxuICAvKipcbiAgICogQ29ubmVjdGlvbi1wYXNzd29yZCBlbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjYXRhbG9nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGNvbm5lY3Rpb24tcGFzc3dvcmQgZW5jcnlwdGlvbiBpcyBub3QgbWFuYWdlZCBieSBDREtcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25QYXNzd29yZEVuY3J5cHRpb24/OiBDb25uZWN0aW9uUGFzc3dvcmRFbmNyeXB0aW9uO1xufVxuXG4vKipcbiAqIEEgR2x1ZSBEYXRhIENhdGFsb2csIGVpdGhlciB0aGUgaW1wbGljaXQgYWNjb3VudC13aWRlIGNhdGFsb2cgb3Igb25lIGNyZWF0ZWRcbiAqIGFzIGFuIGBBV1M6OkdsdWU6OkNhdGFsb2dgIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDYXRhbG9nIGV4dGVuZHMgSVJlc291cmNlLCBJQ2F0YWxvZ1JlZiB7XG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIGNhdGFsb2cgKGZvciB0aGUgYWNjb3VudC13aWRlIGNhdGFsb2csIHRoZSBBV1MgYWNjb3VudCBpZCkuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNhdGFsb2dJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBjYXRhbG9nLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjYXRhbG9nQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b21lci1tYW5hZ2VkIEtNUyBrZXkgdXNlZCBmb3IgdGhlIGNhdGFsb2cncyBlbmNyeXB0aW9uIGF0IHJlc3QsIGlmXG4gICAqIG9uZSB3YXMgY29uZmlndXJlZC5cbiAgICpcbiAgICogVW5kZWZpbmVkIHdoZW4gZW5jcnlwdGlvbiBpcyBkaXNhYmxlZCBvciBhbiBBV1MtbWFuYWdlZCBrZXkgaXMgdXNlZC4gR3JhbnRcbiAgICogYWNjZXNzIHRvIGl0IHZpYSBgS2V5R3JhbnRzYCwgZS5nLlxuICAgKiBgaWYgKGNhdGFsb2cuZW5jcnlwdGlvbktleSkgeyBLZXlHcmFudHMuZnJvbUtleShjYXRhbG9nLmVuY3J5cHRpb25LZXkpLmVuY3J5cHQoZ3JhbnRlZSk7IH1gLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5UmVmO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VzdG9tZXItbWFuYWdlZCBLTVMga2V5IHVzZWQgdG8gZW5jcnlwdCBjb25uZWN0aW9uIHBhc3N3b3JkcywgaWYgb25lXG4gICAqIHdhcyBjb25maWd1cmVkLlxuICAgKlxuICAgKiBVbmRlZmluZWQgd2hlbiBwYXNzd29yZCBlbmNyeXB0aW9uIHVzZXMgYW4gQVdTLW1hbmFnZWQga2V5IG9yIGlzIG5vdFxuICAgKiBjb25maWd1cmVkLiBHcmFudCBhY2Nlc3MgdG8gaXQgdmlhIGBLZXlHcmFudHNgLCBlLmcuXG4gICAqIGBpZiAoY2F0YWxvZy5jb25uZWN0aW9uUGFzc3dvcmRLZXkpIHsgS2V5R3JhbnRzLmZyb21LZXkoY2F0YWxvZy5jb25uZWN0aW9uUGFzc3dvcmRLZXkpLmVuY3J5cHQoZ3JhbnRlZSk7IH1gLlxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvblBhc3N3b3JkS2V5Pzoga21zLklLZXlSZWY7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYWxsIGBJQ2F0YWxvZ2AgaW1wbGVtZW50YXRpb25zLiBNYXRlcmlhbGl6ZXMgdGhlIHNpbmdsZVxuICogYENmbkRhdGFDYXRhbG9nRW5jcnlwdGlvblNldHRpbmdzYCByZXNvdXJjZSAodGFyZ2V0aW5nIGl0cyBvd24gYGNhdGFsb2dJZGApXG4gKiBmcm9tIHRoZSBlbmNyeXB0aW9uIG9wdGlvbnMgc3VwcGxpZWQgYXQgY29uc3RydWN0aW9uLiBFbmNyeXB0aW9uIGlzIGZpeGVkIGF0XG4gKiBjb25zdHJ1Y3Rpb24sIHNvIGEgY2F0YWxvZyBlaXRoZXIgY2FycmllcyBzZXR0aW5ncyBvciBpdCBkb2VzIG5vdC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENhdGFsb2dCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJQ2F0YWxvZyB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjYXRhbG9nSWQ6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNhdGFsb2dBcm46IHN0cmluZztcblxuICBwcml2YXRlIF9lbmNyeXB0aW9uS2V5Pzoga21zLklLZXlSZWY7XG4gIHByaXZhdGUgX2Nvbm5lY3Rpb25QYXNzd29yZEtleT86IGttcy5JS2V5UmVmO1xuXG4gIHB1YmxpYyBnZXQgZW5jcnlwdGlvbktleSgpOiBrbXMuSUtleVJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2VuY3J5cHRpb25LZXk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbm5lY3Rpb25QYXNzd29yZEtleSgpOiBrbXMuSUtleVJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25QYXNzd29yZEtleTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2F0YWxvZ1JlZigpOiBDYXRhbG9nUmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzb3VyY2VBcm46IHRoaXMuY2F0YWxvZ0FybixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXQgdGhlIGNhdGFsb2cncyBlbmNyeXB0aW9uIHNldHRpbmdzIGZyb20gdGhlIG9wdGlvbnMgZml4ZWQgYXRcbiAgICogY29uc3RydWN0aW9uLiBTdWJjbGFzc2VzIGNhbGwgdGhpcyBvbmNlLCBhZnRlciBgY2F0YWxvZ0lkYC9gY2F0YWxvZ0FybmAgYXJlXG4gICAqIGFzc2lnbmVkLiBXaGVuIG5laXRoZXIgYmxvY2sgaXMgY29uZmlndXJlZCwgbm8gcmVzb3VyY2UgaXMgZW1pdHRlZCwgYXZvaWRpbmdcbiAgICogYW4gZW1wdHkgc2V0dGluZ3MgcmVzb3VyY2UgdGhhdCB3b3VsZCByZXNldCB0aGUgY2F0YWxvZyBvbiBkZXBsb3kuXG4gICAqL1xuICBwcm90ZWN0ZWQgY29uZmlndXJlRW5jcnlwdGlvbihvcHRpb25zOiBDYXRhbG9nRW5jcnlwdGlvbk9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCBhdFJlc3QgPSBvcHRpb25zLmVuY3J5cHRpb25BdFJlc3Q7XG4gICAgY29uc3QgcGFzc3dvcmQgPSBvcHRpb25zLmNvbm5lY3Rpb25QYXNzd29yZEVuY3J5cHRpb247XG5cbiAgICBpZiAoIWF0UmVzdCAmJiAhcGFzc3dvcmQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9lbmNyeXB0aW9uS2V5ID0gYXRSZXN0Py5rbXNLZXk7XG4gICAgdGhpcy5fY29ubmVjdGlvblBhc3N3b3JkS2V5ID0gcGFzc3dvcmQ/Lmttc0tleTtcblxuICAgIC8vIEF1dG8tZ3JhbnQgdGhlIHNlcnZpY2Ugcm9sZSBhY2Nlc3MgdG8gdGhlIGN1c3RvbWVyLW1hbmFnZWQga2V5IGl0IG5lZWRzXG4gICAgLy8gdG8gZW5jcnlwdCBhbmQgZGVjcnlwdCBjYXRhbG9nIGRhdGEuIE5vdGhpbmcgdG8gZ3JhbnQgZm9yIGFuIEFXUy1tYW5hZ2VkXG4gICAgLy8ga2V5ICh3ZSBkb24ndCBvd24gaXRzIGtleSBwb2xpY3kpLlxuICAgIGlmIChhdFJlc3Q/LnNlcnZpY2VSb2xlICYmIGF0UmVzdC5rbXNLZXkpIHtcbiAgICAgIEtleUdyYW50cy5mcm9tS2V5KGF0UmVzdC5rbXNLZXkpLmVuY3J5cHREZWNyeXB0KGF0UmVzdC5zZXJ2aWNlUm9sZSk7XG4gICAgfVxuXG4gICAgLy8gVHdvIGNhdGFsb2cgaW5zdGFuY2VzIHRoYXQgdGFyZ2V0IHRoZSBzYW1lIGNhdGFsb2cgaWQgd291bGQgZWFjaCBlbWl0IGFcbiAgICAvLyBzZXR0aW5ncyByZXNvdXJjZSBhbmQgcmFjZSB0byBvdmVyd3JpdGUgb25lIGFub3RoZXIgdmlhXG4gICAgLy8gYFB1dERhdGFDYXRhbG9nRW5jcnlwdGlvblNldHRpbmdzYC4gV2l0aGluIG9uZSBzdGFjayB0aGlzIGlzIHN1cmZhY2VkIGJ5XG4gICAgLy8gQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgdmFsaWRhdGlvbiAoRTMwMTk6IGR1cGxpY2F0ZSBwcmltYXJ5IGlkZW50aWZpZXJzKSxcbiAgICAvLyBzbyB3ZSBkbyBub3QgZHVwbGljYXRlIHRoYXQgY2hlY2sgaGVyZS5cbiAgICBuZXcgQ2ZuRGF0YUNhdGFsb2dFbmNyeXB0aW9uU2V0dGluZ3ModGhpcywgJ0VuY3J5cHRpb25TZXR0aW5ncycsIHtcbiAgICAgIGNhdGFsb2dJZDogdGhpcy5jYXRhbG9nSWQsXG4gICAgICBkYXRhQ2F0YWxvZ0VuY3J5cHRpb25TZXR0aW5nczoge1xuICAgICAgICBlbmNyeXB0aW9uQXRSZXN0OiBhdFJlc3RcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgIGNhdGFsb2dFbmNyeXB0aW9uTW9kZTogYXRSZXN0Lm1vZGUsXG4gICAgICAgICAgICBzc2VBd3NLbXNLZXlJZDogYXRSZXN0Lmttc0tleT8ua2V5UmVmLmtleUFybixcbiAgICAgICAgICAgIGNhdGFsb2dFbmNyeXB0aW9uU2VydmljZVJvbGU6IGF0UmVzdC5zZXJ2aWNlUm9sZT8ucm9sZUFybixcbiAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIGNvbm5lY3Rpb25QYXNzd29yZEVuY3J5cHRpb246IHBhc3N3b3JkXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICBrbXNLZXlJZDogcGFzc3dvcmQua21zS2V5Py5rZXlSZWYua2V5QXJuLFxuICAgICAgICAgICAgcmV0dXJuQ29ubmVjdGlvblBhc3N3b3JkRW5jcnlwdGVkOiBwYXNzd29yZC5yZXR1cm5Db25uZWN0aW9uUGFzc3dvcmRFbmNyeXB0ZWQgPz8gdHJ1ZSxcbiAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIHByb3BlcnRpZXMgZm9yIGEgYENhdGFsb2dgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2dQcm9wcyBleHRlbmRzIENhdGFsb2dFbmNyeXB0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY2F0YWxvZy5cbiAgICovXG4gIHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gb2YgdGhlIGNhdGFsb2cuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBzdGFjay1zY29wZWQgc2luZ2xldG9uIGlkIGZvciB0aGUgaW1wbGljaXQgYWNjb3VudC13aWRlIGNhdGFsb2cuXG4gKi9cbmNvbnN0IEFDQ09VTlRfQ0FUQUxPR19VSUQgPSAnQGF3cy1jZGsuYXdzLWdsdWUtYWxwaGEuQWNjb3VudENhdGFsb2cnO1xuXG4vKipcbiAqIEEgR2x1ZSBEYXRhIENhdGFsb2cuXG4gKlxuICogVXNlIGBDYXRhbG9nLmZvckFjY291bnQoc2NvcGUpYCB0byBvYnRhaW4gdGhlIGltcGxpY2l0IGFjY291bnQtd2lkZSBjYXRhbG9nLFxuICogYENhdGFsb2cuZW5jcnlwdEFjY291bnQoc2NvcGUsIG9wdGlvbnMpYCB0byBjb25maWd1cmUgaXRzIERhdGEgQ2F0YWxvZ1xuICogZW5jcnlwdGlvbiwgb3IgYG5ldyBDYXRhbG9nKC4uLilgIHRvIGNyZWF0ZSBhbiBgQVdTOjpHbHVlOjpDYXRhbG9nYCByZXNvdXJjZS5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIENhdGFsb2cgZXh0ZW5kcyBDYXRhbG9nQmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWdsdWUtYWxwaGEuQ2F0YWxvZyc7XG5cbiAgLyoqXG4gICAqIE9idGFpbiB0aGUgaW1wbGljaXQsIGFjY291bnQtd2lkZSBEYXRhIENhdGFsb2cuXG4gICAqXG4gICAqIFRoZSBhY2NvdW50IGNhdGFsb2cgaXMgbm90IGEgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2U7IGl0IGFsd2F5cyBleGlzdHMuIFRoaXNcbiAgICogcmV0dXJucyBhIHN0YWNrLXNjb3BlZCBzaW5nbGV0b24sIHNvIHJlcGVhdGVkIGNhbGxzIHdpdGhpbiB0aGUgc2FtZSBzdGFja1xuICAgKiByZXR1cm4gdGhlIHNhbWUgaW5zdGFuY2UuXG4gICAqXG4gICAqIFRoaXMgcmV0dXJucyB0aGUgYWNjb3VudCBjYXRhbG9nIHdpdGhvdXQgbWFuYWdpbmcgaXRzIGVuY3J5cHRpb24uIFRvXG4gICAqIGNvbmZpZ3VyZSBEYXRhIENhdGFsb2cgZW5jcnlwdGlvbiBmb3IgdGhlIGFjY291bnQsIHVzZVxuICAgKiBgQ2F0YWxvZy5lbmNyeXB0QWNjb3VudChzY29wZSwgb3B0aW9ucylgIGluc3RlYWQgLSBpdCBtdXN0IGJlIGNhbGxlZCBiZWZvcmVcbiAgICogdGhlIGFjY291bnQgY2F0YWxvZyBpcyBmaXJzdCB1c2VkIGluIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yQWNjb3VudChzY29wZTogQ29uc3RydWN0KTogSUNhdGFsb2cge1xuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2Yoc2NvcGUpO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoQUNDT1VOVF9DQVRBTE9HX1VJRCk7XG4gICAgcmV0dXJuIChleGlzdGluZyBhcyBBY2NvdW50Q2F0YWxvZykgPz8gbmV3IEFjY291bnRDYXRhbG9nKHN0YWNrLCBBQ0NPVU5UX0NBVEFMT0dfVUlELCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIERhdGEgQ2F0YWxvZyBlbmNyeXB0aW9uIGZvciB0aGUgaW1wbGljaXQsIGFjY291bnQtd2lkZSBjYXRhbG9nIGFuZFxuICAgKiByZXR1cm4gaXQuXG4gICAqXG4gICAqIFRoZSBhY2NvdW50IGNhdGFsb2cncyBlbmNyeXB0aW9uIGlzIGFuIGFjY291bnQvcmVnaW9uLXdpZGUgc2V0dGluZywgbWFuYWdlZFxuICAgKiB0aHJvdWdoIHRoZSBzaW5nbGV0b24gYFB1dERhdGFDYXRhbG9nRW5jcnlwdGlvblNldHRpbmdzYCBBUEkuIEJlY2F1c2VcbiAgICogZW5jcnlwdGlvbiBpcyBmaXhlZCBhdCBjb25zdHJ1Y3Rpb24sIGl0IG11c3QgYmUgY29uZmlndXJlZCBiZWZvcmUgdGhlXG4gICAqIGFjY291bnQgY2F0YWxvZyBpcyBmaXJzdCB1c2VkIGluIHRoZSBzdGFjazogY2FsbGluZyB0aGlzIGFmdGVyIHRoZSBhY2NvdW50XG4gICAqIGNhdGFsb2cgaGFzIGFscmVhZHkgYmVlbiBtYXRlcmlhbGl6ZWQgKGZvciBleGFtcGxlIGJ5IGBDYXRhbG9nLmZvckFjY291bnRgLFxuICAgKiBvciBieSBhIGBEYXRhYmFzZWAgdGhhdCB1c2VzIHRoZSBhY2NvdW50IGNhdGFsb2cpIHRocm93cy5cbiAgICpcbiAgICogQ29uZmlndXJlIGl0IGluIGV4YWN0bHkgb25lIHN0YWNrLiBDb25maWd1cmluZyBpdCBmcm9tIG11bHRpcGxlIHN0YWNrcyBpbiB0aGVcbiAgICogc2FtZSBhY2NvdW50IGFuZCByZWdpb24gbWFrZXMgdGhvc2Ugc3RhY2tzIG92ZXJ3cml0ZSBvbmUgYW5vdGhlciBhdCBkZXBsb3lcbiAgICogdGltZSwgYW5kIHRoZSByZXN1bHQgaXMgb3JkZXItZGVwZW5kZW50LiBVbmxpa2UgZHVwbGljYXRlIHNldHRpbmdzIHdpdGhpbiBhXG4gICAqIHNpbmdsZSBzdGFjayAod2hpY2ggQ2xvdWRGb3JtYXRpb24gcmVqZWN0cyksIHRoaXMgY3Jvc3Mtc3RhY2sgY29uZmxpY3QgaXMgbm90XG4gICAqIGNhdWdodCBhdCBzeW50aGVzaXMgdGltZSwgYmVjYXVzZSBlYWNoIHN0YWNrIHN5bnRoZXNpemVzIHRvIGl0cyBvd24gdGVtcGxhdGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGVuY3J5cHRBY2NvdW50KHNjb3BlOiBDb25zdHJ1Y3QsIG9wdGlvbnM6IENhdGFsb2dFbmNyeXB0aW9uT3B0aW9ucyk6IElDYXRhbG9nIHtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHNjb3BlKTtcbiAgICBpZiAoc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoQUNDT1VOVF9DQVRBTE9HX1VJRCkpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGxpdGBBY2NvdW50Q2F0YWxvZ0FscmVhZHlJblVzZWAsXG4gICAgICAgICd0aGUgYWNjb3VudCBjYXRhbG9nIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCBpbiB0aGlzIHN0YWNrOyBjYWxsIENhdGFsb2cuZW5jcnlwdEFjY291bnQoKSBiZWZvcmUgQ2F0YWxvZy5mb3JBY2NvdW50KCkgb3IgYW55IERhdGFiYXNlIHRoYXQgdXNlcyB0aGUgYWNjb3VudCBjYXRhbG9nJyxcbiAgICAgICAgc2NvcGUsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEFjY291bnRDYXRhbG9nKHN0YWNrLCBBQ0NPVU5UX0NBVEFMT0dfVUlELCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgY2F0YWxvZyBieSBpdHMgQVJOLlxuICAgKlxuICAgKiBUaGUgQVJOIG11c3QgYmUgYSBHbHVlIGNhdGFsb2cgQVJOLCBlaXRoZXIgdGhlIGFjY291bnQtd2lkZSBjYXRhbG9nXG4gICAqIChgYXJuOmF3czpnbHVlOjxyZWdpb24+OjxhY2NvdW50PjpjYXRhbG9nYCwgd2hvc2UgaWQgaXMgdGhlIGFjY291bnQpIG9yIGFcbiAgICogbmFtZWQgY2F0YWxvZyAoYGFybjphd3M6Z2x1ZTo8cmVnaW9uPjo8YWNjb3VudD46Y2F0YWxvZy88bmFtZT5gLCB3aG9zZSBpZCBpc1xuICAgKiB0aGUgbmFtZSkuXG4gICAqXG4gICAqIFRoZSBpbXBvcnRlZCBjYXRhbG9nIGlzIGEgcHVyZSBpZGVudGl0eSBoYW5kbGUgYW5kIGRvZXMgbm90IG1hbmFnZSB0aGVcbiAgICogY2F0YWxvZydzIGVuY3J5cHRpb24uIFRvIG1hbmFnZSBhbiBleGlzdGluZyBjYXRhbG9nJ3MgRGF0YSBDYXRhbG9nXG4gICAqIGVuY3J5cHRpb24sIGFkZCBhIGBDZm5EYXRhQ2F0YWxvZ0VuY3J5cHRpb25TZXR0aW5nc2AgcmVzb3VyY2UgdGFyZ2V0aW5nIGl0c1xuICAgKiBpZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNhdGFsb2dBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY2F0YWxvZ0Fybjogc3RyaW5nKTogSUNhdGFsb2cge1xuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2Yoc2NvcGUpO1xuICAgIGNvbnN0IGFybiA9IHN0YWNrLnNwbGl0QXJuKGNhdGFsb2dBcm4sIEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKTtcblxuICAgIC8vIE9ubHkgdmFsaWRhdGUgdGhlIHNoYXBlIG9mIGNvbmNyZXRlIEFSTnM7IGEgdG9rZW5pemVkIEFSTiBjYW4ndCBiZVxuICAgIC8vIGluc3BlY3RlZCBhdCBzeW50aCB0aW1lLCBzbyB3ZSB0cnVzdCBpdC5cbiAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChjYXRhbG9nQXJuKSAmJiAoYXJuLnNlcnZpY2UgIT09ICdnbHVlJyB8fCBhcm4ucmVzb3VyY2UgIT09ICdjYXRhbG9nJykpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGxpdGBJbnZhbGlkQ2F0YWxvZ0FybmAsXG4gICAgICAgIGBleHBlY3RlZCBhIEdsdWUgY2F0YWxvZyBBUk4gKGFybjo8cGFydGl0aW9uPjpnbHVlOjxyZWdpb24+OjxhY2NvdW50PjpjYXRhbG9nWy88bmFtZT5dKSwgZ290ICR7SlNPTi5zdHJpbmdpZnkoY2F0YWxvZ0Fybil9YCxcbiAgICAgICAgc2NvcGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFRoZSBhY2NvdW50LXdpZGUgY2F0YWxvZydzIEFSTiBoYXMgbm8gcmVzb3VyY2UgbmFtZTsgaXRzIGlkIGlzIHRoZVxuICAgIC8vIGFjY291bnQgZnJvbSB0aGUgQVJOIGl0c2VsZiAoZmFsbGluZyBiYWNrIHRvIHRoZSBzdGFjayBhY2NvdW50IGZvciBhXG4gICAgLy8gdG9rZW5pemVkIEFSTiB3aXRoIG5vIHBhcnNlYWJsZSBhY2NvdW50KS5cbiAgICBjb25zdCBjYXRhbG9nSWQgPSBhcm4ucmVzb3VyY2VOYW1lID8/IGFybi5hY2NvdW50ID8/IHN0YWNrLmFjY291bnQ7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRlZENhdGFsb2coc2NvcGUsIGlkLCBjYXRhbG9nSWQsIGNhdGFsb2dBcm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBjYXRhbG9nIGJ5IGl0cyBpZC5cbiAgICpcbiAgICogVGhlIGltcG9ydGVkIGNhdGFsb2cgaXMgYSBwdXJlIGlkZW50aXR5IGhhbmRsZSBhbmQgZG9lcyBub3QgbWFuYWdlIHRoZVxuICAgKiBjYXRhbG9nJ3MgZW5jcnlwdGlvbi4gVG8gbWFuYWdlIGFuIGV4aXN0aW5nIGNhdGFsb2cncyBEYXRhIENhdGFsb2dcbiAgICogZW5jcnlwdGlvbiwgYWRkIGEgYENmbkRhdGFDYXRhbG9nRW5jcnlwdGlvblNldHRpbmdzYCByZXNvdXJjZSB0YXJnZXRpbmcgaXRzXG4gICAqIGlkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ2F0YWxvZ0lkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNhdGFsb2dJZDogc3RyaW5nKTogSUNhdGFsb2cge1xuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2Yoc2NvcGUpO1xuICAgIGNvbnN0IGNhdGFsb2dBcm4gPSBzdGFjay5mb3JtYXRBcm4oeyBzZXJ2aWNlOiAnZ2x1ZScsIHJlc291cmNlOiAnY2F0YWxvZycsIHJlc291cmNlTmFtZTogY2F0YWxvZ0lkIH0pO1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRDYXRhbG9nKHNjb3BlLCBpZCwgY2F0YWxvZ0lkLCBjYXRhbG9nQXJuKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBjYXRhbG9nSWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNhdGFsb2dBcm46IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBDZm5DYXRhbG9nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDYXRhbG9nUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDZm5DYXRhbG9nKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHByb3BzLmNhdGFsb2dOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jYXRhbG9nSWQgPSB0aGlzLnJlc291cmNlLmF0dHJDYXRhbG9nSWQ7XG4gICAgdGhpcy5jYXRhbG9nQXJuID0gdGhpcy5yZXNvdXJjZS5hdHRyUmVzb3VyY2VBcm47XG5cbiAgICB0aGlzLmNvbmZpZ3VyZUVuY3J5cHRpb24ocHJvcHMpO1xuICB9XG59XG5cbi8qKlxuICogVGhlIGltcGxpY2l0LCBhY2NvdW50LXdpZGUgRGF0YSBDYXRhbG9nLiBOb3QgYSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZTsgb25seVxuICogdGhlIGVuY3J5cHRpb24gc2V0dGluZ3MgaXQgY2FycmllcyBhcmUgc3ludGhlc2l6ZWQuXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmNsYXNzIEFjY291bnRDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZ0Jhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1nbHVlLWFscGhhLkFjY291bnRDYXRhbG9nJztcbiAgcHVibGljIHJlYWRvbmx5IGNhdGFsb2dJZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY2F0YWxvZ0Fybjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGVuY3J5cHRpb246IENhdGFsb2dFbmNyeXB0aW9uT3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBlbmNyeXB0aW9uKTtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuICAgIHRoaXMuY2F0YWxvZ0lkID0gc3RhY2suYWNjb3VudDtcbiAgICAvLyBUaGUgYWNjb3VudCBjYXRhbG9nJ3MgaWQgaXMgaW1wbGljaXRseSB0aGUgYWNjb3VudCBpZCwgc28gdGhlIEFSTiBoYXMgbm8gcmVzb3VyY2UgbmFtZS5cbiAgICB0aGlzLmNhdGFsb2dBcm4gPSBzdGFjay5mb3JtYXRBcm4oeyBzZXJ2aWNlOiAnZ2x1ZScsIHJlc291cmNlOiAnY2F0YWxvZycgfSk7XG5cbiAgICB0aGlzLmNvbmZpZ3VyZUVuY3J5cHRpb24oZW5jcnlwdGlvbik7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBpbXBvcnRlZCBjYXRhbG9nLiBBIHB1cmUgaWRlbnRpdHkgaGFuZGxlOiBpdCBlbWl0cyBubyByZXNvdXJjZXMgYW5kIGRvZXNcbiAqIG5vdCBtYW5hZ2UgdGhlIGltcG9ydGVkIGNhdGFsb2cncyBlbmNyeXB0aW9uLlxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5jbGFzcyBJbXBvcnRlZENhdGFsb2cgZXh0ZW5kcyBDYXRhbG9nQmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWdsdWUtYWxwaGEuSW1wb3J0ZWRDYXRhbG9nJztcbiAgcHVibGljIHJlYWRvbmx5IGNhdGFsb2dJZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY2F0YWxvZ0Fybjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNhdGFsb2dJZDogc3RyaW5nLCBjYXRhbG9nQXJuOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgY2F0YWxvZ0lkKTtcbiAgICB0aGlzLmNhdGFsb2dJZCA9IGNhdGFsb2dJZDtcbiAgICB0aGlzLmNhdGFsb2dBcm4gPSBjYXRhbG9nQXJuO1xuICB9XG59XG4iXX0=
|
|
424
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNhdGFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsbURBQW9GO0FBR3BGLGlEQUFnRDtBQUVoRCwyQ0FBc0Y7QUFDdEYsNEVBQTREO0FBQzVELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFHMUU7Ozs7R0FJRztBQUNILElBQVkscUJBZ0JYO0FBaEJELFdBQVkscUJBQXFCO0lBQy9COztPQUVHO0lBQ0gsOENBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCw0Q0FBbUIsQ0FBQTtJQUVuQjs7O09BR0c7SUFDSCxnRkFBdUQsQ0FBQTtBQUN6RCxDQUFDLEVBaEJXLHFCQUFxQixxQ0FBckIscUJBQXFCLFFBZ0JoQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSwyQkFBMkI7O0lBQ3RDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVE7UUFDcEIsT0FBTyxJQUFJLDJCQUEyQixDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3hFO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQWlCO1FBQ2pDLE9BQU8sSUFBSSwyQkFBMkIsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDNUU7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQWUsRUFBRSxHQUFpQjtRQUNqRSxPQUFPLElBQUksMkJBQTJCLENBQUMscUJBQXFCLENBQUMseUJBQXlCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3BHO0lBRUQ7O09BRUc7SUFDYSxJQUFJLENBQXdCO0lBRTVDOztPQUVHO0lBQ2EsTUFBTSxDQUFlO0lBRXJDOztPQUVHO0lBQ2EsV0FBVyxDQUFhO0lBRXhDLFlBQW9CLElBQTJCLEVBQUUsTUFBb0IsRUFBRSxX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R0FBVyx5Q0FBeUMsQ0FBQztRQUNqRixTQUFTLENBQVM7UUFDbEIsVUFBVSxDQUFTO1FBRW5DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsU0FBaUIsRUFBRSxVQUFrQjtZQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pCLG1DQUFtQztZQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztTQUM5Qjs7WUFaRyx1REFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2F0YWxvZ1JlZmVyZW5jZSwgSUNhdGFsb2dSZWYgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2x1ZSc7XG5pbXBvcnQgeyBDZm5DYXRhbG9nLCBDZm5EYXRhQ2F0YWxvZ0VuY3J5cHRpb25TZXR0aW5ncyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCB0eXBlICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHR5cGUgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgeyBLZXlHcmFudHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB0eXBlIHsgSVJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBBcm5Gb3JtYXQsIFJlc291cmNlLCBTdGFjaywgVG9rZW4sIFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFRoZSBlbmNyeXB0aW9uLWF0LXJlc3QgbW9kZSBmb3IgYSBHbHVlIERhdGEgQ2F0YWxvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC93ZWJhcGkvQVBJX0VuY3J5cHRpb25BdFJlc3QuaHRtbCNHbHVlLVR5cGUtRW5jcnlwdGlvbkF0UmVzdC1DYXRhbG9nRW5jcnlwdGlvbk1vZGVcbiAqL1xuZXhwb3J0IGVudW0gQ2F0YWxvZ0VuY3J5cHRpb25Nb2RlIHtcbiAgLyoqXG4gICAqIEVuY3J5cHRpb24gYXQgcmVzdCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcblxuICAvKipcbiAgICogU2VydmVyLXNpZGUgZW5jcnlwdGlvbiAoU1NFKSB3aXRoIGFuIEFXUyBLTVMga2V5LlxuICAgKi9cbiAgU1NFX0tNUyA9ICdTU0UtS01TJyxcblxuICAvKipcbiAgICogU2VydmVyLXNpZGUgZW5jcnlwdGlvbiAoU1NFKSB3aXRoIGFuIEFXUyBLTVMga2V5LCB1c2luZyBhIHNlcnZpY2Ugcm9sZSB0aGF0XG4gICAqIEFXUyBHbHVlIGFzc3VtZXMgdG8gYWNjZXNzIHRoZSBrZXkgb24geW91ciBiZWhhbGYuXG4gICAqL1xuICBTU0VfS01TX1dJVEhfU0VSVklDRV9ST0xFID0gJ1NTRS1LTVMtV0lUSC1TRVJWSUNFLVJPTEUnLFxufVxuXG4vKipcbiAqIEVuY3J5cHRpb24tYXQtcmVzdCBjb25maWd1cmF0aW9uIGZvciBhIEdsdWUgRGF0YSBDYXRhbG9nLlxuICpcbiAqIFRoZSBEYXRhIENhdGFsb2cgZW5jcnlwdGlvbiBhdCByZXN0IGFuZCB0aGUgY29ubmVjdGlvbiBwYXNzd29yZCBlbmNyeXB0aW9uXG4gKiBhcmUgaW5kZXBlbmRlbnQ6IGVuYWJsaW5nIG9uZSBkb2VzIG5vdCByZXF1aXJlIHRoZSBvdGhlciwgYW5kIGVhY2ggbWF5IHVzZSBhXG4gKiBkaWZmZXJlbnQgS01TIGtleS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC93ZWJhcGkvQVBJX0VuY3J5cHRpb25BdFJlc3QuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgRGF0YUNhdGFsb2dFbmNyeXB0aW9uQXRSZXN0IHtcbiAgLyoqXG4gICAqIERpc2FibGUgZW5jcnlwdGlvbiBhdCByZXN0IGZvciB0aGUgRGF0YSBDYXRhbG9nLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkaXNhYmxlZCgpOiBEYXRhQ2F0YWxvZ0VuY3J5cHRpb25BdFJlc3Qge1xuICAgIHJldHVybiBuZXcgRGF0YUNhdGFsb2dFbmNyeXB0aW9uQXRSZXN0KENhdGFsb2dFbmNyeXB0aW9uTW9kZS5ESVNBQkxFRCk7XG4gIH1cblxuICAvKipcbiAgICogRW5jcnlwdCB0aGUgRGF0YSBDYXRhbG9nIGF0IHJlc3Qgd2l0aCBhbiBBV1MgS01TIGtleS5cbiAgICpcbiAgICogQHBhcmFtIGtleSB0aGUgS01TIGtleSB0byB1c2UuIElmIG9taXR0ZWQsIGFuIEFXUy1tYW5hZ2VkIGtleSBpcyB1c2VkIGFuZFxuICAgKiB0aGUga2V5IGlzIG5vdCBleHBvc2VkIGFzIGEgZ3JhbnRhYmxlIHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBrbXMoa2V5Pzoga21zLklLZXlSZWYpOiBEYXRhQ2F0YWxvZ0VuY3J5cHRpb25BdFJlc3Qge1xuICAgIHJldHVybiBuZXcgRGF0YUNhdGFsb2dFbmNyeXB0aW9uQXRSZXN0KENhdGFsb2dFbmNyeXB0aW9uTW9kZS5TU0VfS01TLCBrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuY3J5cHQgdGhlIERhdGEgQ2F0YWxvZyBhdCByZXN0IHdpdGggYW4gQVdTIEtNUyBrZXksIGFjY2Vzc2VkIHRocm91Z2ggYVxuICAgKiBzZXJ2aWNlIHJvbGUgdGhhdCBBV1MgR2x1ZSBhc3N1bWVzIG9uIHlvdXIgYmVoYWxmLlxuICAgKlxuICAgKiBXaGVuIGEgY3VzdG9tZXItbWFuYWdlZCBga2V5YCBpcyBwcm92aWRlZCwgdGhlIGByb2xlYCBpcyBhdXRvbWF0aWNhbGx5XG4gICAqIGdyYW50ZWQgYGttczpFbmNyeXB0YC9ga21zOkRlY3J5cHRgL2BrbXM6R2VuZXJhdGVEYXRhS2V5KmAgb24gaXQuXG4gICAqXG4gICAqIEBwYXJhbSByb2xlIHRoZSBzZXJ2aWNlIHJvbGUgdGhhdCBBV1MgR2x1ZSBhc3N1bWVzIHRvIGFjY2VzcyB0aGUga2V5LlxuICAgKiBAcGFyYW0ga2V5IHRoZSBLTVMga2V5IHRvIHVzZS4gSWYgb21pdHRlZCwgYW4gQVdTLW1hbmFnZWQga2V5IGlzIHVzZWQgYW5kXG4gICAqIHRoZSBrZXkgaXMgbm90IGV4cG9zZWQgYXMgYSBncmFudGFibGUgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGttc1dpdGhTZXJ2aWNlUm9sZShyb2xlOiBpYW0uSVJvbGUsIGtleT86IGttcy5JS2V5UmVmKTogRGF0YUNhdGFsb2dFbmNyeXB0aW9uQXRSZXN0IHtcbiAgICByZXR1cm4gbmV3IERhdGFDYXRhbG9nRW5jcnlwdGlvbkF0UmVzdChDYXRhbG9nRW5jcnlwdGlvbk1vZGUuU1NFX0tNU19XSVRIX1NFUlZJQ0VfUk9MRSwga2V5LCByb2xlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZW5jcnlwdGlvbiBtb2RlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1vZGU6IENhdGFsb2dFbmNyeXB0aW9uTW9kZTtcblxuICAvKipcbiAgICogVGhlIGN1c3RvbWVyLW1hbmFnZWQgS01TIGtleSB1c2VkIGZvciBlbmNyeXB0aW9uIGF0IHJlc3QsIGlmIGFueS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleVJlZjtcblxuICAvKipcbiAgICogVGhlIHNlcnZpY2Ugcm9sZSB0aGF0IEFXUyBHbHVlIGFzc3VtZXMgdG8gYWNjZXNzIHRoZSBLTVMga2V5LCBpZiBhbnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZVJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihtb2RlOiBDYXRhbG9nRW5jcnlwdGlvbk1vZGUsIGttc0tleT86IGttcy5JS2V5UmVmLCBzZXJ2aWNlUm9sZT86IGlhbS5JUm9sZSkge1xuICAgIHRoaXMubW9kZSA9IG1vZGU7XG4gICAgdGhpcy5rbXNLZXkgPSBrbXNLZXk7XG4gICAgdGhpcy5zZXJ2aWNlUm9sZSA9IHNlcnZpY2VSb2xlO1xuICB9XG59XG5cbi8qKlxuICogQ29ubmVjdGlvbi1wYXNzd29yZCBlbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIGEgR2x1ZSBEYXRhIENhdGFsb2cuXG4gKlxuICogV2hlbiBlbmFibGVkLCB0aGUgRGF0YSBDYXRhbG9nIGVuY3J5cHRzIHRoZSBwYXNzd29yZCBhcyBwYXJ0IG9mXG4gKiBgQ3JlYXRlQ29ubmVjdGlvbmAgb3IgYFVwZGF0ZUNvbm5lY3Rpb25gIGFuZCBzdG9yZXMgaXQgaW4gdGhlXG4gKiBgRU5DUllQVEVEX1BBU1NXT1JEYCBmaWVsZCBvZiB0aGUgY29ubmVjdGlvbiBwcm9wZXJ0aWVzLiBUaGlzIGlzIGluZGVwZW5kZW50XG4gKiBmcm9tIGNhdGFsb2cgZW5jcnlwdGlvbiBhdCByZXN0LCBhbmQgbWF5IHVzZSBhIGRpZmZlcmVudCBLTVMga2V5LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L3dlYmFwaS9BUElfQ29ubmVjdGlvblBhc3N3b3JkRW5jcnlwdGlvbi5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvblBhc3N3b3JkRW5jcnlwdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgS01TIGtleSB1c2VkIHRvIGVuY3J5cHQgY29ubmVjdGlvbiBwYXNzd29yZHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYW4gQVdTLW1hbmFnZWQga2V5IGlzIHVzZWQgYW5kIHRoZSBrZXkgaXMgbm90IGV4cG9zZWQgYXMgYSBncmFudGFibGUgcmVzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleVJlZjtcblxuICAvKipcbiAgICogV2hldGhlciBwYXNzd29yZHMgcmVtYWluIGVuY3J5cHRlZCBpbiB0aGUgcmVzcG9uc2VzIG9mIGBHZXRDb25uZWN0aW9uYCBhbmRcbiAgICogYEdldENvbm5lY3Rpb25zYC4gVGhpcyB0YWtlcyBlZmZlY3QgaW5kZXBlbmRlbnRseSBmcm9tIGNhdGFsb2cgZW5jcnlwdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmV0dXJuQ29ubmVjdGlvblBhc3N3b3JkRW5jcnlwdGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIGEgR2x1ZSBEYXRhIENhdGFsb2cuXG4gKlxuICogRW5jcnlwdGlvbiBpcyBmaXhlZCBhdCBjb25zdHJ1Y3Rpb246IGEgY2F0YWxvZyBlaXRoZXIgY2FycmllcyBlbmNyeXB0aW9uXG4gKiBzZXR0aW5ncyBvciBpdCBkb2VzIG5vdCwgd2hpY2gga2VlcHMgaXRzIGNvbmZpZ3VyYXRpb24gZWFzeSB0byByZWFzb24gYWJvdXRcbiAqIGFuZCBhdm9pZHMgb3JkZXItZGVwZW5kZW50IG11dGF0aW9uIGFmdGVyIHRoZSBjYXRhbG9nIGlzIGNyZWF0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0YWxvZ0VuY3J5cHRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuY3J5cHRpb24tYXQtcmVzdCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2F0YWxvZy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBlbmNyeXB0aW9uIGF0IHJlc3QgaXMgbm90IG1hbmFnZWQgYnkgQ0RLICh0aGUgY2F0YWxvZyBkZWZhdWx0IGFwcGxpZXMpXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uQXRSZXN0PzogRGF0YUNhdGFsb2dFbmNyeXB0aW9uQXRSZXN0O1xuXG4gIC8qKlxuICAgKiBDb25uZWN0aW9uLXBhc3N3b3JkIGVuY3J5cHRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIGNhdGFsb2cuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gY29ubmVjdGlvbi1wYXNzd29yZCBlbmNyeXB0aW9uIGlzIG5vdCBtYW5hZ2VkIGJ5IENES1xuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvblBhc3N3b3JkRW5jcnlwdGlvbj86IENvbm5lY3Rpb25QYXNzd29yZEVuY3J5cHRpb247XG59XG5cbi8qKlxuICogQSBHbHVlIERhdGEgQ2F0YWxvZywgZWl0aGVyIHRoZSBpbXBsaWNpdCBhY2NvdW50LXdpZGUgY2F0YWxvZyBvciBvbmUgY3JlYXRlZFxuICogYXMgYW4gYEFXUzo6R2x1ZTo6Q2F0YWxvZ2AgcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNhdGFsb2cgZXh0ZW5kcyBJUmVzb3VyY2UsIElDYXRhbG9nUmVmIHtcbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgY2F0YWxvZyAoZm9yIHRoZSBhY2NvdW50LXdpZGUgY2F0YWxvZywgdGhlIEFXUyBhY2NvdW50IGlkKS5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2F0YWxvZ0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNhdGFsb2cuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNhdGFsb2dBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGN1c3RvbWVyLW1hbmFnZWQgS01TIGtleSB1c2VkIGZvciB0aGUgY2F0YWxvZydzIGVuY3J5cHRpb24gYXQgcmVzdCwgaWZcbiAgICogb25lIHdhcyBjb25maWd1cmVkLlxuICAgKlxuICAgKiBVbmRlZmluZWQgd2hlbiBlbmNyeXB0aW9uIGlzIGRpc2FibGVkIG9yIGFuIEFXUy1tYW5hZ2VkIGtleSBpcyB1c2VkLiBHcmFudFxuICAgKiBhY2Nlc3MgdG8gaXQgdmlhIGBLZXlHcmFudHNgLCBlLmcuXG4gICAqIGBpZiAoY2F0YWxvZy5lbmNyeXB0aW9uS2V5KSB7IEtleUdyYW50cy5mcm9tS2V5KGNhdGFsb2cuZW5jcnlwdGlvbktleSkuZW5jcnlwdChncmFudGVlKTsgfWAuXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXlSZWY7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b21lci1tYW5hZ2VkIEtNUyBrZXkgdXNlZCB0byBlbmNyeXB0IGNvbm5lY3Rpb24gcGFzc3dvcmRzLCBpZiBvbmVcbiAgICogd2FzIGNvbmZpZ3VyZWQuXG4gICAqXG4gICAqIFVuZGVmaW5lZCB3aGVuIHBhc3N3b3JkIGVuY3J5cHRpb24gdXNlcyBhbiBBV1MtbWFuYWdlZCBrZXkgb3IgaXMgbm90XG4gICAqIGNvbmZpZ3VyZWQuIEdyYW50IGFjY2VzcyB0byBpdCB2aWEgYEtleUdyYW50c2AsIGUuZy5cbiAgICogYGlmIChjYXRhbG9nLmNvbm5lY3Rpb25QYXNzd29yZEtleSkgeyBLZXlHcmFudHMuZnJvbUtleShjYXRhbG9nLmNvbm5lY3Rpb25QYXNzd29yZEtleSkuZW5jcnlwdChncmFudGVlKTsgfWAuXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uUGFzc3dvcmRLZXk/OiBrbXMuSUtleVJlZjtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgYElDYXRhbG9nYCBpbXBsZW1lbnRhdGlvbnMuIE1hdGVyaWFsaXplcyB0aGUgc2luZ2xlXG4gKiBgQ2ZuRGF0YUNhdGFsb2dFbmNyeXB0aW9uU2V0dGluZ3NgIHJlc291cmNlICh0YXJnZXRpbmcgaXRzIG93biBgY2F0YWxvZ0lkYClcbiAqIGZyb20gdGhlIGVuY3J5cHRpb24gb3B0aW9ucyBzdXBwbGllZCBhdCBjb25zdHJ1Y3Rpb24uIEVuY3J5cHRpb24gaXMgZml4ZWQgYXRcbiAqIGNvbnN0cnVjdGlvbiwgc28gYSBjYXRhbG9nIGVpdGhlciBjYXJyaWVzIHNldHRpbmdzIG9yIGl0IGRvZXMgbm90LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2F0YWxvZ0Jhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElDYXRhbG9nIHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNhdGFsb2dJZDogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY2F0YWxvZ0Fybjogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2VuY3J5cHRpb25LZXk/OiBrbXMuSUtleVJlZjtcbiAgcHJpdmF0ZSBfY29ubmVjdGlvblBhc3N3b3JkS2V5Pzoga21zLklLZXlSZWY7XG5cbiAgcHVibGljIGdldCBlbmNyeXB0aW9uS2V5KCk6IGttcy5JS2V5UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZW5jcnlwdGlvbktleTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29ubmVjdGlvblBhc3N3b3JkS2V5KCk6IGttcy5JS2V5UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdGlvblBhc3N3b3JkS2V5O1xuICB9XG5cbiAgcHVibGljIGdldCBjYXRhbG9nUmVmKCk6IENhdGFsb2dSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7XG4gICAgICByZXNvdXJjZUFybjogdGhpcy5jYXRhbG9nQXJuLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRW1pdCB0aGUgY2F0YWxvZydzIGVuY3J5cHRpb24gc2V0dGluZ3MgZnJvbSB0aGUgb3B0aW9ucyBmaXhlZCBhdFxuICAgKiBjb25zdHJ1Y3Rpb24uIFN1YmNsYXNzZXMgY2FsbCB0aGlzIG9uY2UsIGFmdGVyIGBjYXRhbG9nSWRgL2BjYXRhbG9nQXJuYCBhcmVcbiAgICogYXNzaWduZWQuIFdoZW4gbmVpdGhlciBibG9jayBpcyBjb25maWd1cmVkLCBubyByZXNvdXJjZSBpcyBlbWl0dGVkLCBhdm9pZGluZ1xuICAgKiBhbiBlbXB0eSBzZXR0aW5ncyByZXNvdXJjZSB0aGF0IHdvdWxkIHJlc2V0IHRoZSBjYXRhbG9nIG9uIGRlcGxveS5cbiAgICovXG4gIHByb3RlY3RlZCBjb25maWd1cmVFbmNyeXB0aW9uKG9wdGlvbnM6IENhdGFsb2dFbmNyeXB0aW9uT3B0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IGF0UmVzdCA9IG9wdGlvbnMuZW5jcnlwdGlvbkF0UmVzdDtcbiAgICBjb25zdCBwYXNzd29yZCA9IG9wdGlvbnMuY29ubmVjdGlvblBhc3N3b3JkRW5jcnlwdGlvbjtcblxuICAgIGlmICghYXRSZXN0ICYmICFwYXNzd29yZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2VuY3J5cHRpb25LZXkgPSBhdFJlc3Q/Lmttc0tleTtcbiAgICB0aGlzLl9jb25uZWN0aW9uUGFzc3dvcmRLZXkgPSBwYXNzd29yZD8ua21zS2V5O1xuXG4gICAgLy8gQXV0by1ncmFudCB0aGUgc2VydmljZSByb2xlIGFjY2VzcyB0byB0aGUgY3VzdG9tZXItbWFuYWdlZCBrZXkgaXQgbmVlZHNcbiAgICAvLyB0byBlbmNyeXB0IGFuZCBkZWNyeXB0IGNhdGFsb2cgZGF0YS4gTm90aGluZyB0byBncmFudCBmb3IgYW4gQVdTLW1hbmFnZWRcbiAgICAvLyBrZXkgKHdlIGRvbid0IG93biBpdHMga2V5IHBvbGljeSkuXG4gICAgaWYgKGF0UmVzdD8uc2VydmljZVJvbGUgJiYgYXRSZXN0Lmttc0tleSkge1xuICAgICAgS2V5R3JhbnRzLmZyb21LZXkoYXRSZXN0Lmttc0tleSkuZW5jcnlwdERlY3J5cHQoYXRSZXN0LnNlcnZpY2VSb2xlKTtcbiAgICB9XG5cbiAgICAvLyBUd28gY2F0YWxvZyBpbnN0YW5jZXMgdGhhdCB0YXJnZXQgdGhlIHNhbWUgY2F0YWxvZyBpZCB3b3VsZCBlYWNoIGVtaXQgYVxuICAgIC8vIHNldHRpbmdzIHJlc291cmNlIGFuZCByYWNlIHRvIG92ZXJ3cml0ZSBvbmUgYW5vdGhlciB2aWFcbiAgICAvLyBgUHV0RGF0YUNhdGFsb2dFbmNyeXB0aW9uU2V0dGluZ3NgLiBXaXRoaW4gb25lIHN0YWNrIHRoaXMgaXMgc3VyZmFjZWQgYnlcbiAgICAvLyBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSB2YWxpZGF0aW9uIChFMzAxOTogZHVwbGljYXRlIHByaW1hcnkgaWRlbnRpZmllcnMpLFxuICAgIC8vIHNvIHdlIGRvIG5vdCBkdXBsaWNhdGUgdGhhdCBjaGVjayBoZXJlLlxuICAgIG5ldyBDZm5EYXRhQ2F0YWxvZ0VuY3J5cHRpb25TZXR0aW5ncyh0aGlzLCAnRW5jcnlwdGlvblNldHRpbmdzJywge1xuICAgICAgY2F0YWxvZ0lkOiB0aGlzLmNhdGFsb2dJZCxcbiAgICAgIGRhdGFDYXRhbG9nRW5jcnlwdGlvblNldHRpbmdzOiB7XG4gICAgICAgIGVuY3J5cHRpb25BdFJlc3Q6IGF0UmVzdFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgY2F0YWxvZ0VuY3J5cHRpb25Nb2RlOiBhdFJlc3QubW9kZSxcbiAgICAgICAgICAgIHNzZUF3c0ttc0tleUlkOiBhdFJlc3Qua21zS2V5Py5rZXlSZWYua2V5QXJuLFxuICAgICAgICAgICAgY2F0YWxvZ0VuY3J5cHRpb25TZXJ2aWNlUm9sZTogYXRSZXN0LnNlcnZpY2VSb2xlPy5yb2xlQXJuLFxuICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgY29ubmVjdGlvblBhc3N3b3JkRW5jcnlwdGlvbjogcGFzc3dvcmRcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgIGttc0tleUlkOiBwYXNzd29yZC5rbXNLZXk/LmtleVJlZi5rZXlBcm4sXG4gICAgICAgICAgICByZXR1cm5Db25uZWN0aW9uUGFzc3dvcmRFbmNyeXB0ZWQ6IHBhc3N3b3JkLnJldHVybkNvbm5lY3Rpb25QYXNzd29yZEVuY3J5cHRlZCA/PyB0cnVlLFxuICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3Rpb24gcHJvcGVydGllcyBmb3IgYSBgQ2F0YWxvZ2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0YWxvZ1Byb3BzIGV4dGVuZHMgQ2F0YWxvZ0VuY3J5cHRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjYXRhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgY2F0YWxvZ05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgY2F0YWxvZy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHN0YWNrLXNjb3BlZCBzaW5nbGV0b24gaWQgZm9yIHRoZSBpbXBsaWNpdCBhY2NvdW50LXdpZGUgY2F0YWxvZy5cbiAqL1xuY29uc3QgQUNDT1VOVF9DQVRBTE9HX1VJRCA9ICdAYXdzLWNkay5hd3MtZ2x1ZS1hbHBoYS5BY2NvdW50Q2F0YWxvZyc7XG5cbi8qKlxuICogQSBHbHVlIERhdGEgQ2F0YWxvZy5cbiAqXG4gKiBVc2UgYENhdGFsb2cuZm9yQWNjb3VudChzY29wZSlgIHRvIG9idGFpbiB0aGUgaW1wbGljaXQgYWNjb3VudC13aWRlIGNhdGFsb2csXG4gKiBgQ2F0YWxvZy5lbmNyeXB0QWNjb3VudChzY29wZSwgb3B0aW9ucylgIHRvIGNvbmZpZ3VyZSBpdHMgRGF0YSBDYXRhbG9nXG4gKiBlbmNyeXB0aW9uLCBvciBgbmV3IENhdGFsb2coLi4uKWAgdG8gY3JlYXRlIGFuIGBBV1M6OkdsdWU6OkNhdGFsb2dgIHJlc291cmNlLlxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgQ2F0YWxvZyBleHRlbmRzIENhdGFsb2dCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZ2x1ZS1hbHBoYS5DYXRhbG9nJztcblxuICAvKipcbiAgICogT2J0YWluIHRoZSBpbXBsaWNpdCwgYWNjb3VudC13aWRlIERhdGEgQ2F0YWxvZy5cbiAgICpcbiAgICogVGhlIGFjY291bnQgY2F0YWxvZyBpcyBub3QgYSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZTsgaXQgYWx3YXlzIGV4aXN0cy4gVGhpc1xuICAgKiByZXR1cm5zIGEgc3RhY2stc2NvcGVkIHNpbmdsZXRvbiwgc28gcmVwZWF0ZWQgY2FsbHMgd2l0aGluIHRoZSBzYW1lIHN0YWNrXG4gICAqIHJldHVybiB0aGUgc2FtZSBpbnN0YW5jZS5cbiAgICpcbiAgICogVGhpcyByZXR1cm5zIHRoZSBhY2NvdW50IGNhdGFsb2cgd2l0aG91dCBtYW5hZ2luZyBpdHMgZW5jcnlwdGlvbi4gVG9cbiAgICogY29uZmlndXJlIERhdGEgQ2F0YWxvZyBlbmNyeXB0aW9uIGZvciB0aGUgYWNjb3VudCwgdXNlXG4gICAqIGBDYXRhbG9nLmVuY3J5cHRBY2NvdW50KHNjb3BlLCBvcHRpb25zKWAgaW5zdGVhZCAtIGl0IG11c3QgYmUgY2FsbGVkIGJlZm9yZVxuICAgKiB0aGUgYWNjb3VudCBjYXRhbG9nIGlzIGZpcnN0IHVzZWQgaW4gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JBY2NvdW50KHNjb3BlOiBDb25zdHJ1Y3QpOiBJQ2F0YWxvZyB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSk7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChBQ0NPVU5UX0NBVEFMT0dfVUlEKTtcbiAgICByZXR1cm4gKGV4aXN0aW5nIGFzIEFjY291bnRDYXRhbG9nKSA/PyBuZXcgQWNjb3VudENhdGFsb2coc3RhY2ssIEFDQ09VTlRfQ0FUQUxPR19VSUQsIHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgRGF0YSBDYXRhbG9nIGVuY3J5cHRpb24gZm9yIHRoZSBpbXBsaWNpdCwgYWNjb3VudC13aWRlIGNhdGFsb2cgYW5kXG4gICAqIHJldHVybiBpdC5cbiAgICpcbiAgICogVGhlIGFjY291bnQgY2F0YWxvZydzIGVuY3J5cHRpb24gaXMgYW4gYWNjb3VudC9yZWdpb24td2lkZSBzZXR0aW5nLCBtYW5hZ2VkXG4gICAqIHRocm91Z2ggdGhlIHNpbmdsZXRvbiBgUHV0RGF0YUNhdGFsb2dFbmNyeXB0aW9uU2V0dGluZ3NgIEFQSS4gQmVjYXVzZVxuICAgKiBlbmNyeXB0aW9uIGlzIGZpeGVkIGF0IGNvbnN0cnVjdGlvbiwgaXQgbXVzdCBiZSBjb25maWd1cmVkIGJlZm9yZSB0aGVcbiAgICogYWNjb3VudCBjYXRhbG9nIGlzIGZpcnN0IHVzZWQgaW4gdGhlIHN0YWNrOiBjYWxsaW5nIHRoaXMgYWZ0ZXIgdGhlIGFjY291bnRcbiAgICogY2F0YWxvZyBoYXMgYWxyZWFkeSBiZWVuIG1hdGVyaWFsaXplZCAoZm9yIGV4YW1wbGUgYnkgYENhdGFsb2cuZm9yQWNjb3VudGAsXG4gICAqIG9yIGJ5IGEgYERhdGFiYXNlYCB0aGF0IHVzZXMgdGhlIGFjY291bnQgY2F0YWxvZykgdGhyb3dzLlxuICAgKlxuICAgKiBDb25maWd1cmUgaXQgaW4gZXhhY3RseSBvbmUgc3RhY2suIENvbmZpZ3VyaW5nIGl0IGZyb20gbXVsdGlwbGUgc3RhY2tzIGluIHRoZVxuICAgKiBzYW1lIGFjY291bnQgYW5kIHJlZ2lvbiBtYWtlcyB0aG9zZSBzdGFja3Mgb3ZlcndyaXRlIG9uZSBhbm90aGVyIGF0IGRlcGxveVxuICAgKiB0aW1lLCBhbmQgdGhlIHJlc3VsdCBpcyBvcmRlci1kZXBlbmRlbnQuIFVubGlrZSBkdXBsaWNhdGUgc2V0dGluZ3Mgd2l0aGluIGFcbiAgICogc2luZ2xlIHN0YWNrICh3aGljaCBDbG91ZEZvcm1hdGlvbiByZWplY3RzKSwgdGhpcyBjcm9zcy1zdGFjayBjb25mbGljdCBpcyBub3RcbiAgICogY2F1Z2h0IGF0IHN5bnRoZXNpcyB0aW1lLCBiZWNhdXNlIGVhY2ggc3RhY2sgc3ludGhlc2l6ZXMgdG8gaXRzIG93biB0ZW1wbGF0ZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZW5jcnlwdEFjY291bnQoc2NvcGU6IENvbnN0cnVjdCwgb3B0aW9uczogQ2F0YWxvZ0VuY3J5cHRpb25PcHRpb25zKTogSUNhdGFsb2cge1xuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2Yoc2NvcGUpO1xuICAgIGlmIChzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChBQ0NPVU5UX0NBVEFMT0dfVUlEKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YEFjY291bnRDYXRhbG9nQWxyZWFkeUluVXNlYCxcbiAgICAgICAgJ3RoZSBhY2NvdW50IGNhdGFsb2cgaGFzIGFscmVhZHkgYmVlbiB1c2VkIGluIHRoaXMgc3RhY2s7IGNhbGwgQ2F0YWxvZy5lbmNyeXB0QWNjb3VudCgpIGJlZm9yZSBDYXRhbG9nLmZvckFjY291bnQoKSBvciBhbnkgRGF0YWJhc2UgdGhhdCB1c2VzIHRoZSBhY2NvdW50IGNhdGFsb2cnLFxuICAgICAgICBzY29wZSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQWNjb3VudENhdGFsb2coc3RhY2ssIEFDQ09VTlRfQ0FUQUxPR19VSUQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBjYXRhbG9nIGJ5IGl0cyBBUk4uXG4gICAqXG4gICAqIFRoZSBBUk4gbXVzdCBiZSBhIEdsdWUgY2F0YWxvZyBBUk4sIGVpdGhlciB0aGUgYWNjb3VudC13aWRlIGNhdGFsb2dcbiAgICogKGBhcm46YXdzOmdsdWU6PHJlZ2lvbj46PGFjY291bnQ+OmNhdGFsb2dgLCB3aG9zZSBpZCBpcyB0aGUgYWNjb3VudCkgb3IgYVxuICAgKiBuYW1lZCBjYXRhbG9nIChgYXJuOmF3czpnbHVlOjxyZWdpb24+OjxhY2NvdW50PjpjYXRhbG9nLzxuYW1lPmAsIHdob3NlIGlkIGlzXG4gICAqIHRoZSBuYW1lKS5cbiAgICpcbiAgICogVGhlIGltcG9ydGVkIGNhdGFsb2cgaXMgYSBwdXJlIGlkZW50aXR5IGhhbmRsZSBhbmQgZG9lcyBub3QgbWFuYWdlIHRoZVxuICAgKiBjYXRhbG9nJ3MgZW5jcnlwdGlvbi4gVG8gbWFuYWdlIGFuIGV4aXN0aW5nIGNhdGFsb2cncyBEYXRhIENhdGFsb2dcbiAgICogZW5jcnlwdGlvbiwgYWRkIGEgYENmbkRhdGFDYXRhbG9nRW5jcnlwdGlvblNldHRpbmdzYCByZXNvdXJjZSB0YXJnZXRpbmcgaXRzXG4gICAqIGlkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ2F0YWxvZ0FybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBjYXRhbG9nQXJuOiBzdHJpbmcpOiBJQ2F0YWxvZyB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSk7XG4gICAgY29uc3QgYXJuID0gc3RhY2suc3BsaXRBcm4oY2F0YWxvZ0FybiwgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpO1xuXG4gICAgLy8gT25seSB2YWxpZGF0ZSB0aGUgc2hhcGUgb2YgY29uY3JldGUgQVJOczsgYSB0b2tlbml6ZWQgQVJOIGNhbid0IGJlXG4gICAgLy8gaW5zcGVjdGVkIGF0IHN5bnRoIHRpbWUsIHNvIHdlIHRydXN0IGl0LlxuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGNhdGFsb2dBcm4pICYmIChhcm4uc2VydmljZSAhPT0gJ2dsdWUnIHx8IGFybi5yZXNvdXJjZSAhPT0gJ2NhdGFsb2cnKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YEludmFsaWRDYXRhbG9nQXJuYCxcbiAgICAgICAgYGV4cGVjdGVkIGEgR2x1ZSBjYXRhbG9nIEFSTiAoYXJuOjxwYXJ0aXRpb24+OmdsdWU6PHJlZ2lvbj46PGFjY291bnQ+OmNhdGFsb2dbLzxuYW1lPl0pLCBnb3QgJHtKU09OLnN0cmluZ2lmeShjYXRhbG9nQXJuKX1gLFxuICAgICAgICBzY29wZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gVGhlIGFjY291bnQtd2lkZSBjYXRhbG9nJ3MgQVJOIGhhcyBubyByZXNvdXJjZSBuYW1lOyBpdHMgaWQgaXMgdGhlXG4gICAgLy8gYWNjb3VudCBmcm9tIHRoZSBBUk4gaXRzZWxmIChmYWxsaW5nIGJhY2sgdG8gdGhlIHN0YWNrIGFjY291bnQgZm9yIGFcbiAgICAvLyB0b2tlbml6ZWQgQVJOIHdpdGggbm8gcGFyc2VhYmxlIGFjY291bnQpLlxuICAgIGNvbnN0IGNhdGFsb2dJZCA9IGFybi5yZXNvdXJjZU5hbWUgPz8gYXJuLmFjY291bnQgPz8gc3RhY2suYWNjb3VudDtcbiAgICByZXR1cm4gbmV3IEltcG9ydGVkQ2F0YWxvZyhzY29wZSwgaWQsIGNhdGFsb2dJZCwgY2F0YWxvZ0Fybik7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGNhdGFsb2cgYnkgaXRzIGlkLlxuICAgKlxuICAgKiBUaGUgaW1wb3J0ZWQgY2F0YWxvZyBpcyBhIHB1cmUgaWRlbnRpdHkgaGFuZGxlIGFuZCBkb2VzIG5vdCBtYW5hZ2UgdGhlXG4gICAqIGNhdGFsb2cncyBlbmNyeXB0aW9uLiBUbyBtYW5hZ2UgYW4gZXhpc3RpbmcgY2F0YWxvZydzIERhdGEgQ2F0YWxvZ1xuICAgKiBlbmNyeXB0aW9uLCBhZGQgYSBgQ2ZuRGF0YUNhdGFsb2dFbmNyeXB0aW9uU2V0dGluZ3NgIHJlc291cmNlIHRhcmdldGluZyBpdHNcbiAgICogaWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21DYXRhbG9nSWQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY2F0YWxvZ0lkOiBzdHJpbmcpOiBJQ2F0YWxvZyB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSk7XG4gICAgY29uc3QgY2F0YWxvZ0FybiA9IHN0YWNrLmZvcm1hdEFybih7IHNlcnZpY2U6ICdnbHVlJywgcmVzb3VyY2U6ICdjYXRhbG9nJywgcmVzb3VyY2VOYW1lOiBjYXRhbG9nSWQgfSk7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRlZENhdGFsb2coc2NvcGUsIGlkLCBjYXRhbG9nSWQsIGNhdGFsb2dBcm4pO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGNhdGFsb2dJZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY2F0YWxvZ0Fybjogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IENmbkNhdGFsb2c7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENhdGFsb2dQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IENmbkNhdGFsb2codGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbmFtZTogcHJvcHMuY2F0YWxvZ05hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgfSk7XG5cbiAgICB0aGlzLmNhdGFsb2dJZCA9IHRoaXMucmVzb3VyY2UuYXR0ckNhdGFsb2dJZDtcbiAgICB0aGlzLmNhdGFsb2dBcm4gPSB0aGlzLnJlc291cmNlLmF0dHJSZXNvdXJjZUFybjtcblxuICAgIHRoaXMuY29uZmlndXJlRW5jcnlwdGlvbihwcm9wcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgaW1wbGljaXQsIGFjY291bnQtd2lkZSBEYXRhIENhdGFsb2cuIE5vdCBhIENsb3VkRm9ybWF0aW9uIHJlc291cmNlOyBvbmx5XG4gKiB0aGUgZW5jcnlwdGlvbiBzZXR0aW5ncyBpdCBjYXJyaWVzIGFyZSBzeW50aGVzaXplZC5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuY2xhc3MgQWNjb3VudENhdGFsb2cgZXh0ZW5kcyBDYXRhbG9nQmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWdsdWUtYWxwaGEuQWNjb3VudENhdGFsb2cnO1xuICBwdWJsaWMgcmVhZG9ubHkgY2F0YWxvZ0lkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBjYXRhbG9nQXJuOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZW5jcnlwdGlvbjogQ2F0YWxvZ0VuY3J5cHRpb25PcHRpb25zKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIGVuY3J5cHRpb24pO1xuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2YodGhpcyk7XG4gICAgdGhpcy5jYXRhbG9nSWQgPSBzdGFjay5hY2NvdW50O1xuICAgIC8vIFRoZSBhY2NvdW50IGNhdGFsb2cncyBpZCBpcyBpbXBsaWNpdGx5IHRoZSBhY2NvdW50IGlkLCBzbyB0aGUgQVJOIGhhcyBubyByZXNvdXJjZSBuYW1lLlxuICAgIHRoaXMuY2F0YWxvZ0FybiA9IHN0YWNrLmZvcm1hdEFybih7IHNlcnZpY2U6ICdnbHVlJywgcmVzb3VyY2U6ICdjYXRhbG9nJyB9KTtcblxuICAgIHRoaXMuY29uZmlndXJlRW5jcnlwdGlvbihlbmNyeXB0aW9uKTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGltcG9ydGVkIGNhdGFsb2cuIEEgcHVyZSBpZGVudGl0eSBoYW5kbGU6IGl0IGVtaXRzIG5vIHJlc291cmNlcyBhbmQgZG9lc1xuICogbm90IG1hbmFnZSB0aGUgaW1wb3J0ZWQgY2F0YWxvZydzIGVuY3J5cHRpb24uXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmNsYXNzIEltcG9ydGVkQ2F0YWxvZyBleHRlbmRzIENhdGFsb2dCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZ2x1ZS1hbHBoYS5JbXBvcnRlZENhdGFsb2cnO1xuICBwdWJsaWMgcmVhZG9ubHkgY2F0YWxvZ0lkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBjYXRhbG9nQXJuOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY2F0YWxvZ0lkOiBzdHJpbmcsIGNhdGFsb2dBcm46IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBjYXRhbG9nSWQpO1xuICAgIHRoaXMuY2F0YWxvZ0lkID0gY2F0YWxvZ0lkO1xuICAgIHRoaXMuY2F0YWxvZ0FybiA9IGNhdGFsb2dBcm47XG4gIH1cbn1cbiJdfQ==
|
package/lib/code.js
CHANGED
|
@@ -43,7 +43,7 @@ const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
|
|
|
43
43
|
* Represents a Glue Job's Code assets (an asset can be a scripts, a jar, a python file or any other file).
|
|
44
44
|
*/
|
|
45
45
|
class Code {
|
|
46
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Code", version: "2.
|
|
46
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Code", version: "2.268.0-alpha.0" };
|
|
47
47
|
/**
|
|
48
48
|
* Job code as an S3 object.
|
|
49
49
|
* @param bucket The S3 bucket
|
|
@@ -68,7 +68,7 @@ exports.Code = Code;
|
|
|
68
68
|
class S3Code extends Code {
|
|
69
69
|
bucket;
|
|
70
70
|
key;
|
|
71
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.S3Code", version: "2.
|
|
71
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.S3Code", version: "2.268.0-alpha.0" };
|
|
72
72
|
constructor(bucket, key) {
|
|
73
73
|
super();
|
|
74
74
|
this.bucket = bucket;
|
|
@@ -91,7 +91,7 @@ exports.S3Code = S3Code;
|
|
|
91
91
|
class AssetCode extends Code {
|
|
92
92
|
path;
|
|
93
93
|
options;
|
|
94
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.AssetCode", version: "2.
|
|
94
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.AssetCode", version: "2.268.0-alpha.0" };
|
|
95
95
|
asset;
|
|
96
96
|
/**
|
|
97
97
|
* @param path The path to the Code file.
|
package/lib/connection.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
2
|
+
import type { ISecretRef } from 'aws-cdk-lib/aws-secretsmanager';
|
|
2
3
|
import * as cdk from 'aws-cdk-lib/core';
|
|
3
4
|
import type * as constructs from 'constructs';
|
|
4
5
|
/**
|
|
@@ -219,6 +220,17 @@ export interface ConnectionOptions {
|
|
|
219
220
|
readonly properties?: {
|
|
220
221
|
[key: string]: string;
|
|
221
222
|
};
|
|
223
|
+
/**
|
|
224
|
+
* A reference to a Secrets Manager secret holding the credentials for this connection.
|
|
225
|
+
*
|
|
226
|
+
* The secret is referenced through the connection's `SECRET_ID` property, so
|
|
227
|
+
* Glue reads the credentials at runtime and the secret value never appears in
|
|
228
|
+
* the synthesized template. Prefer this over placing credentials directly in
|
|
229
|
+
* `properties`. Accepts any `secretsmanager.ISecret`.
|
|
230
|
+
*
|
|
231
|
+
* @default - no secret; any credentials must be supplied via `properties`
|
|
232
|
+
*/
|
|
233
|
+
readonly secret?: ISecretRef;
|
|
222
234
|
/**
|
|
223
235
|
* A list of criteria that can be used in selecting this connection.
|
|
224
236
|
* This is useful for filtering the results of https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/get-connections.html
|
|
@@ -232,9 +244,32 @@ export interface ConnectionOptions {
|
|
|
232
244
|
readonly securityGroups?: ec2.ISecurityGroup[];
|
|
233
245
|
/**
|
|
234
246
|
* The VPC subnet to connect to resources within a VPC. See more at https://docs.aws.amazon.com/glue/latest/dg/start-connecting.html.
|
|
235
|
-
*
|
|
247
|
+
*
|
|
248
|
+
* Mutually exclusive with `vpc`: provide `subnet` to pin the connection to a
|
|
249
|
+
* specific subnet, or provide `vpc` (optionally with `vpcSubnets`) to let the
|
|
250
|
+
* CDK select one for you.
|
|
251
|
+
*
|
|
252
|
+
* @default - no subnet, unless `vpc` is provided
|
|
236
253
|
*/
|
|
237
254
|
readonly subnet?: ec2.ISubnet;
|
|
255
|
+
/**
|
|
256
|
+
* The VPC to connect to resources within. When provided, the CDK selects a
|
|
257
|
+
* subnet from this VPC using `vpcSubnets`. A Glue connection targets a single
|
|
258
|
+
* subnet, so the first subnet of the selection is used.
|
|
259
|
+
*
|
|
260
|
+
* Mutually exclusive with `subnet`.
|
|
261
|
+
*
|
|
262
|
+
* @default - no VPC, the subnet is taken from `subnet` if provided
|
|
263
|
+
*/
|
|
264
|
+
readonly vpc?: ec2.IVpc;
|
|
265
|
+
/**
|
|
266
|
+
* Which subnets of `vpc` to select the connection subnet from. Only used when
|
|
267
|
+
* `vpc` is provided. Since a Glue connection targets a single subnet, the
|
|
268
|
+
* first subnet of the selection is used.
|
|
269
|
+
*
|
|
270
|
+
* @default - private subnets
|
|
271
|
+
*/
|
|
272
|
+
readonly vpcSubnets?: ec2.SubnetSelection;
|
|
238
273
|
}
|
|
239
274
|
/**
|
|
240
275
|
* Construction properties for `Connection`
|
|
@@ -271,6 +306,11 @@ export declare class Connection extends cdk.Resource implements IConnection {
|
|
|
271
306
|
private readonly properties;
|
|
272
307
|
private readonly resource;
|
|
273
308
|
constructor(scope: constructs.Construct, id: string, props: ConnectionProps);
|
|
309
|
+
/**
|
|
310
|
+
* Determines the single subnet the connection should target, either from an
|
|
311
|
+
* explicit `subnet` or by selecting one from `vpc`.
|
|
312
|
+
*/
|
|
313
|
+
private resolveSubnet;
|
|
274
314
|
/**
|
|
275
315
|
* The name of the connection
|
|
276
316
|
*/
|