@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
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"aws-cdk-lib": "^2.268.0",
|
|
12
12
|
"constructs": "^10.5.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -148,6 +148,19 @@
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
},
|
|
151
|
+
"aws-cdk-lib.aws_accountaccess": {
|
|
152
|
+
"targets": {
|
|
153
|
+
"dotnet": {
|
|
154
|
+
"namespace": "Amazon.CDK.AWS.AccountAccess"
|
|
155
|
+
},
|
|
156
|
+
"java": {
|
|
157
|
+
"package": "software.amazon.awscdk.services.accountaccess"
|
|
158
|
+
},
|
|
159
|
+
"python": {
|
|
160
|
+
"module": "aws_cdk.aws_accountaccess"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
151
164
|
"aws-cdk-lib.aws_acmpca": {
|
|
152
165
|
"targets": {
|
|
153
166
|
"dotnet": {
|
|
@@ -161,6 +174,19 @@
|
|
|
161
174
|
}
|
|
162
175
|
}
|
|
163
176
|
},
|
|
177
|
+
"aws-cdk-lib.aws_agentregistry": {
|
|
178
|
+
"targets": {
|
|
179
|
+
"dotnet": {
|
|
180
|
+
"namespace": "Amazon.CDK.AWS.AgentRegistry"
|
|
181
|
+
},
|
|
182
|
+
"java": {
|
|
183
|
+
"package": "software.amazon.awscdk.services.agentregistry"
|
|
184
|
+
},
|
|
185
|
+
"python": {
|
|
186
|
+
"module": "aws_cdk.aws_agentregistry"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
},
|
|
164
190
|
"aws-cdk-lib.aws_aiops": {
|
|
165
191
|
"targets": {
|
|
166
192
|
"dotnet": {
|
|
@@ -447,19 +473,6 @@
|
|
|
447
473
|
}
|
|
448
474
|
}
|
|
449
475
|
},
|
|
450
|
-
"aws-cdk-lib.aws_artifact": {
|
|
451
|
-
"targets": {
|
|
452
|
-
"dotnet": {
|
|
453
|
-
"namespace": "Amazon.CDK.AWS.Artifact"
|
|
454
|
-
},
|
|
455
|
-
"java": {
|
|
456
|
-
"package": "software.amazon.awscdk.services.artifact"
|
|
457
|
-
},
|
|
458
|
-
"python": {
|
|
459
|
-
"module": "aws_cdk.aws_artifact"
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
},
|
|
463
476
|
"aws-cdk-lib.aws_athena": {
|
|
464
477
|
"targets": {
|
|
465
478
|
"dotnet": {
|
|
@@ -590,19 +603,6 @@
|
|
|
590
603
|
}
|
|
591
604
|
}
|
|
592
605
|
},
|
|
593
|
-
"aws-cdk-lib.aws_backupsearch": {
|
|
594
|
-
"targets": {
|
|
595
|
-
"dotnet": {
|
|
596
|
-
"namespace": "Amazon.CDK.AWS.BackupSearch"
|
|
597
|
-
},
|
|
598
|
-
"java": {
|
|
599
|
-
"package": "software.amazon.awscdk.services.backupsearch"
|
|
600
|
-
},
|
|
601
|
-
"python": {
|
|
602
|
-
"module": "aws_cdk.aws_backupsearch"
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
},
|
|
606
606
|
"aws-cdk-lib.aws_batch": {
|
|
607
607
|
"targets": {
|
|
608
608
|
"dotnet": {
|
|
@@ -877,6 +877,19 @@
|
|
|
877
877
|
}
|
|
878
878
|
}
|
|
879
879
|
},
|
|
880
|
+
"aws-cdk-lib.aws_cloudhsm": {
|
|
881
|
+
"targets": {
|
|
882
|
+
"dotnet": {
|
|
883
|
+
"namespace": "Amazon.CDK.AWS.CloudHSM"
|
|
884
|
+
},
|
|
885
|
+
"java": {
|
|
886
|
+
"package": "software.amazon.awscdk.services.cloudhsm"
|
|
887
|
+
},
|
|
888
|
+
"python": {
|
|
889
|
+
"module": "aws_cdk.aws_cloudhsm"
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
},
|
|
880
893
|
"aws-cdk-lib.aws_cloudtrail": {
|
|
881
894
|
"targets": {
|
|
882
895
|
"dotnet": {
|
|
@@ -1098,19 +1111,6 @@
|
|
|
1098
1111
|
}
|
|
1099
1112
|
}
|
|
1100
1113
|
},
|
|
1101
|
-
"aws-cdk-lib.aws_cognitosync": {
|
|
1102
|
-
"targets": {
|
|
1103
|
-
"dotnet": {
|
|
1104
|
-
"namespace": "Amazon.CDK.AWS.CognitoSync"
|
|
1105
|
-
},
|
|
1106
|
-
"java": {
|
|
1107
|
-
"package": "software.amazon.awscdk.services.cognitosync"
|
|
1108
|
-
},
|
|
1109
|
-
"python": {
|
|
1110
|
-
"module": "aws_cdk.aws_cognitosync"
|
|
1111
|
-
}
|
|
1112
|
-
}
|
|
1113
|
-
},
|
|
1114
1114
|
"aws-cdk-lib.aws_comprehend": {
|
|
1115
1115
|
"targets": {
|
|
1116
1116
|
"dotnet": {
|
|
@@ -1189,19 +1189,6 @@
|
|
|
1189
1189
|
}
|
|
1190
1190
|
}
|
|
1191
1191
|
},
|
|
1192
|
-
"aws-cdk-lib.aws_controlcatalog": {
|
|
1193
|
-
"targets": {
|
|
1194
|
-
"dotnet": {
|
|
1195
|
-
"namespace": "Amazon.CDK.AWS.ControlCatalog"
|
|
1196
|
-
},
|
|
1197
|
-
"java": {
|
|
1198
|
-
"package": "software.amazon.awscdk.services.controlcatalog"
|
|
1199
|
-
},
|
|
1200
|
-
"python": {
|
|
1201
|
-
"module": "aws_cdk.aws_controlcatalog"
|
|
1202
|
-
}
|
|
1203
|
-
}
|
|
1204
|
-
},
|
|
1205
1192
|
"aws-cdk-lib.aws_controltower": {
|
|
1206
1193
|
"targets": {
|
|
1207
1194
|
"dotnet": {
|
|
@@ -1254,6 +1241,19 @@
|
|
|
1254
1241
|
}
|
|
1255
1242
|
}
|
|
1256
1243
|
},
|
|
1244
|
+
"aws-cdk-lib.aws_dataexchange": {
|
|
1245
|
+
"targets": {
|
|
1246
|
+
"dotnet": {
|
|
1247
|
+
"namespace": "Amazon.CDK.AWS.DataExchange"
|
|
1248
|
+
},
|
|
1249
|
+
"java": {
|
|
1250
|
+
"package": "software.amazon.awscdk.services.dataexchange"
|
|
1251
|
+
},
|
|
1252
|
+
"python": {
|
|
1253
|
+
"module": "aws_cdk.aws_dataexchange"
|
|
1254
|
+
}
|
|
1255
|
+
}
|
|
1256
|
+
},
|
|
1257
1257
|
"aws-cdk-lib.aws_datapipeline": {
|
|
1258
1258
|
"targets": {
|
|
1259
1259
|
"dotnet": {
|
|
@@ -1449,6 +1449,19 @@
|
|
|
1449
1449
|
}
|
|
1450
1450
|
}
|
|
1451
1451
|
},
|
|
1452
|
+
"aws-cdk-lib.aws_drs": {
|
|
1453
|
+
"targets": {
|
|
1454
|
+
"dotnet": {
|
|
1455
|
+
"namespace": "Amazon.CDK.AWS.DRS"
|
|
1456
|
+
},
|
|
1457
|
+
"java": {
|
|
1458
|
+
"package": "software.amazon.awscdk.services.drs"
|
|
1459
|
+
},
|
|
1460
|
+
"python": {
|
|
1461
|
+
"module": "aws_cdk.aws_drs"
|
|
1462
|
+
}
|
|
1463
|
+
}
|
|
1464
|
+
},
|
|
1452
1465
|
"aws-cdk-lib.aws_dsql": {
|
|
1453
1466
|
"targets": {
|
|
1454
1467
|
"dotnet": {
|
|
@@ -2248,6 +2261,19 @@
|
|
|
2248
2261
|
}
|
|
2249
2262
|
}
|
|
2250
2263
|
},
|
|
2264
|
+
"aws-cdk-lib.aws_iotsecuretunneling": {
|
|
2265
|
+
"targets": {
|
|
2266
|
+
"dotnet": {
|
|
2267
|
+
"namespace": "Amazon.CDK.AWS.IoTSecureTunneling"
|
|
2268
|
+
},
|
|
2269
|
+
"java": {
|
|
2270
|
+
"package": "software.amazon.awscdk.services.iotsecuretunneling"
|
|
2271
|
+
},
|
|
2272
|
+
"python": {
|
|
2273
|
+
"module": "aws_cdk.aws_iotsecuretunneling"
|
|
2274
|
+
}
|
|
2275
|
+
}
|
|
2276
|
+
},
|
|
2251
2277
|
"aws-cdk-lib.aws_iotsitewise": {
|
|
2252
2278
|
"targets": {
|
|
2253
2279
|
"dotnet": {
|
|
@@ -2781,6 +2807,19 @@
|
|
|
2781
2807
|
}
|
|
2782
2808
|
}
|
|
2783
2809
|
},
|
|
2810
|
+
"aws-cdk-lib.aws_mgn": {
|
|
2811
|
+
"targets": {
|
|
2812
|
+
"dotnet": {
|
|
2813
|
+
"namespace": "Amazon.CDK.AWS.MGN"
|
|
2814
|
+
},
|
|
2815
|
+
"java": {
|
|
2816
|
+
"package": "software.amazon.awscdk.services.mgn"
|
|
2817
|
+
},
|
|
2818
|
+
"python": {
|
|
2819
|
+
"module": "aws_cdk.aws_mgn"
|
|
2820
|
+
}
|
|
2821
|
+
}
|
|
2822
|
+
},
|
|
2784
2823
|
"aws-cdk-lib.aws_mpa": {
|
|
2785
2824
|
"targets": {
|
|
2786
2825
|
"dotnet": {
|
|
@@ -3002,6 +3041,19 @@
|
|
|
3002
3041
|
}
|
|
3003
3042
|
}
|
|
3004
3043
|
},
|
|
3044
|
+
"aws-cdk-lib.aws_opensearch": {
|
|
3045
|
+
"targets": {
|
|
3046
|
+
"dotnet": {
|
|
3047
|
+
"namespace": "Amazon.CDK.AWS.OpenSearch"
|
|
3048
|
+
},
|
|
3049
|
+
"java": {
|
|
3050
|
+
"package": "software.amazon.awscdk.services.opensearch"
|
|
3051
|
+
},
|
|
3052
|
+
"python": {
|
|
3053
|
+
"module": "aws_cdk.aws_opensearch"
|
|
3054
|
+
}
|
|
3055
|
+
}
|
|
3056
|
+
},
|
|
3005
3057
|
"aws-cdk-lib.aws_opensearchserverless": {
|
|
3006
3058
|
"targets": {
|
|
3007
3059
|
"dotnet": {
|
|
@@ -3837,6 +3889,19 @@
|
|
|
3837
3889
|
}
|
|
3838
3890
|
}
|
|
3839
3891
|
},
|
|
3892
|
+
"aws-cdk-lib.aws_serverlessrepo": {
|
|
3893
|
+
"targets": {
|
|
3894
|
+
"dotnet": {
|
|
3895
|
+
"namespace": "Amazon.CDK.AWS.ServerlessRepo"
|
|
3896
|
+
},
|
|
3897
|
+
"java": {
|
|
3898
|
+
"package": "software.amazon.awscdk.services.serverlessrepo"
|
|
3899
|
+
},
|
|
3900
|
+
"python": {
|
|
3901
|
+
"module": "aws_cdk.aws_serverlessrepo"
|
|
3902
|
+
}
|
|
3903
|
+
}
|
|
3904
|
+
},
|
|
3840
3905
|
"aws-cdk-lib.aws_servicecatalog": {
|
|
3841
3906
|
"targets": {
|
|
3842
3907
|
"dotnet": {
|
|
@@ -4071,19 +4136,6 @@
|
|
|
4071
4136
|
}
|
|
4072
4137
|
}
|
|
4073
4138
|
},
|
|
4074
|
-
"aws-cdk-lib.aws_states": {
|
|
4075
|
-
"targets": {
|
|
4076
|
-
"dotnet": {
|
|
4077
|
-
"namespace": "Amazon.CDK.AWS.States"
|
|
4078
|
-
},
|
|
4079
|
-
"java": {
|
|
4080
|
-
"package": "software.amazon.awscdk.services.states"
|
|
4081
|
-
},
|
|
4082
|
-
"python": {
|
|
4083
|
-
"module": "aws_cdk.aws_states"
|
|
4084
|
-
}
|
|
4085
|
-
}
|
|
4086
|
-
},
|
|
4087
4139
|
"aws-cdk-lib.aws_stepfunctions": {
|
|
4088
4140
|
"targets": {
|
|
4089
4141
|
"dotnet": {
|
|
@@ -4136,6 +4188,19 @@
|
|
|
4136
4188
|
}
|
|
4137
4189
|
}
|
|
4138
4190
|
},
|
|
4191
|
+
"aws-cdk-lib.aws_supportauthz": {
|
|
4192
|
+
"targets": {
|
|
4193
|
+
"dotnet": {
|
|
4194
|
+
"namespace": "Amazon.CDK.AWS.SupportAuthZ"
|
|
4195
|
+
},
|
|
4196
|
+
"java": {
|
|
4197
|
+
"package": "software.amazon.awscdk.services.supportauthz"
|
|
4198
|
+
},
|
|
4199
|
+
"python": {
|
|
4200
|
+
"module": "aws_cdk.aws_supportauthz"
|
|
4201
|
+
}
|
|
4202
|
+
}
|
|
4203
|
+
},
|
|
4139
4204
|
"aws-cdk-lib.aws_synthetics": {
|
|
4140
4205
|
"targets": {
|
|
4141
4206
|
"dotnet": {
|
|
@@ -4162,16 +4227,16 @@
|
|
|
4162
4227
|
}
|
|
4163
4228
|
}
|
|
4164
4229
|
},
|
|
4165
|
-
"aws-cdk-lib.
|
|
4230
|
+
"aws-cdk-lib.aws_textract": {
|
|
4166
4231
|
"targets": {
|
|
4167
4232
|
"dotnet": {
|
|
4168
|
-
"namespace": "Amazon.CDK.AWS.
|
|
4233
|
+
"namespace": "Amazon.CDK.AWS.Textract"
|
|
4169
4234
|
},
|
|
4170
4235
|
"java": {
|
|
4171
|
-
"package": "software.amazon.awscdk.services.
|
|
4236
|
+
"package": "software.amazon.awscdk.services.textract"
|
|
4172
4237
|
},
|
|
4173
4238
|
"python": {
|
|
4174
|
-
"module": "aws_cdk.
|
|
4239
|
+
"module": "aws_cdk.aws_textract"
|
|
4175
4240
|
}
|
|
4176
4241
|
}
|
|
4177
4242
|
},
|
|
@@ -4214,16 +4279,16 @@
|
|
|
4214
4279
|
}
|
|
4215
4280
|
}
|
|
4216
4281
|
},
|
|
4217
|
-
"aws-cdk-lib.
|
|
4282
|
+
"aws-cdk-lib.aws_translate": {
|
|
4218
4283
|
"targets": {
|
|
4219
4284
|
"dotnet": {
|
|
4220
|
-
"namespace": "Amazon.CDK.AWS.
|
|
4285
|
+
"namespace": "Amazon.CDK.AWS.Translate"
|
|
4221
4286
|
},
|
|
4222
4287
|
"java": {
|
|
4223
|
-
"package": "software.amazon.awscdk.services.
|
|
4288
|
+
"package": "software.amazon.awscdk.services.translate"
|
|
4224
4289
|
},
|
|
4225
4290
|
"python": {
|
|
4226
|
-
"module": "aws_cdk.
|
|
4291
|
+
"module": "aws_cdk.aws_translate"
|
|
4227
4292
|
}
|
|
4228
4293
|
}
|
|
4229
4294
|
},
|
|
@@ -4331,6 +4396,19 @@
|
|
|
4331
4396
|
}
|
|
4332
4397
|
}
|
|
4333
4398
|
},
|
|
4399
|
+
"aws-cdk-lib.aws_wickr": {
|
|
4400
|
+
"targets": {
|
|
4401
|
+
"dotnet": {
|
|
4402
|
+
"namespace": "Amazon.CDK.AWS.Wickr"
|
|
4403
|
+
},
|
|
4404
|
+
"java": {
|
|
4405
|
+
"package": "software.amazon.awscdk.services.wickr"
|
|
4406
|
+
},
|
|
4407
|
+
"python": {
|
|
4408
|
+
"module": "aws_cdk.aws_wickr"
|
|
4409
|
+
}
|
|
4410
|
+
}
|
|
4411
|
+
},
|
|
4334
4412
|
"aws-cdk-lib.aws_wisdom": {
|
|
4335
4413
|
"targets": {
|
|
4336
4414
|
"dotnet": {
|
|
@@ -4497,6 +4575,22 @@
|
|
|
4497
4575
|
}
|
|
4498
4576
|
}
|
|
4499
4577
|
},
|
|
4578
|
+
"aws-cdk-lib.interfaces.aws_accountaccess": {
|
|
4579
|
+
"targets": {
|
|
4580
|
+
"dotnet": {
|
|
4581
|
+
"namespace": "Amazon.CDK.Interfaces.AccountAccess"
|
|
4582
|
+
},
|
|
4583
|
+
"go": {
|
|
4584
|
+
"packageName": "interfacesawsaccountaccess"
|
|
4585
|
+
},
|
|
4586
|
+
"java": {
|
|
4587
|
+
"package": "software.amazon.awscdk.interfaces.accountaccess"
|
|
4588
|
+
},
|
|
4589
|
+
"python": {
|
|
4590
|
+
"module": "aws_cdk.interfaces.aws_accountaccess"
|
|
4591
|
+
}
|
|
4592
|
+
}
|
|
4593
|
+
},
|
|
4500
4594
|
"aws-cdk-lib.interfaces.aws_acmpca": {
|
|
4501
4595
|
"targets": {
|
|
4502
4596
|
"dotnet": {
|
|
@@ -4513,6 +4607,22 @@
|
|
|
4513
4607
|
}
|
|
4514
4608
|
}
|
|
4515
4609
|
},
|
|
4610
|
+
"aws-cdk-lib.interfaces.aws_agentregistry": {
|
|
4611
|
+
"targets": {
|
|
4612
|
+
"dotnet": {
|
|
4613
|
+
"namespace": "Amazon.CDK.Interfaces.AgentRegistry"
|
|
4614
|
+
},
|
|
4615
|
+
"go": {
|
|
4616
|
+
"packageName": "interfacesawsagentregistry"
|
|
4617
|
+
},
|
|
4618
|
+
"java": {
|
|
4619
|
+
"package": "software.amazon.awscdk.interfaces.agentregistry"
|
|
4620
|
+
},
|
|
4621
|
+
"python": {
|
|
4622
|
+
"module": "aws_cdk.interfaces.aws_agentregistry"
|
|
4623
|
+
}
|
|
4624
|
+
}
|
|
4625
|
+
},
|
|
4516
4626
|
"aws-cdk-lib.interfaces.aws_aiops": {
|
|
4517
4627
|
"targets": {
|
|
4518
4628
|
"dotnet": {
|
|
@@ -4833,22 +4943,6 @@
|
|
|
4833
4943
|
}
|
|
4834
4944
|
}
|
|
4835
4945
|
},
|
|
4836
|
-
"aws-cdk-lib.interfaces.aws_artifact": {
|
|
4837
|
-
"targets": {
|
|
4838
|
-
"dotnet": {
|
|
4839
|
-
"namespace": "Amazon.CDK.Interfaces.Artifact"
|
|
4840
|
-
},
|
|
4841
|
-
"go": {
|
|
4842
|
-
"packageName": "interfacesawsartifact"
|
|
4843
|
-
},
|
|
4844
|
-
"java": {
|
|
4845
|
-
"package": "software.amazon.awscdk.interfaces.artifact"
|
|
4846
|
-
},
|
|
4847
|
-
"python": {
|
|
4848
|
-
"module": "aws_cdk.interfaces.aws_artifact"
|
|
4849
|
-
}
|
|
4850
|
-
}
|
|
4851
|
-
},
|
|
4852
4946
|
"aws-cdk-lib.interfaces.aws_athena": {
|
|
4853
4947
|
"targets": {
|
|
4854
4948
|
"dotnet": {
|
|
@@ -4977,22 +5071,6 @@
|
|
|
4977
5071
|
}
|
|
4978
5072
|
}
|
|
4979
5073
|
},
|
|
4980
|
-
"aws-cdk-lib.interfaces.aws_backupsearch": {
|
|
4981
|
-
"targets": {
|
|
4982
|
-
"dotnet": {
|
|
4983
|
-
"namespace": "Amazon.CDK.Interfaces.BackupSearch"
|
|
4984
|
-
},
|
|
4985
|
-
"go": {
|
|
4986
|
-
"packageName": "interfacesawsbackupsearch"
|
|
4987
|
-
},
|
|
4988
|
-
"java": {
|
|
4989
|
-
"package": "software.amazon.awscdk.interfaces.backupsearch"
|
|
4990
|
-
},
|
|
4991
|
-
"python": {
|
|
4992
|
-
"module": "aws_cdk.interfaces.aws_backupsearch"
|
|
4993
|
-
}
|
|
4994
|
-
}
|
|
4995
|
-
},
|
|
4996
5074
|
"aws-cdk-lib.interfaces.aws_batch": {
|
|
4997
5075
|
"targets": {
|
|
4998
5076
|
"dotnet": {
|
|
@@ -5345,6 +5423,22 @@
|
|
|
5345
5423
|
}
|
|
5346
5424
|
}
|
|
5347
5425
|
},
|
|
5426
|
+
"aws-cdk-lib.interfaces.aws_cloudhsm": {
|
|
5427
|
+
"targets": {
|
|
5428
|
+
"dotnet": {
|
|
5429
|
+
"namespace": "Amazon.CDK.Interfaces.CloudHSM"
|
|
5430
|
+
},
|
|
5431
|
+
"go": {
|
|
5432
|
+
"packageName": "interfacesawscloudhsm"
|
|
5433
|
+
},
|
|
5434
|
+
"java": {
|
|
5435
|
+
"package": "software.amazon.awscdk.interfaces.cloudhsm"
|
|
5436
|
+
},
|
|
5437
|
+
"python": {
|
|
5438
|
+
"module": "aws_cdk.interfaces.aws_cloudhsm"
|
|
5439
|
+
}
|
|
5440
|
+
}
|
|
5441
|
+
},
|
|
5348
5442
|
"aws-cdk-lib.interfaces.aws_cloudtrail": {
|
|
5349
5443
|
"targets": {
|
|
5350
5444
|
"dotnet": {
|
|
@@ -5569,22 +5663,6 @@
|
|
|
5569
5663
|
}
|
|
5570
5664
|
}
|
|
5571
5665
|
},
|
|
5572
|
-
"aws-cdk-lib.interfaces.aws_cognitosync": {
|
|
5573
|
-
"targets": {
|
|
5574
|
-
"dotnet": {
|
|
5575
|
-
"namespace": "Amazon.CDK.Interfaces.CognitoSync"
|
|
5576
|
-
},
|
|
5577
|
-
"go": {
|
|
5578
|
-
"packageName": "interfacesawscognitosync"
|
|
5579
|
-
},
|
|
5580
|
-
"java": {
|
|
5581
|
-
"package": "software.amazon.awscdk.interfaces.cognitosync"
|
|
5582
|
-
},
|
|
5583
|
-
"python": {
|
|
5584
|
-
"module": "aws_cdk.interfaces.aws_cognitosync"
|
|
5585
|
-
}
|
|
5586
|
-
}
|
|
5587
|
-
},
|
|
5588
5666
|
"aws-cdk-lib.interfaces.aws_comprehend": {
|
|
5589
5667
|
"targets": {
|
|
5590
5668
|
"dotnet": {
|
|
@@ -5681,22 +5759,6 @@
|
|
|
5681
5759
|
}
|
|
5682
5760
|
}
|
|
5683
5761
|
},
|
|
5684
|
-
"aws-cdk-lib.interfaces.aws_controlcatalog": {
|
|
5685
|
-
"targets": {
|
|
5686
|
-
"dotnet": {
|
|
5687
|
-
"namespace": "Amazon.CDK.Interfaces.ControlCatalog"
|
|
5688
|
-
},
|
|
5689
|
-
"go": {
|
|
5690
|
-
"packageName": "interfacesawscontrolcatalog"
|
|
5691
|
-
},
|
|
5692
|
-
"java": {
|
|
5693
|
-
"package": "software.amazon.awscdk.interfaces.controlcatalog"
|
|
5694
|
-
},
|
|
5695
|
-
"python": {
|
|
5696
|
-
"module": "aws_cdk.interfaces.aws_controlcatalog"
|
|
5697
|
-
}
|
|
5698
|
-
}
|
|
5699
|
-
},
|
|
5700
5762
|
"aws-cdk-lib.interfaces.aws_controltower": {
|
|
5701
5763
|
"targets": {
|
|
5702
5764
|
"dotnet": {
|
|
@@ -5761,6 +5823,22 @@
|
|
|
5761
5823
|
}
|
|
5762
5824
|
}
|
|
5763
5825
|
},
|
|
5826
|
+
"aws-cdk-lib.interfaces.aws_dataexchange": {
|
|
5827
|
+
"targets": {
|
|
5828
|
+
"dotnet": {
|
|
5829
|
+
"namespace": "Amazon.CDK.Interfaces.DataExchange"
|
|
5830
|
+
},
|
|
5831
|
+
"go": {
|
|
5832
|
+
"packageName": "interfacesawsdataexchange"
|
|
5833
|
+
},
|
|
5834
|
+
"java": {
|
|
5835
|
+
"package": "software.amazon.awscdk.interfaces.dataexchange"
|
|
5836
|
+
},
|
|
5837
|
+
"python": {
|
|
5838
|
+
"module": "aws_cdk.interfaces.aws_dataexchange"
|
|
5839
|
+
}
|
|
5840
|
+
}
|
|
5841
|
+
},
|
|
5764
5842
|
"aws-cdk-lib.interfaces.aws_datapipeline": {
|
|
5765
5843
|
"targets": {
|
|
5766
5844
|
"dotnet": {
|
|
@@ -6001,6 +6079,22 @@
|
|
|
6001
6079
|
}
|
|
6002
6080
|
}
|
|
6003
6081
|
},
|
|
6082
|
+
"aws-cdk-lib.interfaces.aws_drs": {
|
|
6083
|
+
"targets": {
|
|
6084
|
+
"dotnet": {
|
|
6085
|
+
"namespace": "Amazon.CDK.Interfaces.DRS"
|
|
6086
|
+
},
|
|
6087
|
+
"go": {
|
|
6088
|
+
"packageName": "interfacesawsdrs"
|
|
6089
|
+
},
|
|
6090
|
+
"java": {
|
|
6091
|
+
"package": "software.amazon.awscdk.interfaces.drs"
|
|
6092
|
+
},
|
|
6093
|
+
"python": {
|
|
6094
|
+
"module": "aws_cdk.interfaces.aws_drs"
|
|
6095
|
+
}
|
|
6096
|
+
}
|
|
6097
|
+
},
|
|
6004
6098
|
"aws-cdk-lib.interfaces.aws_dsql": {
|
|
6005
6099
|
"targets": {
|
|
6006
6100
|
"dotnet": {
|
|
@@ -6833,6 +6927,22 @@
|
|
|
6833
6927
|
}
|
|
6834
6928
|
}
|
|
6835
6929
|
},
|
|
6930
|
+
"aws-cdk-lib.interfaces.aws_iotsecuretunneling": {
|
|
6931
|
+
"targets": {
|
|
6932
|
+
"dotnet": {
|
|
6933
|
+
"namespace": "Amazon.CDK.Interfaces.IoTSecureTunneling"
|
|
6934
|
+
},
|
|
6935
|
+
"go": {
|
|
6936
|
+
"packageName": "interfacesawsiotsecuretunneling"
|
|
6937
|
+
},
|
|
6938
|
+
"java": {
|
|
6939
|
+
"package": "software.amazon.awscdk.interfaces.iotsecuretunneling"
|
|
6940
|
+
},
|
|
6941
|
+
"python": {
|
|
6942
|
+
"module": "aws_cdk.interfaces.aws_iotsecuretunneling"
|
|
6943
|
+
}
|
|
6944
|
+
}
|
|
6945
|
+
},
|
|
6836
6946
|
"aws-cdk-lib.interfaces.aws_iotsitewise": {
|
|
6837
6947
|
"targets": {
|
|
6838
6948
|
"dotnet": {
|
|
@@ -7425,10 +7535,26 @@
|
|
|
7425
7535
|
}
|
|
7426
7536
|
}
|
|
7427
7537
|
},
|
|
7428
|
-
"aws-cdk-lib.interfaces.
|
|
7538
|
+
"aws-cdk-lib.interfaces.aws_mgn": {
|
|
7429
7539
|
"targets": {
|
|
7430
7540
|
"dotnet": {
|
|
7431
|
-
"namespace": "Amazon.CDK.Interfaces.
|
|
7541
|
+
"namespace": "Amazon.CDK.Interfaces.MGN"
|
|
7542
|
+
},
|
|
7543
|
+
"go": {
|
|
7544
|
+
"packageName": "interfacesawsmgn"
|
|
7545
|
+
},
|
|
7546
|
+
"java": {
|
|
7547
|
+
"package": "software.amazon.awscdk.interfaces.mgn"
|
|
7548
|
+
},
|
|
7549
|
+
"python": {
|
|
7550
|
+
"module": "aws_cdk.interfaces.aws_mgn"
|
|
7551
|
+
}
|
|
7552
|
+
}
|
|
7553
|
+
},
|
|
7554
|
+
"aws-cdk-lib.interfaces.aws_mpa": {
|
|
7555
|
+
"targets": {
|
|
7556
|
+
"dotnet": {
|
|
7557
|
+
"namespace": "Amazon.CDK.Interfaces.MPA"
|
|
7432
7558
|
},
|
|
7433
7559
|
"go": {
|
|
7434
7560
|
"packageName": "interfacesawsmpa"
|
|
@@ -7697,6 +7823,22 @@
|
|
|
7697
7823
|
}
|
|
7698
7824
|
}
|
|
7699
7825
|
},
|
|
7826
|
+
"aws-cdk-lib.interfaces.aws_opensearch": {
|
|
7827
|
+
"targets": {
|
|
7828
|
+
"dotnet": {
|
|
7829
|
+
"namespace": "Amazon.CDK.Interfaces.OpenSearch"
|
|
7830
|
+
},
|
|
7831
|
+
"go": {
|
|
7832
|
+
"packageName": "interfacesawsopensearch"
|
|
7833
|
+
},
|
|
7834
|
+
"java": {
|
|
7835
|
+
"package": "software.amazon.awscdk.interfaces.opensearch"
|
|
7836
|
+
},
|
|
7837
|
+
"python": {
|
|
7838
|
+
"module": "aws_cdk.interfaces.aws_opensearch"
|
|
7839
|
+
}
|
|
7840
|
+
}
|
|
7841
|
+
},
|
|
7700
7842
|
"aws-cdk-lib.interfaces.aws_opensearchserverless": {
|
|
7701
7843
|
"targets": {
|
|
7702
7844
|
"dotnet": {
|
|
@@ -8609,6 +8751,22 @@
|
|
|
8609
8751
|
}
|
|
8610
8752
|
}
|
|
8611
8753
|
},
|
|
8754
|
+
"aws-cdk-lib.interfaces.aws_serverlessrepo": {
|
|
8755
|
+
"targets": {
|
|
8756
|
+
"dotnet": {
|
|
8757
|
+
"namespace": "Amazon.CDK.Interfaces.ServerlessRepo"
|
|
8758
|
+
},
|
|
8759
|
+
"go": {
|
|
8760
|
+
"packageName": "interfacesawsserverlessrepo"
|
|
8761
|
+
},
|
|
8762
|
+
"java": {
|
|
8763
|
+
"package": "software.amazon.awscdk.interfaces.serverlessrepo"
|
|
8764
|
+
},
|
|
8765
|
+
"python": {
|
|
8766
|
+
"module": "aws_cdk.interfaces.aws_serverlessrepo"
|
|
8767
|
+
}
|
|
8768
|
+
}
|
|
8769
|
+
},
|
|
8612
8770
|
"aws-cdk-lib.interfaces.aws_servicecatalog": {
|
|
8613
8771
|
"targets": {
|
|
8614
8772
|
"dotnet": {
|
|
@@ -8865,22 +9023,6 @@
|
|
|
8865
9023
|
}
|
|
8866
9024
|
}
|
|
8867
9025
|
},
|
|
8868
|
-
"aws-cdk-lib.interfaces.aws_states": {
|
|
8869
|
-
"targets": {
|
|
8870
|
-
"dotnet": {
|
|
8871
|
-
"namespace": "Amazon.CDK.Interfaces.States"
|
|
8872
|
-
},
|
|
8873
|
-
"go": {
|
|
8874
|
-
"packageName": "interfacesawsstates"
|
|
8875
|
-
},
|
|
8876
|
-
"java": {
|
|
8877
|
-
"package": "software.amazon.awscdk.interfaces.states"
|
|
8878
|
-
},
|
|
8879
|
-
"python": {
|
|
8880
|
-
"module": "aws_cdk.interfaces.aws_states"
|
|
8881
|
-
}
|
|
8882
|
-
}
|
|
8883
|
-
},
|
|
8884
9026
|
"aws-cdk-lib.interfaces.aws_stepfunctions": {
|
|
8885
9027
|
"targets": {
|
|
8886
9028
|
"dotnet": {
|
|
@@ -8929,6 +9071,22 @@
|
|
|
8929
9071
|
}
|
|
8930
9072
|
}
|
|
8931
9073
|
},
|
|
9074
|
+
"aws-cdk-lib.interfaces.aws_supportauthz": {
|
|
9075
|
+
"targets": {
|
|
9076
|
+
"dotnet": {
|
|
9077
|
+
"namespace": "Amazon.CDK.Interfaces.SupportAuthZ"
|
|
9078
|
+
},
|
|
9079
|
+
"go": {
|
|
9080
|
+
"packageName": "interfacesawssupportauthz"
|
|
9081
|
+
},
|
|
9082
|
+
"java": {
|
|
9083
|
+
"package": "software.amazon.awscdk.interfaces.supportauthz"
|
|
9084
|
+
},
|
|
9085
|
+
"python": {
|
|
9086
|
+
"module": "aws_cdk.interfaces.aws_supportauthz"
|
|
9087
|
+
}
|
|
9088
|
+
}
|
|
9089
|
+
},
|
|
8932
9090
|
"aws-cdk-lib.interfaces.aws_synthetics": {
|
|
8933
9091
|
"targets": {
|
|
8934
9092
|
"dotnet": {
|
|
@@ -8961,19 +9119,19 @@
|
|
|
8961
9119
|
}
|
|
8962
9120
|
}
|
|
8963
9121
|
},
|
|
8964
|
-
"aws-cdk-lib.interfaces.
|
|
9122
|
+
"aws-cdk-lib.interfaces.aws_textract": {
|
|
8965
9123
|
"targets": {
|
|
8966
9124
|
"dotnet": {
|
|
8967
|
-
"namespace": "Amazon.CDK.Interfaces.
|
|
9125
|
+
"namespace": "Amazon.CDK.Interfaces.Textract"
|
|
8968
9126
|
},
|
|
8969
9127
|
"go": {
|
|
8970
|
-
"packageName": "
|
|
9128
|
+
"packageName": "interfacesawstextract"
|
|
8971
9129
|
},
|
|
8972
9130
|
"java": {
|
|
8973
|
-
"package": "software.amazon.awscdk.interfaces.
|
|
9131
|
+
"package": "software.amazon.awscdk.interfaces.textract"
|
|
8974
9132
|
},
|
|
8975
9133
|
"python": {
|
|
8976
|
-
"module": "aws_cdk.interfaces.
|
|
9134
|
+
"module": "aws_cdk.interfaces.aws_textract"
|
|
8977
9135
|
}
|
|
8978
9136
|
}
|
|
8979
9137
|
},
|
|
@@ -9025,19 +9183,19 @@
|
|
|
9025
9183
|
}
|
|
9026
9184
|
}
|
|
9027
9185
|
},
|
|
9028
|
-
"aws-cdk-lib.interfaces.
|
|
9186
|
+
"aws-cdk-lib.interfaces.aws_translate": {
|
|
9029
9187
|
"targets": {
|
|
9030
9188
|
"dotnet": {
|
|
9031
|
-
"namespace": "Amazon.CDK.Interfaces.
|
|
9189
|
+
"namespace": "Amazon.CDK.Interfaces.Translate"
|
|
9032
9190
|
},
|
|
9033
9191
|
"go": {
|
|
9034
|
-
"packageName": "
|
|
9192
|
+
"packageName": "interfacesawstranslate"
|
|
9035
9193
|
},
|
|
9036
9194
|
"java": {
|
|
9037
|
-
"package": "software.amazon.awscdk.interfaces.
|
|
9195
|
+
"package": "software.amazon.awscdk.interfaces.translate"
|
|
9038
9196
|
},
|
|
9039
9197
|
"python": {
|
|
9040
|
-
"module": "aws_cdk.interfaces.
|
|
9198
|
+
"module": "aws_cdk.interfaces.aws_translate"
|
|
9041
9199
|
}
|
|
9042
9200
|
}
|
|
9043
9201
|
},
|
|
@@ -9169,6 +9327,22 @@
|
|
|
9169
9327
|
}
|
|
9170
9328
|
}
|
|
9171
9329
|
},
|
|
9330
|
+
"aws-cdk-lib.interfaces.aws_wickr": {
|
|
9331
|
+
"targets": {
|
|
9332
|
+
"dotnet": {
|
|
9333
|
+
"namespace": "Amazon.CDK.Interfaces.Wickr"
|
|
9334
|
+
},
|
|
9335
|
+
"go": {
|
|
9336
|
+
"packageName": "interfacesawswickr"
|
|
9337
|
+
},
|
|
9338
|
+
"java": {
|
|
9339
|
+
"package": "software.amazon.awscdk.interfaces.wickr"
|
|
9340
|
+
},
|
|
9341
|
+
"python": {
|
|
9342
|
+
"module": "aws_cdk.interfaces.aws_wickr"
|
|
9343
|
+
}
|
|
9344
|
+
}
|
|
9345
|
+
},
|
|
9172
9346
|
"aws-cdk-lib.interfaces.aws_wisdom": {
|
|
9173
9347
|
"targets": {
|
|
9174
9348
|
"dotnet": {
|
|
@@ -9409,7 +9583,7 @@
|
|
|
9409
9583
|
},
|
|
9410
9584
|
"name": "@aws-cdk/aws-glue-alpha",
|
|
9411
9585
|
"readme": {
|
|
9412
|
-
"markdown": "# AWS Glue Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\n## README\n\n[AWS Glue](https://aws.amazon.com/glue/) is a serverless data integration\nservice that makes it easier to discover, prepare, move, and integrate data\nfrom multiple sources for analytics, machine learning (ML), and application\ndevelopment.\n\nThe Glue L2 construct has convenience methods working backwards from common\nuse cases and sets required parameters to defaults that align with recommended\nbest practices for each job type. It also provides customers with a balance\nbetween flexibility via optional parameter overrides, and opinionated\ninterfaces that discouraging anti-patterns, resulting in reduced time to develop\nand deploy new resources.\n\n### References\n\n* [Glue Launch Announcement](https://aws.amazon.com/blogs/aws/launch-aws-glue-now-generally-available/)\n* [Glue Documentation](https://docs.aws.amazon.com/glue/index.html)\n* [Glue L1 (CloudFormation) Constructs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Glue.html)\n* Prior version of the [@aws-cdk/aws-glue-alpha module](https://github.com/aws/aws-cdk/blob/v2.51.1/packages/%40aws-cdk/aws-glue/README.md)\n\n## Create a Glue Job\n\nA Job encapsulates a script that connects to data sources, processes\nthem, and then writes output to a data target. There are four types of Glue\nJobs: Spark (ETL and Streaming), Python Shell, and Flex Jobs. Most\nof the required parameters for these jobs are common across all types,\nbut there are a few differences depending on the languages supported\nand features provided by each type. For all job types, the L2 defaults\nto AWS best practice recommendations, such as:\n\n* Use of Secrets Manager for Connection JDBC strings\n* Glue job autoscaling\n* Default parameter values for Glue job creation\n\nThis iteration of the L2 construct introduces breaking changes to\nthe existing glue-alpha-module, but these changes streamline the developer\nexperience, introduce new constants for defaults, and replacing synth-time\nvalidations with interface contracts for enforcement of the parameter combinations\nthat Glue supports. As an opinionated construct, the Glue L2 construct does\nnot allow developers to create resources that use non-current versions\nof Glue or deprecated language dependencies (e.g. deprecated versions of Python).\nAs always, L1s allow you to specify a wider range of parameters if you need\nor want to use alternative configurations.\n\nOptional and required parameters for each job are enforced via interface\nrather than validation; see [Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html)\nfor more granular details.\n\n### Spark Jobs\n\n#### ETL Jobs\n\nETL jobs support pySpark and Scala languages, for which there are separate but\nsimilar constructors. ETL jobs default to the G2 worker type, but you can\noverride this default with other supported worker type values (G1, G2, G4\nand G8). ETL jobs defaults to Glue version 4.0, which you can override to 3.0.\nThe following ETL features are enabled by default:\n`—enable-metrics, —enable-continuous-cloudwatch-log.`\nThe Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the\n`sparkUI` prop.\nYou can find more details about version, worker type and other features in\n[Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html).\n\nReference the pyspark-etl-jobs.test.ts and scalaspark-etl-jobs.test.ts unit tests\nfor examples of required-only and optional job parameters when creating these\ntypes of jobs.\n\nFor the sake of brevity, examples are shown using the pySpark job variety.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n});\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n jobName: 'PySparkETLJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerConfiguration: {\n workerType: glue.WorkerType.G_2X,\n numberOfWorkers: 2,\n },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n#### Streaming Jobs\n\nStreaming jobs are similar to ETL jobs, except that they perform ETL on data\nstreams using the Apache Spark Structured Streaming framework. Some Spark\njob features are not available to Streaming ETL jobs. They support Scala\nand pySpark languages. PySpark streaming jobs run on Python 3. It\ndefaults to the G2 worker type and Glue 4.0, both of which you can override.\nThe following best practice features are enabled by default:\n`—enable-metrics, —enable-continuous-cloudwatch-log`.\nThe Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the\n`sparkUI` prop.\n\nReference the pyspark-streaming-jobs.test.ts and scalaspark-streaming-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'PySparkStreamingJob', {\n jobName: 'PySparkStreamingJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerConfiguration: {\n workerType: glue.WorkerType.G_2X,\n numberOfWorkers: 2,\n },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n#### Flex Jobs\n\nThe flexible execution class is appropriate for non-urgent jobs such as\npre-production jobs, testing, and one-time data loads. Flexible jobs default\nto Glue version 5.0 and worker type `G_2X`. The following best practice\nfeatures are enabled by default:\n`—enable-metrics, —enable-continuous-cloudwatch-log`\nThe Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the\n`sparkUI` prop.\n\nReference the pyspark-flex-etl-jobs.test.ts and scalaspark-flex-etl-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'pySparkFlexEtlJob', {\n jobName: 'pySparkFlexEtlJob',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerConfiguration: {\n workerType: glue.WorkerType.G_2X,\n numberOfWorkers: 2,\n },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n### Python Shell Jobs\n\nPython shell jobs support a Python version that depends on the AWS Glue\nversion you use. These can be used to schedule and run tasks that don't\nrequire an Apache Spark environment. Python shell jobs default to\nPython 3.9 and a MaxCapacity of `0.0625`. Python 3.9 supports pre-loaded\nanalytics libraries using the `library-set=analytics` flag, which is\nenabled by default.\n\nReference the pyspark-shell-job.test.ts unit tests for examples of\nrequired-only and optional job parameters when creating these types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PythonShellJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\ndeclare const extraPythonFile: glue.Code;\nnew glue.PythonShellJob(stack, 'PythonShellJob', {\n jobName: 'PythonShellJobCustomName',\n description: 'This is a description',\n pythonVersion: glue.PythonVersion.THREE_NINE,\n maxCapacity: glue.MaxCapacity.DPU_1,\n role,\n script,\n extraPythonFiles: [extraPythonFile],\n glueVersion: glue.GlueVersion.V3_0,\n continuousLogging: { enabled: false },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n### Ray Jobs\n\n> **⚠️ DEPRECATED:** AWS Glue for Ray is closed to new customers as of April 30, 2026 and is in maintenance mode.\n> Migrate to [Amazon EKS with KubeRay Operator](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html).\n\nThe `RayJob` construct, `Runtime.RAY_TWO_FOUR`, and `JobType.RAY` are deprecated and will be removed in a future release.\n\n### Metrics Control\n\nBy default, Glue jobs enable CloudWatch metrics (`--enable-metrics`) and observability metrics (`--enable-observability-metrics`) for monitoring and debugging. You can disable these metrics to reduce CloudWatch costs:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Disable both metrics for cost optimization\nnew glue.PySparkEtlJob(stack, 'CostOptimizedJob', {\n role,\n script,\n enableMetrics: false,\n enableObservabilityMetrics: false,\n});\n\n// Selective control - keep observability, disable profiling\nnew glue.PySparkEtlJob(stack, 'SelectiveJob', {\n role,\n script,\n enableMetrics: false,\n // enableObservabilityMetrics defaults to true\n});\n```\n\nThis feature is available for all Spark job types (ETL, Streaming, Flex).\n\n### Enable Job Run Queuing\n\nAWS Glue job queuing monitors your account level quotas and limits. If quotas or limits are insufficient to start a Glue job run, AWS Glue will automatically queue the job and wait for limits to free up. Once limits become available, AWS Glue will retry the job run. Glue jobs will queue for limits like max concurrent job runs per account, max concurrent Data Processing Units (DPU), and resource unavailable due to IP address exhaustion in Amazon Virtual Private Cloud (Amazon VPC).\n\nEnable job run queuing by setting the `jobRunQueuingEnabled` property to `true`.\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n jobRunQueuingEnabled: true\n});\n```\n\n### Uploading scripts from the CDK app repository to S3\n\nSimilar to other L2 constructs, the Glue L2 automates uploading local\nscripts to S3. Use `glue.Code.fromAsset(path)` to point at a script in your\nlocal file structure; it is uploaded to the CDK-managed asset bucket. To\nreference a script that already exists in S3, use\n`glue.Code.fromBucket(bucket, key)`, which performs no upload. A `script` is\nrequired for every job.\n\nReference the unit tests for examples of repo and S3 code target examples.\n\n### Workflow Triggers\n\nYou can use Glue workflows to create and visualize complex\nextract, transform, and load (ETL) activities involving multiple crawlers,\njobs, and triggers. Standalone triggers are an anti-pattern, so you must\ncreate triggers from within a workflow using the L2 construct.\n\nWithin a workflow object, there are functions to create different\ntypes of triggers with actions and predicates. You add triggers to the\nworkflow, and each trigger references the jobs or crawlers it runs as its\nactions.\n\n`startOnCreation` applies to scheduled triggers (and, via\n`ConditionalTriggerOptions`, conditional triggers) only. It defaults to `false`,\nbut you can override it if you prefer for your trigger to start on creation.\n\nReference the workflow-triggers.test.ts unit tests for examples of creating\nworkflows and triggers.\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [{ job }],\n});\n```\n\n#### **1. On-Demand Triggers**\n\nOn-demand triggers can start glue jobs or crawlers. This construct provides\nconvenience functions to create on-demand crawler or job triggers. The constructor\ntakes an optional description parameter, but abstracts the requirement of an\nactions list using the job or crawler objects using conditional types.\n\n#### **2. Scheduled Triggers**\n\nYou can create scheduled triggers using cron expressions. This construct\nprovides daily and weekly convenience functions,\nas well as a custom function that allows you to create your own\ncustom timing using the [existing event Schedule class](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.Schedule.html)\nwithout having to build your own cron expressions. The L2 extracts\nthe expression that Glue requires from the Schedule object. The constructor\ntakes an optional description and a list of jobs or crawlers as actions.\n\n#### **3. Notify Event Triggers**\n\nThere are two types of notify event triggers: batching and non-batching.\nFor batching triggers, you must specify `BatchSize`. For non-batching\ntriggers, `BatchSize` defaults to 1. For both triggers, `BatchWindow`\ndefaults to 900 seconds, but you can override the window to align with\nyour workload's requirements.\n\n#### **4. Conditional Triggers**\n\nConditional triggers have a predicate and actions associated with them.\nThe trigger actions are executed when the predicateCondition is true.\n\n### Connection Properties\n\nA `Connection` allows Glue jobs, crawlers and development endpoints to access\ncertain types of data stores.\n\n* **Secrets Management**\n You must specify JDBC connection credentials in Secrets Manager and\n provide the Secrets Manager Key name as a property to the job connection.\n\n* **Networking - the CDK determines the best fit subnet for Glue connection\nconfiguration**\n The prior version of the glue-alpha-module requires the developer to\n specify the subnet of the Connection when it’s defined. Now, you can still\n specify the specific subnet you want to use, but are no longer required\n to. You are only required to provide a VPC and either a public or private\n subnet selection. Without a specific subnet provided, the L2 leverages the\n existing [EC2 Subnet Selection](https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_ec2/SubnetSelection.html)\n library to make the best choice selection for the subnet.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n // The security groups granting AWS Glue inbound access to the data source within the VPC\n securityGroups: [securityGroup],\n // The VPC subnet which contains the data source\n subnet,\n});\n```\n\nFor RDS `Connection` by JDBC, it is recommended to manage credentials using AWS Secrets Manager. To use Secret, specify `SECRET_ID` in `properties` like the following code. 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.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const db: rds.DatabaseCluster;\nnew glue.Connection(this, \"RdsConnection\", {\n type: glue.ConnectionType.JDBC,\n securityGroups: [securityGroup],\n subnet,\n properties: {\n JDBC_CONNECTION_URL: `jdbc:mysql://${db.clusterEndpoint.socketAddress}/databasename`,\n JDBC_ENFORCE_SSL: \"false\",\n SECRET_ID: db.secret!.secretName,\n },\n});\n```\n\nConnection `properties` are emitted verbatim into the CloudFormation template, so\nany credential placed there in plaintext is stored in plaintext in the template,\n`cdk.out`, and source control. Reference a Secrets Manager secret through\n`SECRET_ID` (as above) instead. If a property key looks like a credential (for\nexample `PASSWORD`, `SECRET`, or `TOKEN`) and holds a plaintext literal, the\nconstruct emits a synthesis-time warning.\n\nIf you need to use a connection type that doesn't exist as a static member on `ConnectionType`, you can instantiate a `ConnectionType` object, e.g: `new glue.ConnectionType('NEW_TYPE')`.\n\nSee [Adding a Connection to Your Data Store](https://docs.aws.amazon.com/glue/latest/dg/populate-add-connection.html) and [Connection Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-connections.html#aws-glue-api-catalog-connections-Connection) documentation for more information on the supported data stores and their configurations.\n\n## SecurityConfiguration\n\nA `SecurityConfiguration` is a set of security properties that can be used by AWS Glue to encrypt data at rest.\n\nEach encryption config is built with a factory that pairs the encryption mode\nwith its key, so illegal combinations (such as an S3-managed encryption carrying\na KMS key) cannot be expressed:\n\n```ts\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: glue.CloudWatchEncryption.kms(),\n jobBookmarksEncryption: glue.JobBookmarksEncryption.clientSideKms(),\n s3Encryption: glue.S3Encryption.kms(),\n});\n```\n\nBy default, a shared KMS key is created for use with the encryption configurations that require one. You can also supply your own key to any factory, for example, for CloudWatch encryption:\n\n```ts\ndeclare const key: kms.Key;\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: glue.CloudWatchEncryption.kms(key),\n});\n```\n\nUse `glue.S3Encryption.s3Managed()` for S3-managed (SSE-S3) encryption, which takes no key.\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html) for more info for Glue encrypting data written by Crawlers, Jobs, and Development Endpoints.\n\n## Catalog\n\nThe Glue Data Catalog is a persistent metadata store for your data assets. Every\naccount has an implicit, account-wide catalog that always exists, and you can also\ncreate additional catalogs as `AWS::Glue::Catalog` resources (for example, to\nfederate to another metastore).\n\nA catalog's encryption is fixed when the catalog is created: a catalog either\ncarries encryption settings or it does not. This keeps its configuration easy to\nreason about — there are no mutation methods that change encryption after the fact.\n\n### The account-wide catalog\n\nUse `Catalog.forAccount(scope)` to obtain the implicit account catalog. It is not\na CloudFormation resource — it always exists. Repeated calls within the same stack\nreturn the same instance:\n\n```ts\nconst catalog = glue.Catalog.forAccount(this);\n```\n\nTo configure Data Catalog encryption for the account, use\n`Catalog.encryptAccount(scope, options)`:\n\n```ts\ndeclare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});\n```\n\nBecause encryption is fixed at construction, `encryptAccount` must be called\n*before* the account catalog is first used in the stack — before any\n`Catalog.forAccount(this)` call, and before any `Database` that uses the account\ncatalog. Calling it after the account catalog has been materialized throws.\n\nThe account catalog's encryption is an account- and region-wide setting, managed\nthrough the singleton `PutDataCatalogEncryptionSettings` API. Configure it in\nexactly one stack. Configuring it from multiple stacks in the same account and\nregion makes those stacks overwrite one another at deploy time, and the result is\norder-dependent. Unlike duplicate settings within a single stack (which\nCloudFormation rejects), this cross-stack conflict is not caught at synthesis\ntime, because each stack synthesizes to its own template.\n\n### Creating a catalog\n\nTo create a new catalog resource, use the `Catalog` constructor. Encryption is\nconfigured through the `encryptionAtRest` and `connectionPasswordEncryption` props:\n\n```ts\nnew glue.Catalog(this, 'MyCatalog', {\n catalogName: 'my-catalog',\n description: 'my catalog description',\n});\n```\n\n### Encryption at rest\n\nConfigure Data Catalog encryption at rest through the `encryptionAtRest` option\n(on `Catalog.encryptAccount` or the `Catalog` constructor).\nIt accepts a `DataCatalogEncryptionAtRest` describing the mode:\n\n```ts\ndeclare const key: kms.Key;\n\n// SSE-KMS with a customer-managed key\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});\n\n// SSE-KMS with an AWS-managed key (omit the key)\nnew glue.Catalog(this, 'ManagedKeyCatalog', {\n catalogName: 'managed-key-catalog',\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(),\n});\n\n// Disable encryption at rest\nnew glue.Catalog(this, 'PlaintextCatalog', {\n catalogName: 'plaintext-catalog',\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.disabled(),\n});\n```\n\nWhen you use `SSE-KMS-WITH-SERVICE-ROLE`, AWS Glue accesses the KMS key through a\nservice role you provide. If you pass a customer-managed key, the role is\nautomatically granted the permissions it needs to encrypt and decrypt catalog data:\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const key: kms.Key;\ndeclare const role: iam.IRole;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kmsWithServiceRole(role, key),\n});\n```\n\nThe customer-managed key, when configured, is exposed on the catalog as\n`encryptionKey` (and the connection-password key as `connectionPasswordKey`), so\nyou can reference it to grant additional access. It is undefined when encryption is\ndisabled or an AWS-managed key is used.\n\n### Connection password encryption\n\nIndependently from encryption at rest, the Data Catalog can encrypt the passwords\nstored in connection properties. Configure it through the\n`connectionPasswordEncryption` option:\n\n```ts\ndeclare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n connectionPasswordEncryption: {\n kmsKey: key,\n // Whether GetConnection/GetConnections return the password encrypted (default: true)\n returnConnectionPasswordEncrypted: true,\n },\n});\n```\n\nThe two encryption blocks are independent: enabling one does not require the other,\nand each may use a different KMS key. The customer-managed key for connection\npasswords is exposed as `connectionPasswordKey`.\n\n### Importing a catalog\n\nYou can import an existing catalog by ARN or by id. An imported catalog is a pure\nidentity handle — it emits no resources and does not manage the catalog's\nencryption:\n\n```ts\nconst byId = glue.Catalog.fromCatalogId(this, 'ById', 'my-catalog-id');\nconst byArn = glue.Catalog.fromCatalogArn(this, 'ByArn', 'arn:aws:glue:us-east-1:123456789012:catalog/my-catalog-id');\n```\n\nTo manage the Data Catalog encryption of a catalog you did not create in this\nstack, add a `CfnDataCatalogEncryptionSettings` resource targeting its id\ndirectly. Do this from exactly one stack: like the account catalog, a catalog has\na single encryption configuration, so two settings resources targeting the same id\nrace to overwrite one another at deploy time. Within a single stack this is caught\nby CloudFormation template validation (E3019, duplicate primary identifiers);\nacross stacks it is not, since each stack synthesizes to its own template.\n\n```ts\nimport { CfnDataCatalogEncryptionSettings } from 'aws-cdk-lib/aws-glue';\n\nnew CfnDataCatalogEncryptionSettings(this, 'Encryption', {\n catalogId: 'my-catalog-id',\n dataCatalogEncryptionSettings: {\n encryptionAtRest: { catalogEncryptionMode: 'SSE-KMS' },\n },\n});\n```\n\n## Database\n\nA `Database` is a logical grouping of `Tables` in the Glue Catalog.\n\n```ts\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n description: 'my_database_description',\n});\n```\n\nBecause a database is a container for tables and their metadata, it is retained\nby default when removed from the stack, to avoid accidental data loss. Set\n`removalPolicy` to `RemovalPolicy.DESTROY` to have it deleted instead:\n\n```ts\nimport { RemovalPolicy } from 'aws-cdk-lib';\n\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n removalPolicy: RemovalPolicy.DESTROY,\n});\n```\n\n## Table\n\nA Glue table describes a table of data in S3: its structure (column names and types), location of data (S3 objects with a common prefix in a S3 bucket), and format for the files (Json, Avro, Parquet, etc.):\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }, {\n name: 'col2',\n type: glue.Schema.array(glue.Schema.STRING),\n comment: 'col2 is an array of strings' // comment is optional\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nBy default, a S3 bucket will be created to store the table's data but you can manually pass the `bucket` and `s3Prefix`:\n\n```ts\ndeclare const myBucket: s3.Bucket;\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n bucket: myBucket,\n s3Prefix: 'my-table/',\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can be configured to contain user-defined properties, to describe the physical storage of table data, through the `storageParameters` property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('separatorChar', ',')\n ],\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can also be configured to contain user-defined table properties through the [`parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters) property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n parameters: {\n key1: 'val1',\n key2: 'val2',\n },\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Keys\n\nTo improve query performance, a table can specify `partitionKeys` on which data is stored and queried separately. For example, you might partition a table by `year` and `month` to optimize queries based on a time window:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Indexes\n\nAnother way to improve query performance is to specify partition indexes. If no partition indexes are\npresent on the table, AWS Glue loads all partitions of the table and filters the loaded partitions using\nthe query expression. The query takes more time to run as the number of partitions increase. With an\nindex, the query will try to fetch a subset of the partitions instead of loading all partitions of the\ntable.\n\nThe keys of a partition index must be a subset of the partition keys of the table. You can have a\nmaximum of 3 partition indexes per table. To specify a partition index, you can use the `partitionIndexes`\nproperty:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n partitionIndexes: [{\n indexName: 'my-index', // optional\n keyNames: ['year'],\n }], // supply up to 3 indexes\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nAlternatively, you can call the `addPartitionIndex()` function on a table:\n\n```ts\ndeclare const myTable: glue.S3Table;\nmyTable.addPartitionIndex({\n indexName: 'my-index',\n keyNames: ['year'],\n});\n```\n\n### Partition Filtering\n\nIf you have a table with a large number of partitions that grows over time, consider using AWS Glue partition indexing and filtering.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n enablePartitionFiltering: true,\n});\n```\n\n### Partition Projection\n\nPartition projection allows Athena to automatically add new partitions as new data arrives, without requiring `ALTER TABLE ADD PARTITION` statements. This improves query performance and reduces management overhead by eliminating the need to manually manage partition metadata.\n\nFor more information, see the [AWS documentation on partition projection](https://docs.aws.amazon.com/athena/latest/ug/partition-projection.html).\n\n#### INTEGER Projection\n\nFor partition keys with sequential numeric values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.INTEGER,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n interval: 1, // optional, defaults to 1\n digits: 4, // optional, pads with leading zeros\n }),\n },\n});\n```\n\n#### DATE Projection\n\nFor partition keys with date or timestamp values. Supports both fixed dates and relative dates using `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});\n```\n\nYou can also use relative dates with `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: 'NOW-3YEARS',\n max: 'NOW',\n format: 'yyyy-MM-dd',\n }),\n },\n});\n```\n\n#### ENUM Projection\n\nFor partition keys with a known set of values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'region',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2', 'eu-west-1'],\n }),\n },\n});\n```\n\n#### INJECTED Projection\n\nFor custom partition values injected at query time:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'custom',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n custom: glue.PartitionProjectionConfiguration.injected(),\n },\n});\n```\n\n#### Multiple Partition Projections\n\nYou can configure partition projection for multiple partition keys:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [\n {\n name: 'year',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'month',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'region',\n type: glue.Schema.STRING,\n },\n ],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n }),\n month: glue.PartitionProjectionConfiguration.integer({\n min: 1,\n max: 12,\n digits: 2,\n }),\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2'],\n }),\n },\n});\n```\n\n### Glue Connections\n\nGlue connections allow external data connections to third party databases and data warehouses. However, these connections can also be assigned to Glue Tables, allowing you to query external data sources using the Glue Data Catalog.\n\nWhereas `S3Table` will point to (and if needed, create) a bucket to store the tables' data, `ExternalTable` will point to an existing table in a data source. For example, to create a table in Glue that points to a table in Redshift:\n\n```ts\ndeclare const myConnection: glue.Connection;\ndeclare const myDatabase: glue.Database;\nnew glue.ExternalTable(this, 'MyTable', {\n connection: myConnection,\n externalDataLocation: 'default_db_public_example', // A table in Redshift\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## Data Quality Ruleset\n\nA `DataQualityRuleset` defines a set of data quality rules — authored in Glue's\nData Quality Definition Language (DQDL) — that are evaluated against a table in\nthe Data Catalog.\n\n```ts\nnew glue.DataQualityRuleset(this, 'MyRuleset', {\n rulesetName: 'my_ruleset',\n dqdl: glue.Dqdl.fromString('Rules = [ RowCount > 100, IsComplete \"order_id\" ]'),\n targetTable: new glue.DataQualityTargetTable('my_database', 'my_table'),\n});\n```\n\nBuild the DQDL document with `Dqdl.fromString(...)`. Glue parses and validates the\nDQDL when the ruleset is deployed; see the\n[DQDL reference](https://docs.aws.amazon.com/glue/latest/dg/dqdl.html) for the\nfull rule syntax.\n\n## [Encryption](https://docs.aws.amazon.com/athena/latest/ug/encryption.html)\n\nWhen the table creates its own S3 bucket (i.e. you do not pass an explicit `bucket`), that bucket enforces SSL: a bucket policy denies any request made over plain HTTP. If you provide your own bucket, enabling `enforceSSL` on it is your responsibility.\n\nYou can enable encryption on a Table's data:\n\n* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - (default) Server side encryption (`SSE-S3`) with an Amazon S3-managed key.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.S3_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [Kms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [KmsManaged](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`), like `Kms`, except with an AWS KMS Key managed by the AWS Key Management Service.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [ClientSideKms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html#client-side-encryption-kms-managed-master-key-intro) - Client-side encryption (`CSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n*Note: you cannot provide a `Bucket` when creating the `S3Table` if you wish to use server-side encryption (`KMS`, `KMS_MANAGED` or `S3_MANAGED`)*.\n\n### Marking table data as encrypted\n\nBoth `S3Table` and `ExternalTable` set the `has_encrypted_data` table parameter, which\nAthena reads when querying client-side (`CSE-KMS`) encrypted datasets. It defaults to `true`.\nSet `hasEncryptedData` to `false` when the underlying data is not encrypted:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n hasEncryptedData: false,\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nDo not set `has_encrypted_data` through the free-form `parameters` map as well - a value\nthere that conflicts with `hasEncryptedData` is rejected at synthesis time.\n\n## Types\n\nA table's schema is a collection of columns, each of which have a `name` and a `type`. Types are recursive structures, consisting of primitive and complex types:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n columns: [{\n name: 'primitive_column',\n type: glue.Schema.STRING,\n }, {\n name: 'array_column',\n type: glue.Schema.array(glue.Schema.INTEGER),\n comment: 'array<integer>',\n }, {\n name: 'map_column',\n type: glue.Schema.map(\n glue.Schema.STRING,\n glue.Schema.TIMESTAMP),\n comment: 'map<string,timestamp>',\n }, {\n name: 'struct_column',\n type: glue.Schema.struct([{\n name: 'nested_column',\n type: glue.Schema.DATE,\n comment: 'nested comment',\n }]),\n comment: \"struct<nested_column:date COMMENT 'nested comment'>\",\n }],\n // ...\n database: myDatabase,\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## Public FAQ\n\n### What are we launching today?\n\nWe’re launching new features to an AWS CDK Glue L2 Construct to provide\nbest-practice defaults and convenience methods to create Glue Jobs, Connections,\nTriggers, Workflows, and the underlying permissions and configuration.\n\n### Why should I use this Construct?\n\nDevelopers should use this Construct to reduce the amount of boilerplate\ncode and complexity each individual has to navigate, and make it easier to\ncreate best-practice Glue resources.\n\n### What’s not in scope?\n\nGlue Crawlers and other resources that are now managed by the AWS LakeFormation\nteam are not in scope for this effort. Developers should use existing methods\nto create these resources, and the new Glue L2 construct assumes they already\nexist as inputs. While best practice is for application and infrastructure code\nto be as close as possible for teams using fully-implemented DevOps mechanisms,\nin practice these ETL scripts are likely managed by a data science team who\nknow Python or Scala and don’t necessarily own or manage their own\ninfrastructure deployments. We want to meet developers where they are, and not\nassume that all of the code resides in the same repository, Developers can\nautomate this themselves via the CDK, however, if they do own both.\n\nValidating Glue version and feature use per AWS region at synth time is also\nnot in scope. AWS’ intention is for all features to eventually be propagated to\nall Global regions, so the complexity involved in creating and updating region-\nspecific configuration to match shifting feature sets does not out-weigh the\nlikelihood that a developer will use this construct to deploy resources to a\nregion without a particular new feature to a region that doesn’t yet support\nit without researching or manually attempting to use that feature before\ndeveloping it via IaC. The developer will, of course, still get feedback from\nthe underlying Glue APIs as CloudFormation deploys the resources similar to the\ncurrent CDK L1 Glue experience.\n"
|
|
9586
|
+
"markdown": "# AWS Glue Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\n## README\n\n[AWS Glue](https://aws.amazon.com/glue/) is a serverless data integration\nservice that makes it easier to discover, prepare, move, and integrate data\nfrom multiple sources for analytics, machine learning (ML), and application\ndevelopment.\n\nThe Glue L2 construct has convenience methods working backwards from common\nuse cases and sets required parameters to defaults that align with recommended\nbest practices for each job type. It also provides customers with a balance\nbetween flexibility via optional parameter overrides, and opinionated\ninterfaces that discouraging anti-patterns, resulting in reduced time to develop\nand deploy new resources.\n\n### References\n\n* [Glue Launch Announcement](https://aws.amazon.com/blogs/aws/launch-aws-glue-now-generally-available/)\n* [Glue Documentation](https://docs.aws.amazon.com/glue/index.html)\n* [Glue L1 (CloudFormation) Constructs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Glue.html)\n* Prior version of the [@aws-cdk/aws-glue-alpha module](https://github.com/aws/aws-cdk/blob/v2.51.1/packages/%40aws-cdk/aws-glue/README.md)\n\n## Create a Glue Job\n\nA Job encapsulates a script that connects to data sources, processes\nthem, and then writes output to a data target. There are four types of Glue\nJobs: Spark (ETL and Streaming), Python Shell, and Flex Jobs. Most\nof the required parameters for these jobs are common across all types,\nbut there are a few differences depending on the languages supported\nand features provided by each type. For all job types, the L2 defaults\nto AWS best practice recommendations, such as:\n\n* Use of Secrets Manager for Connection JDBC strings\n* Glue job autoscaling\n* Default parameter values for Glue job creation\n\nThis iteration of the L2 construct introduces breaking changes to\nthe existing glue-alpha-module, but these changes streamline the developer\nexperience, introduce new constants for defaults, and replacing synth-time\nvalidations with interface contracts for enforcement of the parameter combinations\nthat Glue supports. As an opinionated construct, the Glue L2 construct does\nnot allow developers to create resources that use non-current versions\nof Glue or deprecated language dependencies (e.g. deprecated versions of Python).\nAs always, L1s allow you to specify a wider range of parameters if you need\nor want to use alternative configurations.\n\nOptional and required parameters for each job are enforced via interface\nrather than validation; see [Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html)\nfor more granular details.\n\n### Spark Jobs\n\n#### ETL Jobs\n\nETL jobs support pySpark and Scala languages, for which there are separate but\nsimilar constructors. ETL jobs default to the G1 worker type, but you can\noverride this default with other supported worker type values (G1, G2, G4\nand G8). ETL jobs defaults to Glue version 4.0, which you can override to 3.0.\nThe following ETL features are enabled by default:\n`—enable-metrics, —enable-continuous-cloudwatch-log.`\nThe Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the\n`sparkUI` prop.\nYou can find more details about version, worker type and other features in\n[Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html).\n\nReference the pyspark-etl-jobs.test.ts and scalaspark-etl-jobs.test.ts unit tests\nfor examples of required-only and optional job parameters when creating these\ntypes of jobs.\n\nFor the sake of brevity, examples are shown using the pySpark job variety.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n});\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n jobName: 'PySparkETLJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerConfiguration: {\n workerType: glue.WorkerType.G_2X,\n numberOfWorkers: 2,\n },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n#### Streaming Jobs\n\nStreaming jobs are similar to ETL jobs, except that they perform ETL on data\nstreams using the Apache Spark Structured Streaming framework. Some Spark\njob features are not available to Streaming ETL jobs. They support Scala\nand pySpark languages. PySpark streaming jobs run on Python 3. It\ndefaults to the G1 worker type and Glue 4.0, both of which you can override.\nThe following best practice features are enabled by default:\n`—enable-metrics, —enable-continuous-cloudwatch-log`.\nThe Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the\n`sparkUI` prop.\n\nReference the pyspark-streaming-jobs.test.ts and scalaspark-streaming-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'PySparkStreamingJob', {\n jobName: 'PySparkStreamingJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerConfiguration: {\n workerType: glue.WorkerType.G_2X,\n numberOfWorkers: 2,\n },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n#### Flex Jobs\n\nThe flexible execution class is appropriate for non-urgent jobs such as\npre-production jobs, testing, and one-time data loads. Flexible jobs default\nto Glue version 5.0 and worker type `G_1X`. The following best practice\nfeatures are enabled by default:\n`—enable-metrics, —enable-continuous-cloudwatch-log`\nThe Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the\n`sparkUI` prop.\n\nReference the pyspark-flex-etl-jobs.test.ts and scalaspark-flex-etl-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'pySparkFlexEtlJob', {\n jobName: 'pySparkFlexEtlJob',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerConfiguration: {\n workerType: glue.WorkerType.G_2X,\n numberOfWorkers: 2,\n },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n### Python Shell Jobs\n\nPython shell jobs support a Python version that depends on the AWS Glue\nversion you use. These can be used to schedule and run tasks that don't\nrequire an Apache Spark environment. Python shell jobs default to\nPython 3.9 and a MaxCapacity of `0.0625`. Python 3.9 supports pre-loaded\nanalytics libraries using the `library-set=analytics` flag, which is\nenabled by default.\n\nReference the pyspark-shell-job.test.ts unit tests for examples of\nrequired-only and optional job parameters when creating these types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PythonShellJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\ndeclare const extraPythonFile: glue.Code;\nnew glue.PythonShellJob(stack, 'PythonShellJob', {\n jobName: 'PythonShellJobCustomName',\n description: 'This is a description',\n pythonVersion: glue.PythonVersion.THREE_NINE,\n maxCapacity: glue.MaxCapacity.DPU_1,\n role,\n script,\n extraPythonFiles: [extraPythonFile],\n glueVersion: glue.GlueVersion.V3_0,\n continuousLogging: { enabled: false },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n### Ray Jobs\n\n> **⚠️ DEPRECATED:** AWS Glue for Ray is closed to new customers as of April 30, 2026 and is in maintenance mode.\n> Migrate to [Amazon EKS with KubeRay Operator](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html).\n\nThe `RayJob` construct, `Runtime.RAY_TWO_FOUR`, and `JobType.RAY` are deprecated and will be removed in a future release.\n\n### Metrics Control\n\nBy default, Glue jobs enable CloudWatch metrics (`--enable-metrics`) and observability metrics (`--enable-observability-metrics`) for monitoring and debugging. You can disable these metrics to reduce CloudWatch costs:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Disable both metrics for cost optimization\nnew glue.PySparkEtlJob(stack, 'CostOptimizedJob', {\n role,\n script,\n enableMetrics: false,\n enableObservabilityMetrics: false,\n});\n\n// Selective control - keep observability, disable profiling\nnew glue.PySparkEtlJob(stack, 'SelectiveJob', {\n role,\n script,\n enableMetrics: false,\n // enableObservabilityMetrics defaults to true\n});\n```\n\nThis feature is available for all Spark job types (ETL, Streaming, Flex).\n\n### Enable Job Run Queuing\n\nAWS Glue job queuing monitors your account level quotas and limits. If quotas or limits are insufficient to start a Glue job run, AWS Glue will automatically queue the job and wait for limits to free up. Once limits become available, AWS Glue will retry the job run. Glue jobs will queue for limits like max concurrent job runs per account, max concurrent Data Processing Units (DPU), and resource unavailable due to IP address exhaustion in Amazon Virtual Private Cloud (Amazon VPC).\n\nEnable job run queuing by setting the `jobRunQueuingEnabled` property to `true`.\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n jobRunQueuingEnabled: true\n});\n```\n\n### Uploading scripts from the CDK app repository to S3\n\nSimilar to other L2 constructs, the Glue L2 automates uploading local\nscripts to S3. Use `glue.Code.fromAsset(path)` to point at a script in your\nlocal file structure; it is uploaded to the CDK-managed asset bucket. To\nreference a script that already exists in S3, use\n`glue.Code.fromBucket(bucket, key)`, which performs no upload. A `script` is\nrequired for every job.\n\nReference the unit tests for examples of repo and S3 code target examples.\n\n### Workflow Triggers\n\nYou can use Glue workflows to create and visualize complex\nextract, transform, and load (ETL) activities involving multiple crawlers,\njobs, and triggers. Standalone triggers are an anti-pattern, so you must\ncreate triggers from within a workflow using the L2 construct.\n\nWithin a workflow object, there are functions to create different\ntypes of triggers with actions and predicates. You add triggers to the\nworkflow, and each trigger references the jobs or crawlers it runs as its\nactions.\n\n`startOnCreation` applies to scheduled triggers (and, via\n`ConditionalTriggerOptions`, conditional triggers) only. It defaults to `false`,\nbut you can override it if you prefer for your trigger to start on creation.\n\nReference the workflow-triggers.test.ts unit tests for examples of creating\nworkflows and triggers.\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [{ job }],\n});\n```\n\n#### **1. On-Demand Triggers**\n\nOn-demand triggers can start glue jobs or crawlers. This construct provides\nconvenience functions to create on-demand crawler or job triggers. The constructor\ntakes an optional description parameter, but abstracts the requirement of an\nactions list using the job or crawler objects using conditional types.\n\n#### **2. Scheduled Triggers**\n\nYou can create scheduled triggers using cron expressions. This construct\nprovides daily and weekly convenience functions,\nas well as a custom function that allows you to create your own\ncustom timing using the [existing event Schedule class](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.Schedule.html)\nwithout having to build your own cron expressions. The L2 extracts\nthe expression that Glue requires from the Schedule object. The constructor\ntakes an optional description and a list of jobs or crawlers as actions.\n\n#### **3. Notify Event Triggers**\n\nThere are two types of notify event triggers: batching and non-batching.\nFor batching triggers, you must specify `BatchSize`. For non-batching\ntriggers, `BatchSize` defaults to 1. For both triggers, `BatchWindow`\ndefaults to 900 seconds, but you can override the window to align with\nyour workload's requirements.\n\n#### **4. Conditional Triggers**\n\nConditional triggers have a predicate and actions associated with them.\nThe trigger actions are executed when the predicateCondition is true.\n\n### Connection Properties\n\nA `Connection` allows Glue jobs, crawlers and development endpoints to access\ncertain types of data stores.\n\n* **Secrets Management**\n Manage JDBC connection credentials in Secrets Manager and pass the secret\n to the connection via the `secret` property (see the example below), rather\n than embedding credentials in `properties`.\n\n* **Networking - the CDK determines the best fit subnet for Glue connection\nconfiguration**\n You can specify the exact subnet of the Connection when it's defined, but\n you are not required to. Instead, you can provide a `vpc` and, optionally, a\n `vpcSubnets` selection, and the L2 leverages the existing\n [EC2 Subnet Selection](https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_ec2/SubnetSelection.html)\n library to make the best choice selection for the subnet. A Glue connection\n targets a single subnet, so the first subnet of the selection is used.\n `subnet` and `vpc` are mutually exclusive.\n\nPin the connection to a specific subnet:\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n // The security groups granting AWS Glue inbound access to the data source within the VPC\n securityGroups: [securityGroup],\n // The VPC subnet which contains the data source\n subnet,\n});\n```\n\nOr let the CDK select a subnet from a VPC:\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const vpc: ec2.Vpc;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n securityGroups: [securityGroup],\n vpc,\n // Optional - defaults to private subnets\n vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },\n});\n```\n\nFor 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.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const db: rds.DatabaseCluster;\nnew glue.Connection(this, \"RdsConnection\", {\n type: glue.ConnectionType.JDBC,\n securityGroups: [securityGroup],\n subnet,\n secret: db.secret,\n properties: {\n JDBC_CONNECTION_URL: `jdbc:mysql://${db.clusterEndpoint.socketAddress}/databasename`,\n JDBC_ENFORCE_SSL: \"false\",\n },\n});\n```\n\nPrefer the `secret` property over placing credentials in `properties`. Connection\n`properties` are emitted verbatim into the CloudFormation template, so any\ncredential placed there in plaintext is stored in plaintext in the template,\n`cdk.out`, and source control. If a property key looks like a credential (for\nexample `PASSWORD`, `SECRET`, or `TOKEN`) and holds a plaintext literal, the\nconstruct emits a synthesis-time warning.\n\nIf you need to use a connection type that doesn't exist as a static member on `ConnectionType`, you can instantiate a `ConnectionType` object, e.g: `new glue.ConnectionType('NEW_TYPE')`.\n\nSee [Adding a Connection to Your Data Store](https://docs.aws.amazon.com/glue/latest/dg/populate-add-connection.html) and [Connection Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-connections.html#aws-glue-api-catalog-connections-Connection) documentation for more information on the supported data stores and their configurations.\n\n## SecurityConfiguration\n\nA `SecurityConfiguration` is a set of security properties that can be used by AWS Glue to encrypt data at rest.\n\nEach encryption config is built with a factory that pairs the encryption mode\nwith its key, so illegal combinations (such as an S3-managed encryption carrying\na KMS key) cannot be expressed:\n\n```ts\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: glue.CloudWatchEncryption.kms(),\n jobBookmarksEncryption: glue.JobBookmarksEncryption.clientSideKms(),\n s3Encryption: glue.S3Encryption.kms(),\n});\n```\n\nBy default, a shared KMS key is created for use with the encryption configurations that require one. You can also supply your own key to any factory, for example, for CloudWatch encryption:\n\n```ts\ndeclare const key: kms.Key;\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: glue.CloudWatchEncryption.kms(key),\n});\n```\n\nUse `glue.S3Encryption.s3Managed()` for S3-managed (SSE-S3) encryption, which takes no key.\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html) for more info for Glue encrypting data written by Crawlers, Jobs, and Development Endpoints.\n\n## Catalog\n\nThe Glue Data Catalog is a persistent metadata store for your data assets. Every\naccount has an implicit, account-wide catalog that always exists, and you can also\ncreate additional catalogs as `AWS::Glue::Catalog` resources (for example, to\nfederate to another metastore).\n\nA catalog's encryption is fixed when the catalog is created: a catalog either\ncarries encryption settings or it does not. This keeps its configuration easy to\nreason about — there are no mutation methods that change encryption after the fact.\n\n### The account-wide catalog\n\nUse `Catalog.forAccount(scope)` to obtain the implicit account catalog. It is not\na CloudFormation resource — it always exists. Repeated calls within the same stack\nreturn the same instance:\n\n```ts\nconst catalog = glue.Catalog.forAccount(this);\n```\n\nTo configure Data Catalog encryption for the account, use\n`Catalog.encryptAccount(scope, options)`:\n\n```ts\ndeclare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});\n```\n\nBecause encryption is fixed at construction, `encryptAccount` must be called\n*before* the account catalog is first used in the stack — before any\n`Catalog.forAccount(this)` call, and before any `Database` that uses the account\ncatalog. Calling it after the account catalog has been materialized throws.\n\nThe account catalog's encryption is an account- and region-wide setting, managed\nthrough the singleton `PutDataCatalogEncryptionSettings` API. Configure it in\nexactly one stack. Configuring it from multiple stacks in the same account and\nregion makes those stacks overwrite one another at deploy time, and the result is\norder-dependent. Unlike duplicate settings within a single stack (which\nCloudFormation rejects), this cross-stack conflict is not caught at synthesis\ntime, because each stack synthesizes to its own template.\n\n### Creating a catalog\n\nTo create a new catalog resource, use the `Catalog` constructor. Encryption is\nconfigured through the `encryptionAtRest` and `connectionPasswordEncryption` props:\n\n```ts\nnew glue.Catalog(this, 'MyCatalog', {\n catalogName: 'my-catalog',\n description: 'my catalog description',\n});\n```\n\n### Encryption at rest\n\nConfigure Data Catalog encryption at rest through the `encryptionAtRest` option\n(on `Catalog.encryptAccount` or the `Catalog` constructor).\nIt accepts a `DataCatalogEncryptionAtRest` describing the mode:\n\n```ts\ndeclare const key: kms.Key;\n\n// SSE-KMS with a customer-managed key\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});\n\n// SSE-KMS with an AWS-managed key (omit the key)\nnew glue.Catalog(this, 'ManagedKeyCatalog', {\n catalogName: 'managed-key-catalog',\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(),\n});\n\n// Disable encryption at rest\nnew glue.Catalog(this, 'PlaintextCatalog', {\n catalogName: 'plaintext-catalog',\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.disabled(),\n});\n```\n\nWhen you use `SSE-KMS-WITH-SERVICE-ROLE`, AWS Glue accesses the KMS key through a\nservice role you provide. If you pass a customer-managed key, the role is\nautomatically granted the permissions it needs to encrypt and decrypt catalog data:\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const key: kms.Key;\ndeclare const role: iam.IRole;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kmsWithServiceRole(role, key),\n});\n```\n\nThe customer-managed key, when configured, is exposed on the catalog as\n`encryptionKey` (and the connection-password key as `connectionPasswordKey`), so\nyou can reference it to grant additional access. It is undefined when encryption is\ndisabled or an AWS-managed key is used.\n\n### Connection password encryption\n\nIndependently from encryption at rest, the Data Catalog can encrypt the passwords\nstored in connection properties. Configure it through the\n`connectionPasswordEncryption` option:\n\n```ts\ndeclare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n connectionPasswordEncryption: {\n kmsKey: key,\n // Whether GetConnection/GetConnections return the password encrypted (default: true)\n returnConnectionPasswordEncrypted: true,\n },\n});\n```\n\nThe two encryption blocks are independent: enabling one does not require the other,\nand each may use a different KMS key. The customer-managed key for connection\npasswords is exposed as `connectionPasswordKey`.\n\n### Importing a catalog\n\nYou can import an existing catalog by ARN or by id. An imported catalog is a pure\nidentity handle — it emits no resources and does not manage the catalog's\nencryption:\n\n```ts\nconst byId = glue.Catalog.fromCatalogId(this, 'ById', 'my-catalog-id');\nconst byArn = glue.Catalog.fromCatalogArn(this, 'ByArn', 'arn:aws:glue:us-east-1:123456789012:catalog/my-catalog-id');\n```\n\nTo manage the Data Catalog encryption of a catalog you did not create in this\nstack, add a `CfnDataCatalogEncryptionSettings` resource targeting its id\ndirectly. Do this from exactly one stack: like the account catalog, a catalog has\na single encryption configuration, so two settings resources targeting the same id\nrace to overwrite one another at deploy time. Within a single stack this is caught\nby CloudFormation template validation (E3019, duplicate primary identifiers);\nacross stacks it is not, since each stack synthesizes to its own template.\n\n```ts\nimport { CfnDataCatalogEncryptionSettings } from 'aws-cdk-lib/aws-glue';\n\nnew CfnDataCatalogEncryptionSettings(this, 'Encryption', {\n catalogId: 'my-catalog-id',\n dataCatalogEncryptionSettings: {\n encryptionAtRest: { catalogEncryptionMode: 'SSE-KMS' },\n },\n});\n```\n\n## Database\n\nA `Database` is a logical grouping of `Tables` in the Glue Catalog.\n\n```ts\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n description: 'my_database_description',\n});\n```\n\nBecause a database is a container for tables and their metadata, it is retained\nby default when removed from the stack, to avoid accidental data loss. Set\n`removalPolicy` to `RemovalPolicy.DESTROY` to have it deleted instead:\n\n```ts\nimport { RemovalPolicy } from 'aws-cdk-lib';\n\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n removalPolicy: RemovalPolicy.DESTROY,\n});\n```\n\n## Table\n\nA Glue table describes a table of data in S3: its structure (column names and types), location of data (S3 objects with a common prefix in a S3 bucket), and format for the files (Json, Avro, Parquet, etc.):\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }, {\n name: 'col2',\n type: glue.Schema.array(glue.Schema.STRING),\n comment: 'col2 is an array of strings' // comment is optional\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nBy 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`:\n\n```ts\ndeclare const myBucket: s3.Bucket;\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.fromBucket(myBucket),\n s3Prefix: 'my-table/',\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can be configured to contain user-defined properties, to describe the physical storage of table data, through the `storageParameters` property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('separatorChar', ',')\n ],\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can also be configured to contain user-defined table properties through the [`parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters) property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n parameters: {\n key1: 'val1',\n key2: 'val2',\n },\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Keys\n\nTo improve query performance, a table can specify `partitionKeys` on which data is stored and queried separately. For example, you might partition a table by `year` and `month` to optimize queries based on a time window:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Indexes\n\nAnother way to improve query performance is to specify partition indexes. If no partition indexes are\npresent on the table, AWS Glue loads all partitions of the table and filters the loaded partitions using\nthe query expression. The query takes more time to run as the number of partitions increase. With an\nindex, the query will try to fetch a subset of the partitions instead of loading all partitions of the\ntable.\n\nThe keys of a partition index must be a subset of the partition keys of the table. You can have a\nmaximum of 3 partition indexes per table. To specify a partition index, you can use the `partitionIndexes`\nproperty:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n partitionIndexes: [{\n indexName: 'my-index', // optional\n keyNames: ['year'],\n }], // supply up to 3 indexes\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nAlternatively, you can call the `addPartitionIndex()` function on a table:\n\n```ts\ndeclare const myTable: glue.S3Table;\nmyTable.addPartitionIndex({\n indexName: 'my-index',\n keyNames: ['year'],\n});\n```\n\n### Partition Filtering\n\nIf you have a table with a large number of partitions that grows over time, consider using AWS Glue partition indexing and filtering.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n enablePartitionFiltering: true,\n});\n```\n\n### Partition Projection\n\nPartition projection allows Athena to automatically add new partitions as new data arrives, without requiring `ALTER TABLE ADD PARTITION` statements. This improves query performance and reduces management overhead by eliminating the need to manually manage partition metadata.\n\nFor more information, see the [AWS documentation on partition projection](https://docs.aws.amazon.com/athena/latest/ug/partition-projection.html).\n\n#### INTEGER Projection\n\nFor partition keys with sequential numeric values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.INTEGER,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n interval: 1, // optional, defaults to 1\n digits: 4, // optional, pads with leading zeros\n }),\n },\n});\n```\n\n#### DATE Projection\n\nFor partition keys with date or timestamp values. Supports both fixed dates and relative dates using `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});\n```\n\nYou can also use relative dates with `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: 'NOW-3YEARS',\n max: 'NOW',\n format: 'yyyy-MM-dd',\n }),\n },\n});\n```\n\n#### ENUM Projection\n\nFor partition keys with a known set of values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'region',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2', 'eu-west-1'],\n }),\n },\n});\n```\n\n#### INJECTED Projection\n\nFor custom partition values injected at query time:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'custom',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n custom: glue.PartitionProjectionConfiguration.injected(),\n },\n});\n```\n\n#### Multiple Partition Projections\n\nYou can configure partition projection for multiple partition keys:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [\n {\n name: 'year',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'month',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'region',\n type: glue.Schema.STRING,\n },\n ],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n }),\n month: glue.PartitionProjectionConfiguration.integer({\n min: 1,\n max: 12,\n digits: 2,\n }),\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2'],\n }),\n },\n});\n```\n\n### Glue Connections\n\nGlue connections allow external data connections to third party databases and data warehouses. However, these connections can also be assigned to Glue Tables, allowing you to query external data sources using the Glue Data Catalog.\n\nWhereas `S3Table` will point to (and if needed, create) a bucket to store the tables' data, `ExternalTable` will point to an existing table in a data source. For example, to create a table in Glue that points to a table in Redshift:\n\n```ts\ndeclare const myConnection: glue.Connection;\ndeclare const myDatabase: glue.Database;\nnew glue.ExternalTable(this, 'MyTable', {\n connection: myConnection,\n externalDataLocation: 'default_db_public_example', // A table in Redshift\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## Data Quality Ruleset\n\nA `DataQualityRuleset` defines a set of data quality rules — authored in Glue's\nData Quality Definition Language (DQDL) — that are evaluated against a table in\nthe Data Catalog.\n\n```ts\ndeclare const database: glue.IDatabase;\nnew glue.DataQualityRuleset(this, 'MyRuleset', {\n rulesetName: 'my_ruleset',\n dqdl: glue.Dqdl.fromString('Rules = [ RowCount > 100, IsComplete \"order_id\" ]'),\n targetTable: glue.DataQualityTargetTable.fromTableName(database, 'my_table'),\n});\n```\n\nBuild the DQDL document with `Dqdl.fromString(...)`. Glue parses and validates the\nDQDL when the ruleset is deployed; see the\n[DQDL reference](https://docs.aws.amazon.com/glue/latest/dg/dqdl.html) for the\nfull rule syntax.\n\n## [Encryption](https://docs.aws.amazon.com/athena/latest/ug/encryption.html)\n\nWhen 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.\n\nServer-side encryption applies only to a bucket the table manages. Choose it with\n`storage: glue.S3TableStorage.managedBucket(...)`:\n\n* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - (default) Server side encryption (`SSE-S3`) with an Amazon S3-managed key.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.s3Managed()),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [Kms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.kms()),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.kms(new kms.Key(this, 'MyKey'))),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [KmsManaged](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`), like `Kms`, except with an AWS KMS Key managed by the AWS Key Management Service.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.kmsManaged()),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nClient-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`:\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n clientSideEncryption: glue.TableClientSideEncryption.kms(),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n clientSideEncryption: glue.TableClientSideEncryption.kms(new kms.Key(this, 'MyKey')),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nTo 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.\n\n### Marking table data as encrypted\n\nBoth `S3Table` and `ExternalTable` set the `has_encrypted_data` table parameter, which\nAthena reads when querying client-side (`CSE-KMS`) encrypted datasets. It defaults to `true`.\nSet `hasEncryptedData` to `false` when the underlying data is not encrypted:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n hasEncryptedData: false,\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nDo not set `has_encrypted_data` through the free-form `parameters` map as well - a value\nthere that conflicts with `hasEncryptedData` is rejected at synthesis time.\n\n## Types\n\nA table's schema is a collection of columns, each of which have a `name` and a `type`. Types are recursive structures, consisting of primitive and complex types:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n columns: [{\n name: 'primitive_column',\n type: glue.Schema.STRING,\n }, {\n name: 'array_column',\n type: glue.Schema.array(glue.Schema.INTEGER),\n comment: 'array<integer>',\n }, {\n name: 'map_column',\n type: glue.Schema.map(\n glue.Schema.STRING,\n glue.Schema.TIMESTAMP),\n comment: 'map<string,timestamp>',\n }, {\n name: 'struct_column',\n type: glue.Schema.struct([{\n name: 'nested_column',\n type: glue.Schema.DATE,\n comment: 'nested comment',\n }]),\n comment: \"struct<nested_column:date COMMENT 'nested comment'>\",\n }],\n // ...\n database: myDatabase,\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nFor a type the `Schema` factories don't model, use `glue.Schema.custom('...')`, which takes the raw Glue input string.\n\n## Public FAQ\n\n### What are we launching today?\n\nWe’re launching new features to an AWS CDK Glue L2 Construct to provide\nbest-practice defaults and convenience methods to create Glue Jobs, Connections,\nTriggers, Workflows, and the underlying permissions and configuration.\n\n### Why should I use this Construct?\n\nDevelopers should use this Construct to reduce the amount of boilerplate\ncode and complexity each individual has to navigate, and make it easier to\ncreate best-practice Glue resources.\n\n### What’s not in scope?\n\nGlue Crawlers and other resources that are now managed by the AWS LakeFormation\nteam are not in scope for this effort. Developers should use existing methods\nto create these resources, and the new Glue L2 construct assumes they already\nexist as inputs. While best practice is for application and infrastructure code\nto be as close as possible for teams using fully-implemented DevOps mechanisms,\nin practice these ETL scripts are likely managed by a data science team who\nknow Python or Scala and don’t necessarily own or manage their own\ninfrastructure deployments. We want to meet developers where they are, and not\nassume that all of the code resides in the same repository, Developers can\nautomate this themselves via the CDK, however, if they do own both.\n\nValidating Glue version and feature use per AWS region at synth time is also\nnot in scope. AWS’ intention is for all features to eventually be propagated to\nall Global regions, so the complexity involved in creating and updating region-\nspecific configuration to match shifting feature sets does not out-weigh the\nlikelihood that a developer will use this construct to deploy resources to a\nregion without a particular new feature to a region that doesn’t yet support\nit without researching or manually attempting to use that feature before\ndeveloping it via IaC. The developer will, of course, still get feedback from\nthe underlying Glue APIs as CloudFormation deploys the resources similar to the\ncurrent CDK L1 Glue experience.\n"
|
|
9413
9587
|
},
|
|
9414
9588
|
"repository": {
|
|
9415
9589
|
"directory": "packages/@aws-cdk/aws-glue-alpha",
|
|
@@ -10582,7 +10756,7 @@
|
|
|
10582
10756
|
"docs": {
|
|
10583
10757
|
"stability": "experimental",
|
|
10584
10758
|
"summary": "A column of a table.",
|
|
10585
|
-
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nconst column: glue_alpha.Column = {\n name: 'name',\n type:
|
|
10759
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\n\ndeclare const type: glue_alpha.Type;\nconst column: glue_alpha.Column = {\n name: 'name',\n type: type,\n\n // the properties below are optional\n comment: 'comment',\n};",
|
|
10586
10760
|
"custom": {
|
|
10587
10761
|
"exampleMetadata": "fixture=_generated"
|
|
10588
10762
|
}
|
|
@@ -10660,7 +10834,7 @@
|
|
|
10660
10834
|
"kind": "enum",
|
|
10661
10835
|
"locationInModule": {
|
|
10662
10836
|
"filename": "lib/storage-parameter.ts",
|
|
10663
|
-
"line":
|
|
10837
|
+
"line": 158
|
|
10664
10838
|
},
|
|
10665
10839
|
"members": [
|
|
10666
10840
|
{
|
|
@@ -10710,7 +10884,7 @@
|
|
|
10710
10884
|
"kind": "enum",
|
|
10711
10885
|
"locationInModule": {
|
|
10712
10886
|
"filename": "lib/storage-parameter.ts",
|
|
10713
|
-
"line":
|
|
10887
|
+
"line": 8
|
|
10714
10888
|
},
|
|
10715
10889
|
"members": [
|
|
10716
10890
|
{
|
|
@@ -10940,7 +11114,7 @@
|
|
|
10940
11114
|
},
|
|
10941
11115
|
"locationInModule": {
|
|
10942
11116
|
"filename": "lib/connection.ts",
|
|
10943
|
-
"line":
|
|
11117
|
+
"line": 397
|
|
10944
11118
|
},
|
|
10945
11119
|
"parameters": [
|
|
10946
11120
|
{
|
|
@@ -10969,7 +11143,7 @@
|
|
|
10969
11143
|
"kind": "class",
|
|
10970
11144
|
"locationInModule": {
|
|
10971
11145
|
"filename": "lib/connection.ts",
|
|
10972
|
-
"line":
|
|
11146
|
+
"line": 349
|
|
10973
11147
|
},
|
|
10974
11148
|
"methods": [
|
|
10975
11149
|
{
|
|
@@ -10979,7 +11153,7 @@
|
|
|
10979
11153
|
},
|
|
10980
11154
|
"locationInModule": {
|
|
10981
11155
|
"filename": "lib/connection.ts",
|
|
10982
|
-
"line":
|
|
11156
|
+
"line": 361
|
|
10983
11157
|
},
|
|
10984
11158
|
"name": "fromConnectionArn",
|
|
10985
11159
|
"parameters": [
|
|
@@ -11025,7 +11199,7 @@
|
|
|
11025
11199
|
},
|
|
11026
11200
|
"locationInModule": {
|
|
11027
11201
|
"filename": "lib/connection.ts",
|
|
11028
|
-
"line":
|
|
11202
|
+
"line": 377
|
|
11029
11203
|
},
|
|
11030
11204
|
"name": "fromConnectionName",
|
|
11031
11205
|
"parameters": [
|
|
@@ -11071,7 +11245,7 @@
|
|
|
11071
11245
|
},
|
|
11072
11246
|
"locationInModule": {
|
|
11073
11247
|
"filename": "lib/connection.ts",
|
|
11074
|
-
"line":
|
|
11248
|
+
"line": 504
|
|
11075
11249
|
},
|
|
11076
11250
|
"name": "addProperty",
|
|
11077
11251
|
"parameters": [
|
|
@@ -11107,7 +11281,7 @@
|
|
|
11107
11281
|
"immutable": true,
|
|
11108
11282
|
"locationInModule": {
|
|
11109
11283
|
"filename": "lib/connection.ts",
|
|
11110
|
-
"line":
|
|
11284
|
+
"line": 352
|
|
11111
11285
|
},
|
|
11112
11286
|
"name": "PROPERTY_INJECTION_ID",
|
|
11113
11287
|
"static": true,
|
|
@@ -11123,7 +11297,7 @@
|
|
|
11123
11297
|
"immutable": true,
|
|
11124
11298
|
"locationInModule": {
|
|
11125
11299
|
"filename": "lib/connection.ts",
|
|
11126
|
-
"line":
|
|
11300
|
+
"line": 494
|
|
11127
11301
|
},
|
|
11128
11302
|
"name": "connectionArn",
|
|
11129
11303
|
"overrides": "@aws-cdk/aws-glue-alpha.IConnection",
|
|
@@ -11139,7 +11313,7 @@
|
|
|
11139
11313
|
"immutable": true,
|
|
11140
11314
|
"locationInModule": {
|
|
11141
11315
|
"filename": "lib/connection.ts",
|
|
11142
|
-
"line":
|
|
11316
|
+
"line": 486
|
|
11143
11317
|
},
|
|
11144
11318
|
"name": "connectionName",
|
|
11145
11319
|
"overrides": "@aws-cdk/aws-glue-alpha.IConnection",
|
|
@@ -11156,7 +11330,7 @@
|
|
|
11156
11330
|
"docs": {
|
|
11157
11331
|
"stability": "experimental",
|
|
11158
11332
|
"summary": "Base Connection Options.",
|
|
11159
|
-
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport { aws_ec2 as ec2 } from 'aws-cdk-lib';\n\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\nconst connectionOptions: glue_alpha.ConnectionOptions = {\n connectionName: 'connectionName',\n description: 'description',\n matchCriteria: ['matchCriteria'],\n properties: {\n propertiesKey: 'properties',\n },\n securityGroups: [securityGroup],\n subnet: subnet,\n};",
|
|
11333
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport { aws_ec2 as ec2 } from 'aws-cdk-lib';\nimport { aws_secretsmanager as interfaces_secretsmanager } from 'aws-cdk-lib/interfaces';\n\ndeclare const secretRef: interfaces_secretsmanager.ISecretRef;\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const subnetFilter: ec2.SubnetFilter;\ndeclare const vpc: ec2.Vpc;\nconst connectionOptions: glue_alpha.ConnectionOptions = {\n connectionName: 'connectionName',\n description: 'description',\n matchCriteria: ['matchCriteria'],\n properties: {\n propertiesKey: 'properties',\n },\n secret: secretRef,\n securityGroups: [securityGroup],\n subnet: subnet,\n vpc: vpc,\n vpcSubnets: {\n availabilityZones: ['availabilityZones'],\n onePerAz: false,\n subnetFilters: [subnetFilter],\n subnetGroupName: 'subnetGroupName',\n subnets: [subnet],\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED,\n },\n};",
|
|
11160
11334
|
"custom": {
|
|
11161
11335
|
"exampleMetadata": "fixture=_generated"
|
|
11162
11336
|
}
|
|
@@ -11165,7 +11339,7 @@
|
|
|
11165
11339
|
"kind": "interface",
|
|
11166
11340
|
"locationInModule": {
|
|
11167
11341
|
"filename": "lib/connection.ts",
|
|
11168
|
-
"line":
|
|
11342
|
+
"line": 259
|
|
11169
11343
|
},
|
|
11170
11344
|
"name": "ConnectionOptions",
|
|
11171
11345
|
"properties": [
|
|
@@ -11179,7 +11353,7 @@
|
|
|
11179
11353
|
"immutable": true,
|
|
11180
11354
|
"locationInModule": {
|
|
11181
11355
|
"filename": "lib/connection.ts",
|
|
11182
|
-
"line":
|
|
11356
|
+
"line": 264
|
|
11183
11357
|
},
|
|
11184
11358
|
"name": "connectionName",
|
|
11185
11359
|
"optional": true,
|
|
@@ -11197,7 +11371,7 @@
|
|
|
11197
11371
|
"immutable": true,
|
|
11198
11372
|
"locationInModule": {
|
|
11199
11373
|
"filename": "lib/connection.ts",
|
|
11200
|
-
"line":
|
|
11374
|
+
"line": 270
|
|
11201
11375
|
},
|
|
11202
11376
|
"name": "description",
|
|
11203
11377
|
"optional": true,
|
|
@@ -11216,7 +11390,7 @@
|
|
|
11216
11390
|
"immutable": true,
|
|
11217
11391
|
"locationInModule": {
|
|
11218
11392
|
"filename": "lib/connection.ts",
|
|
11219
|
-
"line":
|
|
11393
|
+
"line": 296
|
|
11220
11394
|
},
|
|
11221
11395
|
"name": "matchCriteria",
|
|
11222
11396
|
"optional": true,
|
|
@@ -11240,7 +11414,7 @@
|
|
|
11240
11414
|
"immutable": true,
|
|
11241
11415
|
"locationInModule": {
|
|
11242
11416
|
"filename": "lib/connection.ts",
|
|
11243
|
-
"line":
|
|
11417
|
+
"line": 277
|
|
11244
11418
|
},
|
|
11245
11419
|
"name": "properties",
|
|
11246
11420
|
"optional": true,
|
|
@@ -11253,6 +11427,25 @@
|
|
|
11253
11427
|
}
|
|
11254
11428
|
}
|
|
11255
11429
|
},
|
|
11430
|
+
{
|
|
11431
|
+
"abstract": true,
|
|
11432
|
+
"docs": {
|
|
11433
|
+
"default": "- no secret; any credentials must be supplied via `properties`",
|
|
11434
|
+
"remarks": "The secret is referenced through the connection's `SECRET_ID` property, so\nGlue reads the credentials at runtime and the secret value never appears in\nthe synthesized template. Prefer this over placing credentials directly in\n`properties`. Accepts any `secretsmanager.ISecret`.",
|
|
11435
|
+
"stability": "experimental",
|
|
11436
|
+
"summary": "A reference to a Secrets Manager secret holding the credentials for this connection."
|
|
11437
|
+
},
|
|
11438
|
+
"immutable": true,
|
|
11439
|
+
"locationInModule": {
|
|
11440
|
+
"filename": "lib/connection.ts",
|
|
11441
|
+
"line": 289
|
|
11442
|
+
},
|
|
11443
|
+
"name": "secret",
|
|
11444
|
+
"optional": true,
|
|
11445
|
+
"type": {
|
|
11446
|
+
"fqn": "aws-cdk-lib.interfaces.aws_secretsmanager.ISecretRef"
|
|
11447
|
+
}
|
|
11448
|
+
},
|
|
11256
11449
|
{
|
|
11257
11450
|
"abstract": true,
|
|
11258
11451
|
"docs": {
|
|
@@ -11263,7 +11456,7 @@
|
|
|
11263
11456
|
"immutable": true,
|
|
11264
11457
|
"locationInModule": {
|
|
11265
11458
|
"filename": "lib/connection.ts",
|
|
11266
|
-
"line":
|
|
11459
|
+
"line": 302
|
|
11267
11460
|
},
|
|
11268
11461
|
"name": "securityGroups",
|
|
11269
11462
|
"optional": true,
|
|
@@ -11279,21 +11472,59 @@
|
|
|
11279
11472
|
{
|
|
11280
11473
|
"abstract": true,
|
|
11281
11474
|
"docs": {
|
|
11282
|
-
"default": "no subnet",
|
|
11283
|
-
"remarks": "
|
|
11475
|
+
"default": "- no subnet, unless `vpc` is provided",
|
|
11476
|
+
"remarks": "Mutually exclusive with `vpc`: provide `subnet` to pin the connection to a\nspecific subnet, or provide `vpc` (optionally with `vpcSubnets`) to let the\nCDK select one for you.",
|
|
11284
11477
|
"stability": "experimental",
|
|
11285
|
-
"summary": "The VPC subnet to connect to resources within a VPC."
|
|
11478
|
+
"summary": "The VPC subnet to connect to resources within a VPC. See more at https://docs.aws.amazon.com/glue/latest/dg/start-connecting.html."
|
|
11286
11479
|
},
|
|
11287
11480
|
"immutable": true,
|
|
11288
11481
|
"locationInModule": {
|
|
11289
11482
|
"filename": "lib/connection.ts",
|
|
11290
|
-
"line":
|
|
11483
|
+
"line": 313
|
|
11291
11484
|
},
|
|
11292
11485
|
"name": "subnet",
|
|
11293
11486
|
"optional": true,
|
|
11294
11487
|
"type": {
|
|
11295
11488
|
"fqn": "aws-cdk-lib.aws_ec2.ISubnet"
|
|
11296
11489
|
}
|
|
11490
|
+
},
|
|
11491
|
+
{
|
|
11492
|
+
"abstract": true,
|
|
11493
|
+
"docs": {
|
|
11494
|
+
"default": "- no VPC, the subnet is taken from `subnet` if provided",
|
|
11495
|
+
"remarks": "When provided, the CDK selects a\nsubnet from this VPC using `vpcSubnets`. A Glue connection targets a single\nsubnet, so the first subnet of the selection is used.\n\nMutually exclusive with `subnet`.",
|
|
11496
|
+
"stability": "experimental",
|
|
11497
|
+
"summary": "The VPC to connect to resources within."
|
|
11498
|
+
},
|
|
11499
|
+
"immutable": true,
|
|
11500
|
+
"locationInModule": {
|
|
11501
|
+
"filename": "lib/connection.ts",
|
|
11502
|
+
"line": 324
|
|
11503
|
+
},
|
|
11504
|
+
"name": "vpc",
|
|
11505
|
+
"optional": true,
|
|
11506
|
+
"type": {
|
|
11507
|
+
"fqn": "aws-cdk-lib.aws_ec2.IVpc"
|
|
11508
|
+
}
|
|
11509
|
+
},
|
|
11510
|
+
{
|
|
11511
|
+
"abstract": true,
|
|
11512
|
+
"docs": {
|
|
11513
|
+
"default": "- private subnets",
|
|
11514
|
+
"remarks": "Only used when\n`vpc` is provided. Since a Glue connection targets a single subnet, the\nfirst subnet of the selection is used.",
|
|
11515
|
+
"stability": "experimental",
|
|
11516
|
+
"summary": "Which subnets of `vpc` to select the connection subnet from."
|
|
11517
|
+
},
|
|
11518
|
+
"immutable": true,
|
|
11519
|
+
"locationInModule": {
|
|
11520
|
+
"filename": "lib/connection.ts",
|
|
11521
|
+
"line": 333
|
|
11522
|
+
},
|
|
11523
|
+
"name": "vpcSubnets",
|
|
11524
|
+
"optional": true,
|
|
11525
|
+
"type": {
|
|
11526
|
+
"fqn": "aws-cdk-lib.aws_ec2.SubnetSelection"
|
|
11527
|
+
}
|
|
11297
11528
|
}
|
|
11298
11529
|
],
|
|
11299
11530
|
"symbolId": "lib/connection:ConnectionOptions"
|
|
@@ -11365,7 +11596,7 @@
|
|
|
11365
11596
|
"docs": {
|
|
11366
11597
|
"stability": "experimental",
|
|
11367
11598
|
"summary": "Construction properties for `Connection`.",
|
|
11368
|
-
"example": "declare const securityGroup: ec2.SecurityGroup;\ndeclare const
|
|
11599
|
+
"example": "declare const securityGroup: ec2.SecurityGroup;\ndeclare const vpc: ec2.Vpc;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n securityGroups: [securityGroup],\n vpc,\n // Optional - defaults to private subnets\n vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },\n});",
|
|
11369
11600
|
"custom": {
|
|
11370
11601
|
"exampleMetadata": "infused"
|
|
11371
11602
|
}
|
|
@@ -11377,7 +11608,7 @@
|
|
|
11377
11608
|
"kind": "interface",
|
|
11378
11609
|
"locationInModule": {
|
|
11379
11610
|
"filename": "lib/connection.ts",
|
|
11380
|
-
"line":
|
|
11611
|
+
"line": 339
|
|
11381
11612
|
},
|
|
11382
11613
|
"name": "ConnectionProps",
|
|
11383
11614
|
"properties": [
|
|
@@ -11390,7 +11621,7 @@
|
|
|
11390
11621
|
"immutable": true,
|
|
11391
11622
|
"locationInModule": {
|
|
11392
11623
|
"filename": "lib/connection.ts",
|
|
11393
|
-
"line":
|
|
11624
|
+
"line": 343
|
|
11394
11625
|
},
|
|
11395
11626
|
"name": "type",
|
|
11396
11627
|
"type": {
|
|
@@ -11407,7 +11638,7 @@
|
|
|
11407
11638
|
"see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-connectiontype",
|
|
11408
11639
|
"stability": "experimental",
|
|
11409
11640
|
"summary": "The type of the glue connection.",
|
|
11410
|
-
"example": "declare const securityGroup: ec2.SecurityGroup;\ndeclare const
|
|
11641
|
+
"example": "declare const securityGroup: ec2.SecurityGroup;\ndeclare const vpc: ec2.Vpc;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n securityGroups: [securityGroup],\n vpc,\n // Optional - defaults to private subnets\n vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },\n});",
|
|
11411
11642
|
"custom": {
|
|
11412
11643
|
"exampleMetadata": "infused"
|
|
11413
11644
|
}
|
|
@@ -11419,7 +11650,7 @@
|
|
|
11419
11650
|
},
|
|
11420
11651
|
"locationInModule": {
|
|
11421
11652
|
"filename": "lib/connection.ts",
|
|
11422
|
-
"line":
|
|
11653
|
+
"line": 227
|
|
11423
11654
|
},
|
|
11424
11655
|
"parameters": [
|
|
11425
11656
|
{
|
|
@@ -11433,7 +11664,7 @@
|
|
|
11433
11664
|
"kind": "class",
|
|
11434
11665
|
"locationInModule": {
|
|
11435
11666
|
"filename": "lib/connection.ts",
|
|
11436
|
-
"line":
|
|
11667
|
+
"line": 19
|
|
11437
11668
|
},
|
|
11438
11669
|
"methods": [
|
|
11439
11670
|
{
|
|
@@ -11443,7 +11674,7 @@
|
|
|
11443
11674
|
},
|
|
11444
11675
|
"locationInModule": {
|
|
11445
11676
|
"filename": "lib/connection.ts",
|
|
11446
|
-
"line":
|
|
11677
|
+
"line": 234
|
|
11447
11678
|
},
|
|
11448
11679
|
"name": "toString",
|
|
11449
11680
|
"returns": {
|
|
@@ -11464,7 +11695,7 @@
|
|
|
11464
11695
|
"immutable": true,
|
|
11465
11696
|
"locationInModule": {
|
|
11466
11697
|
"filename": "lib/connection.ts",
|
|
11467
|
-
"line":
|
|
11698
|
+
"line": 175
|
|
11468
11699
|
},
|
|
11469
11700
|
"name": "AZURECOSMOS",
|
|
11470
11701
|
"static": true,
|
|
@@ -11481,7 +11712,7 @@
|
|
|
11481
11712
|
"immutable": true,
|
|
11482
11713
|
"locationInModule": {
|
|
11483
11714
|
"filename": "lib/connection.ts",
|
|
11484
|
-
"line":
|
|
11715
|
+
"line": 170
|
|
11485
11716
|
},
|
|
11486
11717
|
"name": "AZURESQL",
|
|
11487
11718
|
"static": true,
|
|
@@ -11498,7 +11729,7 @@
|
|
|
11498
11729
|
"immutable": true,
|
|
11499
11730
|
"locationInModule": {
|
|
11500
11731
|
"filename": "lib/connection.ts",
|
|
11501
|
-
"line":
|
|
11732
|
+
"line": 165
|
|
11502
11733
|
},
|
|
11503
11734
|
"name": "BIGQUERY",
|
|
11504
11735
|
"static": true,
|
|
@@ -11515,7 +11746,7 @@
|
|
|
11515
11746
|
"immutable": true,
|
|
11516
11747
|
"locationInModule": {
|
|
11517
11748
|
"filename": "lib/connection.ts",
|
|
11518
|
-
"line":
|
|
11749
|
+
"line": 60
|
|
11519
11750
|
},
|
|
11520
11751
|
"name": "CUSTOM",
|
|
11521
11752
|
"static": true,
|
|
@@ -11532,7 +11763,7 @@
|
|
|
11532
11763
|
"immutable": true,
|
|
11533
11764
|
"locationInModule": {
|
|
11534
11765
|
"filename": "lib/connection.ts",
|
|
11535
|
-
"line":
|
|
11766
|
+
"line": 220
|
|
11536
11767
|
},
|
|
11537
11768
|
"name": "DYNAMODB",
|
|
11538
11769
|
"static": true,
|
|
@@ -11549,7 +11780,7 @@
|
|
|
11549
11780
|
"immutable": true,
|
|
11550
11781
|
"locationInModule": {
|
|
11551
11782
|
"filename": "lib/connection.ts",
|
|
11552
|
-
"line":
|
|
11783
|
+
"line": 65
|
|
11553
11784
|
},
|
|
11554
11785
|
"name": "FACEBOOKADS",
|
|
11555
11786
|
"static": true,
|
|
@@ -11566,7 +11797,7 @@
|
|
|
11566
11797
|
"immutable": true,
|
|
11567
11798
|
"locationInModule": {
|
|
11568
11799
|
"filename": "lib/connection.ts",
|
|
11569
|
-
"line":
|
|
11800
|
+
"line": 70
|
|
11570
11801
|
},
|
|
11571
11802
|
"name": "GOOGLEADS",
|
|
11572
11803
|
"static": true,
|
|
@@ -11583,7 +11814,7 @@
|
|
|
11583
11814
|
"immutable": true,
|
|
11584
11815
|
"locationInModule": {
|
|
11585
11816
|
"filename": "lib/connection.ts",
|
|
11586
|
-
"line":
|
|
11817
|
+
"line": 80
|
|
11587
11818
|
},
|
|
11588
11819
|
"name": "GOOGLEANALYTICS4",
|
|
11589
11820
|
"static": true,
|
|
@@ -11600,7 +11831,7 @@
|
|
|
11600
11831
|
"immutable": true,
|
|
11601
11832
|
"locationInModule": {
|
|
11602
11833
|
"filename": "lib/connection.ts",
|
|
11603
|
-
"line":
|
|
11834
|
+
"line": 75
|
|
11604
11835
|
},
|
|
11605
11836
|
"name": "GOOGLESHEETS",
|
|
11606
11837
|
"static": true,
|
|
@@ -11617,7 +11848,7 @@
|
|
|
11617
11848
|
"immutable": true,
|
|
11618
11849
|
"locationInModule": {
|
|
11619
11850
|
"filename": "lib/connection.ts",
|
|
11620
|
-
"line":
|
|
11851
|
+
"line": 85
|
|
11621
11852
|
},
|
|
11622
11853
|
"name": "HUBSPOT",
|
|
11623
11854
|
"static": true,
|
|
@@ -11634,7 +11865,7 @@
|
|
|
11634
11865
|
"immutable": true,
|
|
11635
11866
|
"locationInModule": {
|
|
11636
11867
|
"filename": "lib/connection.ts",
|
|
11637
|
-
"line":
|
|
11868
|
+
"line": 90
|
|
11638
11869
|
},
|
|
11639
11870
|
"name": "INSTAGRAMADS",
|
|
11640
11871
|
"static": true,
|
|
@@ -11651,7 +11882,7 @@
|
|
|
11651
11882
|
"immutable": true,
|
|
11652
11883
|
"locationInModule": {
|
|
11653
11884
|
"filename": "lib/connection.ts",
|
|
11654
|
-
"line":
|
|
11885
|
+
"line": 95
|
|
11655
11886
|
},
|
|
11656
11887
|
"name": "INTERCOM",
|
|
11657
11888
|
"static": true,
|
|
@@ -11668,7 +11899,7 @@
|
|
|
11668
11899
|
"immutable": true,
|
|
11669
11900
|
"locationInModule": {
|
|
11670
11901
|
"filename": "lib/connection.ts",
|
|
11671
|
-
"line":
|
|
11902
|
+
"line": 23
|
|
11672
11903
|
},
|
|
11673
11904
|
"name": "JDBC",
|
|
11674
11905
|
"static": true,
|
|
@@ -11685,7 +11916,7 @@
|
|
|
11685
11916
|
"immutable": true,
|
|
11686
11917
|
"locationInModule": {
|
|
11687
11918
|
"filename": "lib/connection.ts",
|
|
11688
|
-
"line":
|
|
11919
|
+
"line": 100
|
|
11689
11920
|
},
|
|
11690
11921
|
"name": "JIRACLOUD",
|
|
11691
11922
|
"static": true,
|
|
@@ -11702,7 +11933,7 @@
|
|
|
11702
11933
|
"immutable": true,
|
|
11703
11934
|
"locationInModule": {
|
|
11704
11935
|
"filename": "lib/connection.ts",
|
|
11705
|
-
"line":
|
|
11936
|
+
"line": 28
|
|
11706
11937
|
},
|
|
11707
11938
|
"name": "KAFKA",
|
|
11708
11939
|
"static": true,
|
|
@@ -11719,7 +11950,7 @@
|
|
|
11719
11950
|
"immutable": true,
|
|
11720
11951
|
"locationInModule": {
|
|
11721
11952
|
"filename": "lib/connection.ts",
|
|
11722
|
-
"line":
|
|
11953
|
+
"line": 105
|
|
11723
11954
|
},
|
|
11724
11955
|
"name": "MARKETO",
|
|
11725
11956
|
"static": true,
|
|
@@ -11736,7 +11967,7 @@
|
|
|
11736
11967
|
"immutable": true,
|
|
11737
11968
|
"locationInModule": {
|
|
11738
11969
|
"filename": "lib/connection.ts",
|
|
11739
|
-
"line":
|
|
11970
|
+
"line": 54
|
|
11740
11971
|
},
|
|
11741
11972
|
"name": "MARKETPLACE",
|
|
11742
11973
|
"static": true,
|
|
@@ -11753,7 +11984,7 @@
|
|
|
11753
11984
|
"immutable": true,
|
|
11754
11985
|
"locationInModule": {
|
|
11755
11986
|
"filename": "lib/connection.ts",
|
|
11756
|
-
"line":
|
|
11987
|
+
"line": 33
|
|
11757
11988
|
},
|
|
11758
11989
|
"name": "MONGODB",
|
|
11759
11990
|
"static": true,
|
|
@@ -11770,7 +12001,7 @@
|
|
|
11770
12001
|
"immutable": true,
|
|
11771
12002
|
"locationInModule": {
|
|
11772
12003
|
"filename": "lib/connection.ts",
|
|
11773
|
-
"line":
|
|
12004
|
+
"line": 185
|
|
11774
12005
|
},
|
|
11775
12006
|
"name": "MYSQL",
|
|
11776
12007
|
"static": true,
|
|
@@ -11787,7 +12018,7 @@
|
|
|
11787
12018
|
"immutable": true,
|
|
11788
12019
|
"locationInModule": {
|
|
11789
12020
|
"filename": "lib/connection.ts",
|
|
11790
|
-
"line":
|
|
12021
|
+
"line": 110
|
|
11791
12022
|
},
|
|
11792
12023
|
"name": "NETSUITEERP",
|
|
11793
12024
|
"static": true,
|
|
@@ -11804,7 +12035,7 @@
|
|
|
11804
12035
|
"immutable": true,
|
|
11805
12036
|
"locationInModule": {
|
|
11806
12037
|
"filename": "lib/connection.ts",
|
|
11807
|
-
"line":
|
|
12038
|
+
"line": 48
|
|
11808
12039
|
},
|
|
11809
12040
|
"name": "NETWORK",
|
|
11810
12041
|
"static": true,
|
|
@@ -11821,7 +12052,7 @@
|
|
|
11821
12052
|
"immutable": true,
|
|
11822
12053
|
"locationInModule": {
|
|
11823
12054
|
"filename": "lib/connection.ts",
|
|
11824
|
-
"line":
|
|
12055
|
+
"line": 180
|
|
11825
12056
|
},
|
|
11826
12057
|
"name": "OPENSEARCH",
|
|
11827
12058
|
"static": true,
|
|
@@ -11838,7 +12069,7 @@
|
|
|
11838
12069
|
"immutable": true,
|
|
11839
12070
|
"locationInModule": {
|
|
11840
12071
|
"filename": "lib/connection.ts",
|
|
11841
|
-
"line":
|
|
12072
|
+
"line": 195
|
|
11842
12073
|
},
|
|
11843
12074
|
"name": "ORACLE",
|
|
11844
12075
|
"static": true,
|
|
@@ -11855,7 +12086,7 @@
|
|
|
11855
12086
|
"immutable": true,
|
|
11856
12087
|
"locationInModule": {
|
|
11857
12088
|
"filename": "lib/connection.ts",
|
|
11858
|
-
"line":
|
|
12089
|
+
"line": 190
|
|
11859
12090
|
},
|
|
11860
12091
|
"name": "POSTGRESQL",
|
|
11861
12092
|
"static": true,
|
|
@@ -11872,7 +12103,7 @@
|
|
|
11872
12103
|
"immutable": true,
|
|
11873
12104
|
"locationInModule": {
|
|
11874
12105
|
"filename": "lib/connection.ts",
|
|
11875
|
-
"line":
|
|
12106
|
+
"line": 115
|
|
11876
12107
|
},
|
|
11877
12108
|
"name": "SALESFORCE",
|
|
11878
12109
|
"static": true,
|
|
@@ -11889,7 +12120,7 @@
|
|
|
11889
12120
|
"immutable": true,
|
|
11890
12121
|
"locationInModule": {
|
|
11891
12122
|
"filename": "lib/connection.ts",
|
|
11892
|
-
"line":
|
|
12123
|
+
"line": 120
|
|
11893
12124
|
},
|
|
11894
12125
|
"name": "SALESFORCEMARKETINGCLOUD",
|
|
11895
12126
|
"static": true,
|
|
@@ -11906,7 +12137,7 @@
|
|
|
11906
12137
|
"immutable": true,
|
|
11907
12138
|
"locationInModule": {
|
|
11908
12139
|
"filename": "lib/connection.ts",
|
|
11909
|
-
"line":
|
|
12140
|
+
"line": 125
|
|
11910
12141
|
},
|
|
11911
12142
|
"name": "SALESFORCEPARDOT",
|
|
11912
12143
|
"static": true,
|
|
@@ -11923,7 +12154,7 @@
|
|
|
11923
12154
|
"immutable": true,
|
|
11924
12155
|
"locationInModule": {
|
|
11925
12156
|
"filename": "lib/connection.ts",
|
|
11926
|
-
"line":
|
|
12157
|
+
"line": 205
|
|
11927
12158
|
},
|
|
11928
12159
|
"name": "SAPHANA",
|
|
11929
12160
|
"static": true,
|
|
@@ -11940,7 +12171,7 @@
|
|
|
11940
12171
|
"immutable": true,
|
|
11941
12172
|
"locationInModule": {
|
|
11942
12173
|
"filename": "lib/connection.ts",
|
|
11943
|
-
"line":
|
|
12174
|
+
"line": 130
|
|
11944
12175
|
},
|
|
11945
12176
|
"name": "SAPODATA",
|
|
11946
12177
|
"static": true,
|
|
@@ -11957,7 +12188,7 @@
|
|
|
11957
12188
|
"immutable": true,
|
|
11958
12189
|
"locationInModule": {
|
|
11959
12190
|
"filename": "lib/connection.ts",
|
|
11960
|
-
"line":
|
|
12191
|
+
"line": 135
|
|
11961
12192
|
},
|
|
11962
12193
|
"name": "SERVICENOW",
|
|
11963
12194
|
"static": true,
|
|
@@ -11974,7 +12205,7 @@
|
|
|
11974
12205
|
"immutable": true,
|
|
11975
12206
|
"locationInModule": {
|
|
11976
12207
|
"filename": "lib/connection.ts",
|
|
11977
|
-
"line":
|
|
12208
|
+
"line": 140
|
|
11978
12209
|
},
|
|
11979
12210
|
"name": "SLACK",
|
|
11980
12211
|
"static": true,
|
|
@@ -11991,7 +12222,7 @@
|
|
|
11991
12222
|
"immutable": true,
|
|
11992
12223
|
"locationInModule": {
|
|
11993
12224
|
"filename": "lib/connection.ts",
|
|
11994
|
-
"line":
|
|
12225
|
+
"line": 145
|
|
11995
12226
|
},
|
|
11996
12227
|
"name": "SNAPCHATADS",
|
|
11997
12228
|
"static": true,
|
|
@@ -12008,7 +12239,7 @@
|
|
|
12008
12239
|
"immutable": true,
|
|
12009
12240
|
"locationInModule": {
|
|
12010
12241
|
"filename": "lib/connection.ts",
|
|
12011
|
-
"line":
|
|
12242
|
+
"line": 200
|
|
12012
12243
|
},
|
|
12013
12244
|
"name": "SQLSERVER",
|
|
12014
12245
|
"static": true,
|
|
@@ -12025,7 +12256,7 @@
|
|
|
12025
12256
|
"immutable": true,
|
|
12026
12257
|
"locationInModule": {
|
|
12027
12258
|
"filename": "lib/connection.ts",
|
|
12028
|
-
"line":
|
|
12259
|
+
"line": 150
|
|
12029
12260
|
},
|
|
12030
12261
|
"name": "STRIPE",
|
|
12031
12262
|
"static": true,
|
|
@@ -12042,7 +12273,7 @@
|
|
|
12042
12273
|
"immutable": true,
|
|
12043
12274
|
"locationInModule": {
|
|
12044
12275
|
"filename": "lib/connection.ts",
|
|
12045
|
-
"line":
|
|
12276
|
+
"line": 210
|
|
12046
12277
|
},
|
|
12047
12278
|
"name": "TERADATA",
|
|
12048
12279
|
"static": true,
|
|
@@ -12059,7 +12290,7 @@
|
|
|
12059
12290
|
"immutable": true,
|
|
12060
12291
|
"locationInModule": {
|
|
12061
12292
|
"filename": "lib/connection.ts",
|
|
12062
|
-
"line":
|
|
12293
|
+
"line": 215
|
|
12063
12294
|
},
|
|
12064
12295
|
"name": "VERTICA",
|
|
12065
12296
|
"static": true,
|
|
@@ -12076,7 +12307,7 @@
|
|
|
12076
12307
|
"immutable": true,
|
|
12077
12308
|
"locationInModule": {
|
|
12078
12309
|
"filename": "lib/connection.ts",
|
|
12079
|
-
"line":
|
|
12310
|
+
"line": 43
|
|
12080
12311
|
},
|
|
12081
12312
|
"name": "VIEW_VALIDATION_ATHENA",
|
|
12082
12313
|
"static": true,
|
|
@@ -12093,7 +12324,7 @@
|
|
|
12093
12324
|
"immutable": true,
|
|
12094
12325
|
"locationInModule": {
|
|
12095
12326
|
"filename": "lib/connection.ts",
|
|
12096
|
-
"line":
|
|
12327
|
+
"line": 38
|
|
12097
12328
|
},
|
|
12098
12329
|
"name": "VIEW_VALIDATION_REDSHIFT",
|
|
12099
12330
|
"static": true,
|
|
@@ -12110,7 +12341,7 @@
|
|
|
12110
12341
|
"immutable": true,
|
|
12111
12342
|
"locationInModule": {
|
|
12112
12343
|
"filename": "lib/connection.ts",
|
|
12113
|
-
"line":
|
|
12344
|
+
"line": 155
|
|
12114
12345
|
},
|
|
12115
12346
|
"name": "ZENDESK",
|
|
12116
12347
|
"static": true,
|
|
@@ -12127,7 +12358,7 @@
|
|
|
12127
12358
|
"immutable": true,
|
|
12128
12359
|
"locationInModule": {
|
|
12129
12360
|
"filename": "lib/connection.ts",
|
|
12130
|
-
"line":
|
|
12361
|
+
"line": 160
|
|
12131
12362
|
},
|
|
12132
12363
|
"name": "ZOHOCRM",
|
|
12133
12364
|
"static": true,
|
|
@@ -12143,7 +12374,7 @@
|
|
|
12143
12374
|
"immutable": true,
|
|
12144
12375
|
"locationInModule": {
|
|
12145
12376
|
"filename": "lib/connection.ts",
|
|
12146
|
-
"line":
|
|
12377
|
+
"line": 225
|
|
12147
12378
|
},
|
|
12148
12379
|
"name": "name",
|
|
12149
12380
|
"type": {
|
|
@@ -12463,7 +12694,7 @@
|
|
|
12463
12694
|
"name": "key",
|
|
12464
12695
|
"optional": true,
|
|
12465
12696
|
"type": {
|
|
12466
|
-
"fqn": "aws-cdk-lib.aws_kms.
|
|
12697
|
+
"fqn": "aws-cdk-lib.interfaces.aws_kms.IKeyRef"
|
|
12467
12698
|
}
|
|
12468
12699
|
}
|
|
12469
12700
|
],
|
|
@@ -12503,7 +12734,7 @@
|
|
|
12503
12734
|
"name": "key",
|
|
12504
12735
|
"optional": true,
|
|
12505
12736
|
"type": {
|
|
12506
|
-
"fqn": "aws-cdk-lib.aws_kms.
|
|
12737
|
+
"fqn": "aws-cdk-lib.interfaces.aws_kms.IKeyRef"
|
|
12507
12738
|
}
|
|
12508
12739
|
}
|
|
12509
12740
|
],
|
|
@@ -12572,7 +12803,7 @@
|
|
|
12572
12803
|
"docs": {
|
|
12573
12804
|
"stability": "experimental",
|
|
12574
12805
|
"summary": "Defines the input/output formats and ser/de for a single DataFormat.",
|
|
12575
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '
|
|
12806
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});",
|
|
12576
12807
|
"custom": {
|
|
12577
12808
|
"exampleMetadata": "infused"
|
|
12578
12809
|
}
|
|
@@ -12924,7 +13155,7 @@
|
|
|
12924
13155
|
"docs": {
|
|
12925
13156
|
"stability": "experimental",
|
|
12926
13157
|
"summary": "A Glue Data Quality ruleset.",
|
|
12927
|
-
"example": "
|
|
13158
|
+
"example": "declare const database: glue.IDatabase;\nnew glue.DataQualityRuleset(this, 'MyRuleset', {\n rulesetName: 'my_ruleset',\n dqdl: glue.Dqdl.fromString('Rules = [ RowCount > 100, IsComplete \"order_id\" ]'),\n targetTable: glue.DataQualityTargetTable.fromTableName(database, 'my_table'),\n});",
|
|
12928
13159
|
"custom": {
|
|
12929
13160
|
"exampleMetadata": "infused"
|
|
12930
13161
|
}
|
|
@@ -12936,7 +13167,7 @@
|
|
|
12936
13167
|
},
|
|
12937
13168
|
"locationInModule": {
|
|
12938
13169
|
"filename": "lib/data-quality-ruleset.ts",
|
|
12939
|
-
"line":
|
|
13170
|
+
"line": 174
|
|
12940
13171
|
},
|
|
12941
13172
|
"parameters": [
|
|
12942
13173
|
{
|
|
@@ -12965,7 +13196,7 @@
|
|
|
12965
13196
|
"kind": "class",
|
|
12966
13197
|
"locationInModule": {
|
|
12967
13198
|
"filename": "lib/data-quality-ruleset.ts",
|
|
12968
|
-
"line":
|
|
13199
|
+
"line": 141
|
|
12969
13200
|
},
|
|
12970
13201
|
"methods": [
|
|
12971
13202
|
{
|
|
@@ -12974,7 +13205,7 @@
|
|
|
12974
13205
|
},
|
|
12975
13206
|
"locationInModule": {
|
|
12976
13207
|
"filename": "lib/data-quality-ruleset.ts",
|
|
12977
|
-
"line":
|
|
13208
|
+
"line": 146
|
|
12978
13209
|
},
|
|
12979
13210
|
"name": "fromRulesetArn",
|
|
12980
13211
|
"parameters": [
|
|
@@ -13010,7 +13241,7 @@
|
|
|
13010
13241
|
},
|
|
13011
13242
|
"locationInModule": {
|
|
13012
13243
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13013
|
-
"line":
|
|
13244
|
+
"line": 155
|
|
13014
13245
|
},
|
|
13015
13246
|
"name": "fromRulesetName",
|
|
13016
13247
|
"parameters": [
|
|
@@ -13052,7 +13283,7 @@
|
|
|
13052
13283
|
"immutable": true,
|
|
13053
13284
|
"locationInModule": {
|
|
13054
13285
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13055
|
-
"line":
|
|
13286
|
+
"line": 144
|
|
13056
13287
|
},
|
|
13057
13288
|
"name": "PROPERTY_INJECTION_ID",
|
|
13058
13289
|
"static": true,
|
|
@@ -13068,7 +13299,7 @@
|
|
|
13068
13299
|
"immutable": true,
|
|
13069
13300
|
"locationInModule": {
|
|
13070
13301
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13071
|
-
"line":
|
|
13302
|
+
"line": 203
|
|
13072
13303
|
},
|
|
13073
13304
|
"name": "rulesetArn",
|
|
13074
13305
|
"overrides": "@aws-cdk/aws-glue-alpha.IDataQualityRuleset",
|
|
@@ -13084,7 +13315,7 @@
|
|
|
13084
13315
|
"immutable": true,
|
|
13085
13316
|
"locationInModule": {
|
|
13086
13317
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13087
|
-
"line":
|
|
13318
|
+
"line": 195
|
|
13088
13319
|
},
|
|
13089
13320
|
"name": "rulesetName",
|
|
13090
13321
|
"overrides": "@aws-cdk/aws-glue-alpha.IDataQualityRuleset",
|
|
@@ -13101,7 +13332,7 @@
|
|
|
13101
13332
|
"docs": {
|
|
13102
13333
|
"stability": "experimental",
|
|
13103
13334
|
"summary": "Construction properties for `DataQualityRuleset`.",
|
|
13104
|
-
"example": "
|
|
13335
|
+
"example": "declare const database: glue.IDatabase;\nnew glue.DataQualityRuleset(this, 'MyRuleset', {\n rulesetName: 'my_ruleset',\n dqdl: glue.Dqdl.fromString('Rules = [ RowCount > 100, IsComplete \"order_id\" ]'),\n targetTable: glue.DataQualityTargetTable.fromTableName(database, 'my_table'),\n});",
|
|
13105
13336
|
"custom": {
|
|
13106
13337
|
"exampleMetadata": "infused"
|
|
13107
13338
|
}
|
|
@@ -13110,7 +13341,7 @@
|
|
|
13110
13341
|
"kind": "interface",
|
|
13111
13342
|
"locationInModule": {
|
|
13112
13343
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13113
|
-
"line":
|
|
13344
|
+
"line": 99
|
|
13114
13345
|
},
|
|
13115
13346
|
"name": "DataQualityRulesetProps",
|
|
13116
13347
|
"properties": [
|
|
@@ -13124,7 +13355,7 @@
|
|
|
13124
13355
|
"immutable": true,
|
|
13125
13356
|
"locationInModule": {
|
|
13126
13357
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13127
|
-
"line":
|
|
13358
|
+
"line": 116
|
|
13128
13359
|
},
|
|
13129
13360
|
"name": "dqdl",
|
|
13130
13361
|
"type": {
|
|
@@ -13134,20 +13365,17 @@
|
|
|
13134
13365
|
{
|
|
13135
13366
|
"abstract": true,
|
|
13136
13367
|
"docs": {
|
|
13137
|
-
"custom": {
|
|
13138
|
-
"attribute": "true"
|
|
13139
|
-
},
|
|
13140
13368
|
"stability": "experimental",
|
|
13141
|
-
"summary": "The
|
|
13369
|
+
"summary": "The name of the ruleset."
|
|
13142
13370
|
},
|
|
13143
13371
|
"immutable": true,
|
|
13144
13372
|
"locationInModule": {
|
|
13145
13373
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13146
|
-
"line":
|
|
13374
|
+
"line": 103
|
|
13147
13375
|
},
|
|
13148
|
-
"name": "
|
|
13376
|
+
"name": "rulesetName",
|
|
13149
13377
|
"type": {
|
|
13150
|
-
"
|
|
13378
|
+
"primitive": "string"
|
|
13151
13379
|
}
|
|
13152
13380
|
},
|
|
13153
13381
|
{
|
|
@@ -13157,17 +13385,16 @@
|
|
|
13157
13385
|
"attribute": "true"
|
|
13158
13386
|
},
|
|
13159
13387
|
"stability": "experimental",
|
|
13160
|
-
"summary": "The
|
|
13388
|
+
"summary": "The target table of the ruleset."
|
|
13161
13389
|
},
|
|
13162
13390
|
"immutable": true,
|
|
13163
13391
|
"locationInModule": {
|
|
13164
13392
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13165
|
-
"line":
|
|
13393
|
+
"line": 128
|
|
13166
13394
|
},
|
|
13167
|
-
"name": "
|
|
13168
|
-
"optional": true,
|
|
13395
|
+
"name": "targetTable",
|
|
13169
13396
|
"type": {
|
|
13170
|
-
"
|
|
13397
|
+
"fqn": "@aws-cdk/aws-glue-alpha.DataQualityTargetTable"
|
|
13171
13398
|
}
|
|
13172
13399
|
},
|
|
13173
13400
|
{
|
|
@@ -13182,7 +13409,7 @@
|
|
|
13182
13409
|
"immutable": true,
|
|
13183
13410
|
"locationInModule": {
|
|
13184
13411
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13185
|
-
"line":
|
|
13412
|
+
"line": 109
|
|
13186
13413
|
},
|
|
13187
13414
|
"name": "description",
|
|
13188
13415
|
"optional": true,
|
|
@@ -13200,7 +13427,7 @@
|
|
|
13200
13427
|
"immutable": true,
|
|
13201
13428
|
"locationInModule": {
|
|
13202
13429
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13203
|
-
"line":
|
|
13430
|
+
"line": 135
|
|
13204
13431
|
},
|
|
13205
13432
|
"name": "removalPolicy",
|
|
13206
13433
|
"optional": true,
|
|
@@ -13208,24 +13435,6 @@
|
|
|
13208
13435
|
"fqn": "aws-cdk-lib.RemovalPolicy"
|
|
13209
13436
|
}
|
|
13210
13437
|
},
|
|
13211
|
-
{
|
|
13212
|
-
"abstract": true,
|
|
13213
|
-
"docs": {
|
|
13214
|
-
"default": "cloudformation generated name",
|
|
13215
|
-
"stability": "experimental",
|
|
13216
|
-
"summary": "The name of the ruleset."
|
|
13217
|
-
},
|
|
13218
|
-
"immutable": true,
|
|
13219
|
-
"locationInModule": {
|
|
13220
|
-
"filename": "lib/data-quality-ruleset.ts",
|
|
13221
|
-
"line": 82
|
|
13222
|
-
},
|
|
13223
|
-
"name": "rulesetName",
|
|
13224
|
-
"optional": true,
|
|
13225
|
-
"type": {
|
|
13226
|
-
"primitive": "string"
|
|
13227
|
-
}
|
|
13228
|
-
},
|
|
13229
13438
|
{
|
|
13230
13439
|
"abstract": true,
|
|
13231
13440
|
"docs": {
|
|
@@ -13236,7 +13445,7 @@
|
|
|
13236
13445
|
"immutable": true,
|
|
13237
13446
|
"locationInModule": {
|
|
13238
13447
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13239
|
-
"line":
|
|
13448
|
+
"line": 122
|
|
13240
13449
|
},
|
|
13241
13450
|
"name": "tags",
|
|
13242
13451
|
"optional": true,
|
|
@@ -13256,41 +13465,95 @@
|
|
|
13256
13465
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
13257
13466
|
"docs": {
|
|
13258
13467
|
"stability": "experimental",
|
|
13259
|
-
"summary": "
|
|
13260
|
-
"example": "
|
|
13468
|
+
"summary": "The Glue table a `DataQualityRuleset` evaluates.",
|
|
13469
|
+
"example": "declare const database: glue.IDatabase;\nnew glue.DataQualityRuleset(this, 'MyRuleset', {\n rulesetName: 'my_ruleset',\n dqdl: glue.Dqdl.fromString('Rules = [ RowCount > 100, IsComplete \"order_id\" ]'),\n targetTable: glue.DataQualityTargetTable.fromTableName(database, 'my_table'),\n});",
|
|
13261
13470
|
"custom": {
|
|
13262
13471
|
"exampleMetadata": "infused"
|
|
13263
13472
|
}
|
|
13264
13473
|
},
|
|
13265
13474
|
"fqn": "@aws-cdk/aws-glue-alpha.DataQualityTargetTable",
|
|
13266
|
-
"
|
|
13267
|
-
|
|
13268
|
-
|
|
13269
|
-
|
|
13270
|
-
|
|
13271
|
-
|
|
13272
|
-
|
|
13273
|
-
|
|
13274
|
-
|
|
13275
|
-
|
|
13276
|
-
|
|
13475
|
+
"kind": "class",
|
|
13476
|
+
"locationInModule": {
|
|
13477
|
+
"filename": "lib/data-quality-ruleset.ts",
|
|
13478
|
+
"line": 14
|
|
13479
|
+
},
|
|
13480
|
+
"methods": [
|
|
13481
|
+
{
|
|
13482
|
+
"docs": {
|
|
13483
|
+
"stability": "experimental",
|
|
13484
|
+
"summary": "Target an L2 table in a database."
|
|
13485
|
+
},
|
|
13486
|
+
"locationInModule": {
|
|
13487
|
+
"filename": "lib/data-quality-ruleset.ts",
|
|
13488
|
+
"line": 21
|
|
13489
|
+
},
|
|
13490
|
+
"name": "fromTable",
|
|
13491
|
+
"parameters": [
|
|
13492
|
+
{
|
|
13493
|
+
"docs": {
|
|
13494
|
+
"summary": "the database that holds the table."
|
|
13495
|
+
},
|
|
13496
|
+
"name": "database",
|
|
13497
|
+
"type": {
|
|
13498
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.IDatabaseRef"
|
|
13499
|
+
}
|
|
13500
|
+
},
|
|
13501
|
+
{
|
|
13502
|
+
"docs": {
|
|
13503
|
+
"summary": "the table to evaluate."
|
|
13504
|
+
},
|
|
13505
|
+
"name": "table",
|
|
13506
|
+
"type": {
|
|
13507
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ITable"
|
|
13508
|
+
}
|
|
13509
|
+
}
|
|
13510
|
+
],
|
|
13511
|
+
"returns": {
|
|
13277
13512
|
"type": {
|
|
13278
|
-
"
|
|
13513
|
+
"fqn": "@aws-cdk/aws-glue-alpha.DataQualityTargetTable"
|
|
13279
13514
|
}
|
|
13280
13515
|
},
|
|
13281
|
-
|
|
13282
|
-
|
|
13516
|
+
"static": true
|
|
13517
|
+
},
|
|
13518
|
+
{
|
|
13519
|
+
"docs": {
|
|
13520
|
+
"remarks": "Use this when the table is not\nmodeled as an L2 construct (e.g. it is imported or created elsewhere).",
|
|
13521
|
+
"stability": "experimental",
|
|
13522
|
+
"summary": "Target a table by name in a database."
|
|
13523
|
+
},
|
|
13524
|
+
"locationInModule": {
|
|
13525
|
+
"filename": "lib/data-quality-ruleset.ts",
|
|
13526
|
+
"line": 32
|
|
13527
|
+
},
|
|
13528
|
+
"name": "fromTableName",
|
|
13529
|
+
"parameters": [
|
|
13530
|
+
{
|
|
13531
|
+
"docs": {
|
|
13532
|
+
"summary": "the database that holds the table."
|
|
13533
|
+
},
|
|
13534
|
+
"name": "database",
|
|
13535
|
+
"type": {
|
|
13536
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.IDatabaseRef"
|
|
13537
|
+
}
|
|
13538
|
+
},
|
|
13539
|
+
{
|
|
13540
|
+
"docs": {
|
|
13541
|
+
"summary": "the name of the table to evaluate."
|
|
13542
|
+
},
|
|
13543
|
+
"name": "tableName",
|
|
13544
|
+
"type": {
|
|
13545
|
+
"primitive": "string"
|
|
13546
|
+
}
|
|
13547
|
+
}
|
|
13548
|
+
],
|
|
13549
|
+
"returns": {
|
|
13283
13550
|
"type": {
|
|
13284
|
-
"
|
|
13551
|
+
"fqn": "@aws-cdk/aws-glue-alpha.DataQualityTargetTable"
|
|
13285
13552
|
}
|
|
13286
|
-
}
|
|
13287
|
-
|
|
13288
|
-
|
|
13289
|
-
|
|
13290
|
-
"locationInModule": {
|
|
13291
|
-
"filename": "lib/data-quality-ruleset.ts",
|
|
13292
|
-
"line": 13
|
|
13293
|
-
},
|
|
13553
|
+
},
|
|
13554
|
+
"static": true
|
|
13555
|
+
}
|
|
13556
|
+
],
|
|
13294
13557
|
"name": "DataQualityTargetTable",
|
|
13295
13558
|
"properties": [
|
|
13296
13559
|
{
|
|
@@ -13301,7 +13564,7 @@
|
|
|
13301
13564
|
"immutable": true,
|
|
13302
13565
|
"locationInModule": {
|
|
13303
13566
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13304
|
-
"line":
|
|
13567
|
+
"line": 39
|
|
13305
13568
|
},
|
|
13306
13569
|
"name": "databaseName",
|
|
13307
13570
|
"type": {
|
|
@@ -13316,7 +13579,7 @@
|
|
|
13316
13579
|
"immutable": true,
|
|
13317
13580
|
"locationInModule": {
|
|
13318
13581
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13319
|
-
"line":
|
|
13582
|
+
"line": 44
|
|
13320
13583
|
},
|
|
13321
13584
|
"name": "tableName",
|
|
13322
13585
|
"type": {
|
|
@@ -13344,7 +13607,7 @@
|
|
|
13344
13607
|
},
|
|
13345
13608
|
"locationInModule": {
|
|
13346
13609
|
"filename": "lib/database.ts",
|
|
13347
|
-
"line":
|
|
13610
|
+
"line": 113
|
|
13348
13611
|
},
|
|
13349
13612
|
"parameters": [
|
|
13350
13613
|
{
|
|
@@ -13442,7 +13705,7 @@
|
|
|
13442
13705
|
"immutable": true,
|
|
13443
13706
|
"locationInModule": {
|
|
13444
13707
|
"filename": "lib/database.ts",
|
|
13445
|
-
"line":
|
|
13708
|
+
"line": 163
|
|
13446
13709
|
},
|
|
13447
13710
|
"name": "catalog",
|
|
13448
13711
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
@@ -13458,7 +13721,7 @@
|
|
|
13458
13721
|
"immutable": true,
|
|
13459
13722
|
"locationInModule": {
|
|
13460
13723
|
"filename": "lib/database.ts",
|
|
13461
|
-
"line":
|
|
13724
|
+
"line": 173
|
|
13462
13725
|
},
|
|
13463
13726
|
"name": "databaseArn",
|
|
13464
13727
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
@@ -13474,7 +13737,7 @@
|
|
|
13474
13737
|
"immutable": true,
|
|
13475
13738
|
"locationInModule": {
|
|
13476
13739
|
"filename": "lib/database.ts",
|
|
13477
|
-
"line":
|
|
13740
|
+
"line": 168
|
|
13478
13741
|
},
|
|
13479
13742
|
"name": "databaseName",
|
|
13480
13743
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
@@ -13482,6 +13745,22 @@
|
|
|
13482
13745
|
"primitive": "string"
|
|
13483
13746
|
}
|
|
13484
13747
|
},
|
|
13748
|
+
{
|
|
13749
|
+
"docs": {
|
|
13750
|
+
"stability": "experimental",
|
|
13751
|
+
"summary": "A reference to a Database resource."
|
|
13752
|
+
},
|
|
13753
|
+
"immutable": true,
|
|
13754
|
+
"locationInModule": {
|
|
13755
|
+
"filename": "lib/database.ts",
|
|
13756
|
+
"line": 182
|
|
13757
|
+
},
|
|
13758
|
+
"name": "databaseRef",
|
|
13759
|
+
"overrides": "aws-cdk-lib.interfaces.aws_glue.IDatabaseRef",
|
|
13760
|
+
"type": {
|
|
13761
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.DatabaseReference"
|
|
13762
|
+
}
|
|
13763
|
+
},
|
|
13485
13764
|
{
|
|
13486
13765
|
"docs": {
|
|
13487
13766
|
"stability": "experimental",
|
|
@@ -13490,7 +13769,7 @@
|
|
|
13490
13769
|
"immutable": true,
|
|
13491
13770
|
"locationInModule": {
|
|
13492
13771
|
"filename": "lib/database.ts",
|
|
13493
|
-
"line":
|
|
13772
|
+
"line": 107
|
|
13494
13773
|
},
|
|
13495
13774
|
"name": "locationUri",
|
|
13496
13775
|
"optional": true,
|
|
@@ -13760,8 +14039,8 @@
|
|
|
13760
14039
|
{
|
|
13761
14040
|
"abstract": true,
|
|
13762
14041
|
"docs": {
|
|
13763
|
-
"default": "-
|
|
13764
|
-
"remarks": "
|
|
14042
|
+
"default": "- Athena's default step for the format's precision; required when `format` is sub-day precision",
|
|
14043
|
+
"remarks": "Required (together with `intervalUnit`) when `format` carries sub-day\nprecision — i.e. a field finer than a day, such as hours or AM/PM. At day\nor coarser precision Athena defaults the step, so it is optional.",
|
|
13765
14044
|
"stability": "experimental",
|
|
13766
14045
|
"summary": "Interval between partition values."
|
|
13767
14046
|
},
|
|
@@ -13779,8 +14058,8 @@
|
|
|
13779
14058
|
{
|
|
13780
14059
|
"abstract": true,
|
|
13781
14060
|
"docs": {
|
|
13782
|
-
"default": "-
|
|
13783
|
-
"remarks": "
|
|
14061
|
+
"default": "- Athena's default unit for the format's precision; required when `format` is sub-day precision",
|
|
14062
|
+
"remarks": "Required (together with `interval`) when `format` carries sub-day\nprecision — i.e. a field finer than a day, such as hours or AM/PM. At day\nor coarser precision Athena defaults the step, so it is optional.",
|
|
13784
14063
|
"stability": "experimental",
|
|
13785
14064
|
"summary": "Unit for the interval."
|
|
13786
14065
|
},
|
|
@@ -13805,7 +14084,7 @@
|
|
|
13805
14084
|
"see": "https://docs.aws.amazon.com/glue/latest/dg/dqdl.html",
|
|
13806
14085
|
"stability": "experimental",
|
|
13807
14086
|
"summary": "The Data Quality Definition Language (DQDL) document for a `DataQualityRuleset`.",
|
|
13808
|
-
"example": "
|
|
14087
|
+
"example": "declare const database: glue.IDatabase;\nnew glue.DataQualityRuleset(this, 'MyRuleset', {\n rulesetName: 'my_ruleset',\n dqdl: glue.Dqdl.fromString('Rules = [ RowCount > 100, IsComplete \"order_id\" ]'),\n targetTable: glue.DataQualityTargetTable.fromTableName(database, 'my_table'),\n});",
|
|
13809
14088
|
"custom": {
|
|
13810
14089
|
"exampleMetadata": "infused"
|
|
13811
14090
|
}
|
|
@@ -13814,7 +14093,7 @@
|
|
|
13814
14093
|
"kind": "class",
|
|
13815
14094
|
"locationInModule": {
|
|
13816
14095
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13817
|
-
"line":
|
|
14096
|
+
"line": 60
|
|
13818
14097
|
},
|
|
13819
14098
|
"methods": [
|
|
13820
14099
|
{
|
|
@@ -13824,7 +14103,7 @@
|
|
|
13824
14103
|
},
|
|
13825
14104
|
"locationInModule": {
|
|
13826
14105
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13827
|
-
"line":
|
|
14106
|
+
"line": 66
|
|
13828
14107
|
},
|
|
13829
14108
|
"name": "fromString",
|
|
13830
14109
|
"parameters": [
|
|
@@ -14459,7 +14738,7 @@
|
|
|
14459
14738
|
"kind": "interface",
|
|
14460
14739
|
"locationInModule": {
|
|
14461
14740
|
"filename": "lib/connection.ts",
|
|
14462
|
-
"line":
|
|
14741
|
+
"line": 242
|
|
14463
14742
|
},
|
|
14464
14743
|
"name": "IConnection",
|
|
14465
14744
|
"properties": [
|
|
@@ -14475,7 +14754,7 @@
|
|
|
14475
14754
|
"immutable": true,
|
|
14476
14755
|
"locationInModule": {
|
|
14477
14756
|
"filename": "lib/connection.ts",
|
|
14478
|
-
"line":
|
|
14757
|
+
"line": 253
|
|
14479
14758
|
},
|
|
14480
14759
|
"name": "connectionArn",
|
|
14481
14760
|
"type": {
|
|
@@ -14494,7 +14773,7 @@
|
|
|
14494
14773
|
"immutable": true,
|
|
14495
14774
|
"locationInModule": {
|
|
14496
14775
|
"filename": "lib/connection.ts",
|
|
14497
|
-
"line":
|
|
14776
|
+
"line": 247
|
|
14498
14777
|
},
|
|
14499
14778
|
"name": "connectionName",
|
|
14500
14779
|
"type": {
|
|
@@ -14516,7 +14795,7 @@
|
|
|
14516
14795
|
"kind": "interface",
|
|
14517
14796
|
"locationInModule": {
|
|
14518
14797
|
"filename": "lib/data-quality-ruleset.ts",
|
|
14519
|
-
"line":
|
|
14798
|
+
"line": 82
|
|
14520
14799
|
},
|
|
14521
14800
|
"name": "IDataQualityRuleset",
|
|
14522
14801
|
"properties": [
|
|
@@ -14532,7 +14811,7 @@
|
|
|
14532
14811
|
"immutable": true,
|
|
14533
14812
|
"locationInModule": {
|
|
14534
14813
|
"filename": "lib/data-quality-ruleset.ts",
|
|
14535
|
-
"line":
|
|
14814
|
+
"line": 87
|
|
14536
14815
|
},
|
|
14537
14816
|
"name": "rulesetArn",
|
|
14538
14817
|
"type": {
|
|
@@ -14551,7 +14830,7 @@
|
|
|
14551
14830
|
"immutable": true,
|
|
14552
14831
|
"locationInModule": {
|
|
14553
14832
|
"filename": "lib/data-quality-ruleset.ts",
|
|
14554
|
-
"line":
|
|
14833
|
+
"line": 93
|
|
14555
14834
|
},
|
|
14556
14835
|
"name": "rulesetName",
|
|
14557
14836
|
"type": {
|
|
@@ -14568,7 +14847,8 @@
|
|
|
14568
14847
|
},
|
|
14569
14848
|
"fqn": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
14570
14849
|
"interfaces": [
|
|
14571
|
-
"aws-cdk-lib.IResource"
|
|
14850
|
+
"aws-cdk-lib.IResource",
|
|
14851
|
+
"aws-cdk-lib.interfaces.aws_glue.IDatabaseRef"
|
|
14572
14852
|
],
|
|
14573
14853
|
"kind": "interface",
|
|
14574
14854
|
"locationInModule": {
|
|
@@ -15477,7 +15757,7 @@
|
|
|
15477
15757
|
"kind": "enum",
|
|
15478
15758
|
"locationInModule": {
|
|
15479
15759
|
"filename": "lib/storage-parameter.ts",
|
|
15480
|
-
"line":
|
|
15760
|
+
"line": 35
|
|
15481
15761
|
},
|
|
15482
15762
|
"members": [
|
|
15483
15763
|
{
|
|
@@ -16490,7 +16770,7 @@
|
|
|
16490
16770
|
{
|
|
16491
16771
|
"abstract": true,
|
|
16492
16772
|
"docs": {
|
|
16493
|
-
"default": "3.0 for
|
|
16773
|
+
"default": "- determined by the job type: 4.0 for ETL and Streaming, 5.0 for Flex, 3.0 for Python Shell",
|
|
16494
16774
|
"stability": "experimental",
|
|
16495
16775
|
"summary": "Glue Version The version of Glue to use to execute this job."
|
|
16496
16776
|
},
|
|
@@ -16858,7 +17138,7 @@
|
|
|
16858
17138
|
"kind": "enum",
|
|
16859
17139
|
"locationInModule": {
|
|
16860
17140
|
"filename": "lib/storage-parameter.ts",
|
|
16861
|
-
"line":
|
|
17141
|
+
"line": 67
|
|
16862
17142
|
},
|
|
16863
17143
|
"members": [
|
|
16864
17144
|
{
|
|
@@ -16927,7 +17207,7 @@
|
|
|
16927
17207
|
"kind": "enum",
|
|
16928
17208
|
"locationInModule": {
|
|
16929
17209
|
"filename": "lib/storage-parameter.ts",
|
|
16930
|
-
"line":
|
|
17210
|
+
"line": 202
|
|
16931
17211
|
},
|
|
16932
17212
|
"members": [
|
|
16933
17213
|
{
|
|
@@ -17148,7 +17428,7 @@
|
|
|
17148
17428
|
"kind": "class",
|
|
17149
17429
|
"locationInModule": {
|
|
17150
17430
|
"filename": "lib/partition-projection.ts",
|
|
17151
|
-
"line":
|
|
17431
|
+
"line": 269
|
|
17152
17432
|
},
|
|
17153
17433
|
"methods": [
|
|
17154
17434
|
{
|
|
@@ -17158,7 +17438,7 @@
|
|
|
17158
17438
|
},
|
|
17159
17439
|
"locationInModule": {
|
|
17160
17440
|
"filename": "lib/partition-projection.ts",
|
|
17161
|
-
"line":
|
|
17441
|
+
"line": 327
|
|
17162
17442
|
},
|
|
17163
17443
|
"name": "date",
|
|
17164
17444
|
"parameters": [
|
|
@@ -17183,7 +17463,7 @@
|
|
|
17183
17463
|
},
|
|
17184
17464
|
"locationInModule": {
|
|
17185
17465
|
"filename": "lib/partition-projection.ts",
|
|
17186
|
-
"line":
|
|
17466
|
+
"line": 424
|
|
17187
17467
|
},
|
|
17188
17468
|
"name": "enum",
|
|
17189
17469
|
"parameters": [
|
|
@@ -17210,7 +17490,7 @@
|
|
|
17210
17490
|
},
|
|
17211
17491
|
"locationInModule": {
|
|
17212
17492
|
"filename": "lib/partition-projection.ts",
|
|
17213
|
-
"line":
|
|
17493
|
+
"line": 464
|
|
17214
17494
|
},
|
|
17215
17495
|
"name": "injected",
|
|
17216
17496
|
"returns": {
|
|
@@ -17227,7 +17507,7 @@
|
|
|
17227
17507
|
},
|
|
17228
17508
|
"locationInModule": {
|
|
17229
17509
|
"filename": "lib/partition-projection.ts",
|
|
17230
|
-
"line":
|
|
17510
|
+
"line": 273
|
|
17231
17511
|
},
|
|
17232
17512
|
"name": "integer",
|
|
17233
17513
|
"parameters": [
|
|
@@ -17256,7 +17536,7 @@
|
|
|
17256
17536
|
"immutable": true,
|
|
17257
17537
|
"locationInModule": {
|
|
17258
17538
|
"filename": "lib/partition-projection.ts",
|
|
17259
|
-
"line":
|
|
17539
|
+
"line": 473
|
|
17260
17540
|
},
|
|
17261
17541
|
"name": "type",
|
|
17262
17542
|
"type": {
|
|
@@ -17272,7 +17552,7 @@
|
|
|
17272
17552
|
"immutable": true,
|
|
17273
17553
|
"locationInModule": {
|
|
17274
17554
|
"filename": "lib/partition-projection.ts",
|
|
17275
|
-
"line":
|
|
17555
|
+
"line": 487
|
|
17276
17556
|
},
|
|
17277
17557
|
"name": "dateRange",
|
|
17278
17558
|
"optional": true,
|
|
@@ -17293,7 +17573,7 @@
|
|
|
17293
17573
|
"immutable": true,
|
|
17294
17574
|
"locationInModule": {
|
|
17295
17575
|
"filename": "lib/partition-projection.ts",
|
|
17296
|
-
"line":
|
|
17576
|
+
"line": 497
|
|
17297
17577
|
},
|
|
17298
17578
|
"name": "digits",
|
|
17299
17579
|
"optional": true,
|
|
@@ -17309,7 +17589,7 @@
|
|
|
17309
17589
|
"immutable": true,
|
|
17310
17590
|
"locationInModule": {
|
|
17311
17591
|
"filename": "lib/partition-projection.ts",
|
|
17312
|
-
"line":
|
|
17592
|
+
"line": 502
|
|
17313
17593
|
},
|
|
17314
17594
|
"name": "format",
|
|
17315
17595
|
"optional": true,
|
|
@@ -17326,7 +17606,7 @@
|
|
|
17326
17606
|
"immutable": true,
|
|
17327
17607
|
"locationInModule": {
|
|
17328
17608
|
"filename": "lib/partition-projection.ts",
|
|
17329
|
-
"line":
|
|
17609
|
+
"line": 480
|
|
17330
17610
|
},
|
|
17331
17611
|
"name": "integerRange",
|
|
17332
17612
|
"optional": true,
|
|
@@ -17347,7 +17627,7 @@
|
|
|
17347
17627
|
"immutable": true,
|
|
17348
17628
|
"locationInModule": {
|
|
17349
17629
|
"filename": "lib/partition-projection.ts",
|
|
17350
|
-
"line":
|
|
17630
|
+
"line": 492
|
|
17351
17631
|
},
|
|
17352
17632
|
"name": "interval",
|
|
17353
17633
|
"optional": true,
|
|
@@ -17363,7 +17643,7 @@
|
|
|
17363
17643
|
"immutable": true,
|
|
17364
17644
|
"locationInModule": {
|
|
17365
17645
|
"filename": "lib/partition-projection.ts",
|
|
17366
|
-
"line":
|
|
17646
|
+
"line": 507
|
|
17367
17647
|
},
|
|
17368
17648
|
"name": "intervalUnit",
|
|
17369
17649
|
"optional": true,
|
|
@@ -17379,7 +17659,7 @@
|
|
|
17379
17659
|
"immutable": true,
|
|
17380
17660
|
"locationInModule": {
|
|
17381
17661
|
"filename": "lib/partition-projection.ts",
|
|
17382
|
-
"line":
|
|
17662
|
+
"line": 512
|
|
17383
17663
|
},
|
|
17384
17664
|
"name": "values",
|
|
17385
17665
|
"optional": true,
|
|
@@ -17487,7 +17767,7 @@
|
|
|
17487
17767
|
{
|
|
17488
17768
|
"abstract": true,
|
|
17489
17769
|
"docs": {
|
|
17490
|
-
"default": "-
|
|
17770
|
+
"default": "- PredicateLogical.AND if multiple conditions are provided, no logical operator if only one condition",
|
|
17491
17771
|
"stability": "experimental",
|
|
17492
17772
|
"summary": "The logical operator to be applied to the conditions."
|
|
17493
17773
|
},
|
|
@@ -17539,7 +17819,7 @@
|
|
|
17539
17819
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
17540
17820
|
"base": "@aws-cdk/aws-glue-alpha.SparkJob",
|
|
17541
17821
|
"docs": {
|
|
17542
|
-
"remarks": "ETL jobs support pySpark and Scala languages, for which there are separate\nbut similar constructors. ETL jobs default to the
|
|
17822
|
+
"remarks": "ETL jobs support pySpark and Scala languages, for which there are separate\nbut similar constructors. ETL jobs default to the G1 worker type, but you\ncan override this default with other supported worker type values\n(G1, G2, G4 and G8). ETL jobs defaults to Glue version 4.0, which you can\noverride to 3.0. The following ETL features are enabled by default:\n--enable-metrics, --enable-continuous-cloudwatch-log. The Spark UI\n(--enable-spark-ui) is off by default; enable it by setting the `sparkUI` prop.\nYou can find more details about version, worker type and other features\nin Glue's public documentation.",
|
|
17543
17823
|
"stability": "experimental",
|
|
17544
17824
|
"summary": "PySpark ETL Jobs class.",
|
|
17545
17825
|
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [{ job }],\n});",
|
|
@@ -17793,7 +18073,7 @@
|
|
|
17793
18073
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
17794
18074
|
"base": "@aws-cdk/aws-glue-alpha.SparkJob",
|
|
17795
18075
|
"docs": {
|
|
17796
|
-
"remarks": "Flex jobs supports Python and Scala language.\nThe flexible execution class is appropriate for non-urgent jobs such as\npre-production jobs, testing, and one-time data loads.\nFlexible job runs are supported for jobs using AWS Glue version 3.0 or later and G.1X or\nG.2X worker types but will default to the latest version of Glue (currently Glue
|
|
18076
|
+
"remarks": "Flex jobs supports Python and Scala language.\nThe flexible execution class is appropriate for non-urgent jobs such as\npre-production jobs, testing, and one-time data loads.\nFlexible job runs are supported for jobs using AWS Glue version 3.0 or later and G.1X or\nG.2X worker types but will default to the latest version of Glue (currently Glue 5.0.)\n\nSimilar to ETL, we’ll enable these features: --enable-metrics,\n--enable-continuous-cloudwatch-log. The Spark UI (--enable-spark-ui) is off by\ndefault; enable it by setting the `sparkUI` prop.",
|
|
17797
18077
|
"stability": "experimental",
|
|
17798
18078
|
"summary": "Flex Jobs class.",
|
|
17799
18079
|
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'ImportedJob', { role, script });",
|
|
@@ -18028,7 +18308,7 @@
|
|
|
18028
18308
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
18029
18309
|
"base": "@aws-cdk/aws-glue-alpha.SparkJob",
|
|
18030
18310
|
"docs": {
|
|
18031
|
-
"remarks": "A Streaming job is similar to an ETL job, except that it performs ETL on data streams\nusing the Apache Spark Structured Streaming framework.\nThese jobs will default to use Python 3.9.\n\nSimilar to ETL jobs, streaming job supports Scala and Python languages. Similar to ETL,\nit supports G1 and G2 worker type and 2.0, 3.0 and 4.0 version. We’ll default to
|
|
18311
|
+
"remarks": "A Streaming job is similar to an ETL job, except that it performs ETL on data streams\nusing the Apache Spark Structured Streaming framework.\nThese jobs will default to use Python 3.9.\n\nSimilar to ETL jobs, streaming job supports Scala and Python languages. Similar to ETL,\nit supports G1 and G2 worker type and 2.0, 3.0 and 4.0 version. We’ll default to G1 worker\nand 4.0 version for streaming jobs which developers can override.\nWe will enable --enable-metrics, --enable-continuous-cloudwatch-log. The Spark UI\n(--enable-spark-ui) is off by default; enable it by setting the `sparkUI` prop.",
|
|
18032
18312
|
"stability": "experimental",
|
|
18033
18313
|
"summary": "Python Spark Streaming Jobs class.",
|
|
18034
18314
|
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'ImportedJob', { role, script });",
|
|
@@ -19011,7 +19291,7 @@
|
|
|
19011
19291
|
},
|
|
19012
19292
|
"stability": "experimental",
|
|
19013
19293
|
"summary": "A Glue table that targets a S3 dataset.",
|
|
19014
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '
|
|
19294
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});"
|
|
19015
19295
|
},
|
|
19016
19296
|
"fqn": "@aws-cdk/aws-glue-alpha.S3Table",
|
|
19017
19297
|
"initializer": {
|
|
@@ -19020,7 +19300,7 @@
|
|
|
19020
19300
|
},
|
|
19021
19301
|
"locationInModule": {
|
|
19022
19302
|
"filename": "lib/s3-table.ts",
|
|
19023
|
-
"line":
|
|
19303
|
+
"line": 207
|
|
19024
19304
|
},
|
|
19025
19305
|
"parameters": [
|
|
19026
19306
|
{
|
|
@@ -19046,7 +19326,7 @@
|
|
|
19046
19326
|
"kind": "class",
|
|
19047
19327
|
"locationInModule": {
|
|
19048
19328
|
"filename": "lib/s3-table.ts",
|
|
19049
|
-
"line":
|
|
19329
|
+
"line": 168
|
|
19050
19330
|
},
|
|
19051
19331
|
"methods": [
|
|
19052
19332
|
{
|
|
@@ -19055,7 +19335,7 @@
|
|
|
19055
19335
|
},
|
|
19056
19336
|
"locationInModule": {
|
|
19057
19337
|
"filename": "lib/s3-table.ts",
|
|
19058
|
-
"line":
|
|
19338
|
+
"line": 336
|
|
19059
19339
|
},
|
|
19060
19340
|
"name": "generateS3PrefixForGrant",
|
|
19061
19341
|
"protected": true,
|
|
@@ -19073,7 +19353,7 @@
|
|
|
19073
19353
|
},
|
|
19074
19354
|
"locationInModule": {
|
|
19075
19355
|
"filename": "lib/s3-table.ts",
|
|
19076
|
-
"line":
|
|
19356
|
+
"line": 300
|
|
19077
19357
|
},
|
|
19078
19358
|
"name": "grantRead",
|
|
19079
19359
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -19102,7 +19382,7 @@
|
|
|
19102
19382
|
},
|
|
19103
19383
|
"locationInModule": {
|
|
19104
19384
|
"filename": "lib/s3-table.ts",
|
|
19105
|
-
"line":
|
|
19385
|
+
"line": 328
|
|
19106
19386
|
},
|
|
19107
19387
|
"name": "grantReadWrite",
|
|
19108
19388
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -19131,7 +19411,7 @@
|
|
|
19131
19411
|
},
|
|
19132
19412
|
"locationInModule": {
|
|
19133
19413
|
"filename": "lib/s3-table.ts",
|
|
19134
|
-
"line":
|
|
19414
|
+
"line": 314
|
|
19135
19415
|
},
|
|
19136
19416
|
"name": "grantWrite",
|
|
19137
19417
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -19164,7 +19444,7 @@
|
|
|
19164
19444
|
"immutable": true,
|
|
19165
19445
|
"locationInModule": {
|
|
19166
19446
|
"filename": "lib/s3-table.ts",
|
|
19167
|
-
"line":
|
|
19447
|
+
"line": 171
|
|
19168
19448
|
},
|
|
19169
19449
|
"name": "PROPERTY_INJECTION_ID",
|
|
19170
19450
|
"static": true,
|
|
@@ -19180,28 +19460,13 @@
|
|
|
19180
19460
|
"immutable": true,
|
|
19181
19461
|
"locationInModule": {
|
|
19182
19462
|
"filename": "lib/s3-table.ts",
|
|
19183
|
-
"line":
|
|
19463
|
+
"line": 178
|
|
19184
19464
|
},
|
|
19185
19465
|
"name": "bucket",
|
|
19186
19466
|
"type": {
|
|
19187
19467
|
"fqn": "aws-cdk-lib.aws_s3.IBucket"
|
|
19188
19468
|
}
|
|
19189
19469
|
},
|
|
19190
|
-
{
|
|
19191
|
-
"docs": {
|
|
19192
|
-
"stability": "experimental",
|
|
19193
|
-
"summary": "The type of encryption enabled for the table."
|
|
19194
|
-
},
|
|
19195
|
-
"immutable": true,
|
|
19196
|
-
"locationInModule": {
|
|
19197
|
-
"filename": "lib/s3-table.ts",
|
|
19198
|
-
"line": 113
|
|
19199
|
-
},
|
|
19200
|
-
"name": "encryption",
|
|
19201
|
-
"type": {
|
|
19202
|
-
"fqn": "@aws-cdk/aws-glue-alpha.TableEncryption"
|
|
19203
|
-
}
|
|
19204
|
-
},
|
|
19205
19470
|
{
|
|
19206
19471
|
"docs": {
|
|
19207
19472
|
"stability": "experimental",
|
|
@@ -19210,7 +19475,7 @@
|
|
|
19210
19475
|
"immutable": true,
|
|
19211
19476
|
"locationInModule": {
|
|
19212
19477
|
"filename": "lib/s3-table.ts",
|
|
19213
|
-
"line":
|
|
19478
|
+
"line": 183
|
|
19214
19479
|
},
|
|
19215
19480
|
"name": "s3Prefix",
|
|
19216
19481
|
"type": {
|
|
@@ -19225,7 +19490,7 @@
|
|
|
19225
19490
|
"immutable": true,
|
|
19226
19491
|
"locationInModule": {
|
|
19227
19492
|
"filename": "lib/s3-table.ts",
|
|
19228
|
-
"line":
|
|
19493
|
+
"line": 285
|
|
19229
19494
|
},
|
|
19230
19495
|
"name": "tableArn",
|
|
19231
19496
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -19241,7 +19506,7 @@
|
|
|
19241
19506
|
"immutable": true,
|
|
19242
19507
|
"locationInModule": {
|
|
19243
19508
|
"filename": "lib/s3-table.ts",
|
|
19244
|
-
"line":
|
|
19509
|
+
"line": 277
|
|
19245
19510
|
},
|
|
19246
19511
|
"name": "tableName",
|
|
19247
19512
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -19256,7 +19521,7 @@
|
|
|
19256
19521
|
"immutable": true,
|
|
19257
19522
|
"locationInModule": {
|
|
19258
19523
|
"filename": "lib/s3-table.ts",
|
|
19259
|
-
"line":
|
|
19524
|
+
"line": 198
|
|
19260
19525
|
},
|
|
19261
19526
|
"name": "tableResource",
|
|
19262
19527
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -19267,19 +19532,19 @@
|
|
|
19267
19532
|
},
|
|
19268
19533
|
{
|
|
19269
19534
|
"docs": {
|
|
19270
|
-
"remarks": "
|
|
19535
|
+
"remarks": "For server-side (bucket) encryption, read `bucket.encryptionKey` instead.",
|
|
19271
19536
|
"stability": "experimental",
|
|
19272
|
-
"summary": "The KMS key used
|
|
19537
|
+
"summary": "The KMS key used for client-side encryption of the table's data, if `clientSideEncryption` was configured. Otherwise, `undefined`."
|
|
19273
19538
|
},
|
|
19274
19539
|
"immutable": true,
|
|
19275
19540
|
"locationInModule": {
|
|
19276
19541
|
"filename": "lib/s3-table.ts",
|
|
19277
|
-
"line":
|
|
19542
|
+
"line": 191
|
|
19278
19543
|
},
|
|
19279
|
-
"name": "
|
|
19544
|
+
"name": "clientSideEncryptionKey",
|
|
19280
19545
|
"optional": true,
|
|
19281
19546
|
"type": {
|
|
19282
|
-
"fqn": "aws-cdk-lib.aws_kms.
|
|
19547
|
+
"fqn": "aws-cdk-lib.interfaces.aws_kms.IKeyRef"
|
|
19283
19548
|
}
|
|
19284
19549
|
},
|
|
19285
19550
|
{
|
|
@@ -19290,7 +19555,7 @@
|
|
|
19290
19555
|
"immutable": true,
|
|
19291
19556
|
"locationInModule": {
|
|
19292
19557
|
"filename": "lib/s3-table.ts",
|
|
19293
|
-
"line":
|
|
19558
|
+
"line": 196
|
|
19294
19559
|
},
|
|
19295
19560
|
"name": "partitionIndexes",
|
|
19296
19561
|
"optional": true,
|
|
@@ -19307,6 +19572,92 @@
|
|
|
19307
19572
|
],
|
|
19308
19573
|
"symbolId": "lib/s3-table:S3Table"
|
|
19309
19574
|
},
|
|
19575
|
+
"@aws-cdk/aws-glue-alpha.S3TableEncryption": {
|
|
19576
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
19577
|
+
"docs": {
|
|
19578
|
+
"remarks": "Applies only when the table manages its own bucket (via\n`S3TableStorage.managedBucket`). An existing bucket keeps whatever encryption\nit was created with.",
|
|
19579
|
+
"stability": "experimental",
|
|
19580
|
+
"summary": "Server-side encryption for the S3 bucket that a managed `S3Table` creates.",
|
|
19581
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.s3Managed()),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});",
|
|
19582
|
+
"custom": {
|
|
19583
|
+
"exampleMetadata": "infused"
|
|
19584
|
+
}
|
|
19585
|
+
},
|
|
19586
|
+
"fqn": "@aws-cdk/aws-glue-alpha.S3TableEncryption",
|
|
19587
|
+
"kind": "class",
|
|
19588
|
+
"locationInModule": {
|
|
19589
|
+
"filename": "lib/s3-table.ts",
|
|
19590
|
+
"line": 21
|
|
19591
|
+
},
|
|
19592
|
+
"methods": [
|
|
19593
|
+
{
|
|
19594
|
+
"docs": {
|
|
19595
|
+
"stability": "experimental",
|
|
19596
|
+
"summary": "Server-side encryption (SSE-KMS) with an AWS KMS key managed by the account owner."
|
|
19597
|
+
},
|
|
19598
|
+
"locationInModule": {
|
|
19599
|
+
"filename": "lib/s3-table.ts",
|
|
19600
|
+
"line": 34
|
|
19601
|
+
},
|
|
19602
|
+
"name": "kms",
|
|
19603
|
+
"parameters": [
|
|
19604
|
+
{
|
|
19605
|
+
"docs": {
|
|
19606
|
+
"remarks": "A key is created if one is not provided.",
|
|
19607
|
+
"summary": "the KMS key used to encrypt the data."
|
|
19608
|
+
},
|
|
19609
|
+
"name": "key",
|
|
19610
|
+
"optional": true,
|
|
19611
|
+
"type": {
|
|
19612
|
+
"fqn": "aws-cdk-lib.aws_kms.IKey"
|
|
19613
|
+
}
|
|
19614
|
+
}
|
|
19615
|
+
],
|
|
19616
|
+
"returns": {
|
|
19617
|
+
"type": {
|
|
19618
|
+
"fqn": "@aws-cdk/aws-glue-alpha.S3TableEncryption"
|
|
19619
|
+
}
|
|
19620
|
+
},
|
|
19621
|
+
"static": true
|
|
19622
|
+
},
|
|
19623
|
+
{
|
|
19624
|
+
"docs": {
|
|
19625
|
+
"stability": "experimental",
|
|
19626
|
+
"summary": "Server-side encryption (SSE-KMS) with an AWS KMS key managed by the KMS service."
|
|
19627
|
+
},
|
|
19628
|
+
"locationInModule": {
|
|
19629
|
+
"filename": "lib/s3-table.ts",
|
|
19630
|
+
"line": 41
|
|
19631
|
+
},
|
|
19632
|
+
"name": "kmsManaged",
|
|
19633
|
+
"returns": {
|
|
19634
|
+
"type": {
|
|
19635
|
+
"fqn": "@aws-cdk/aws-glue-alpha.S3TableEncryption"
|
|
19636
|
+
}
|
|
19637
|
+
},
|
|
19638
|
+
"static": true
|
|
19639
|
+
},
|
|
19640
|
+
{
|
|
19641
|
+
"docs": {
|
|
19642
|
+
"stability": "experimental",
|
|
19643
|
+
"summary": "Server-side encryption (SSE-S3) with an Amazon S3-managed key."
|
|
19644
|
+
},
|
|
19645
|
+
"locationInModule": {
|
|
19646
|
+
"filename": "lib/s3-table.ts",
|
|
19647
|
+
"line": 25
|
|
19648
|
+
},
|
|
19649
|
+
"name": "s3Managed",
|
|
19650
|
+
"returns": {
|
|
19651
|
+
"type": {
|
|
19652
|
+
"fqn": "@aws-cdk/aws-glue-alpha.S3TableEncryption"
|
|
19653
|
+
}
|
|
19654
|
+
},
|
|
19655
|
+
"static": true
|
|
19656
|
+
}
|
|
19657
|
+
],
|
|
19658
|
+
"name": "S3TableEncryption",
|
|
19659
|
+
"symbolId": "lib/s3-table:S3TableEncryption"
|
|
19660
|
+
},
|
|
19310
19661
|
"@aws-cdk/aws-glue-alpha.S3TableProps": {
|
|
19311
19662
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
19312
19663
|
"datatype": true,
|
|
@@ -19324,98 +19675,160 @@
|
|
|
19324
19675
|
"kind": "interface",
|
|
19325
19676
|
"locationInModule": {
|
|
19326
19677
|
"filename": "lib/s3-table.ts",
|
|
19327
|
-
"line":
|
|
19678
|
+
"line": 133
|
|
19328
19679
|
},
|
|
19329
19680
|
"name": "S3TableProps",
|
|
19330
19681
|
"properties": [
|
|
19331
19682
|
{
|
|
19332
19683
|
"abstract": true,
|
|
19333
19684
|
"docs": {
|
|
19334
|
-
"default": "
|
|
19335
|
-
"
|
|
19336
|
-
"summary": "S3 bucket in which to store data."
|
|
19337
|
-
},
|
|
19338
|
-
"immutable": true,
|
|
19339
|
-
"locationInModule": {
|
|
19340
|
-
"filename": "lib/s3-table.ts",
|
|
19341
|
-
"line": 53
|
|
19342
|
-
},
|
|
19343
|
-
"name": "bucket",
|
|
19344
|
-
"optional": true,
|
|
19345
|
-
"type": {
|
|
19346
|
-
"fqn": "aws-cdk-lib.aws_s3.IBucket"
|
|
19347
|
-
}
|
|
19348
|
-
},
|
|
19349
|
-
{
|
|
19350
|
-
"abstract": true,
|
|
19351
|
-
"docs": {
|
|
19352
|
-
"default": "BucketEncryption.S3_MANAGED",
|
|
19353
|
-
"remarks": "You can only provide this option if you are not explicitly passing in a bucket.\n\nIf you choose `SSE-KMS`, you *can* provide an un-managed KMS key with `encryptionKey`.\nIf you choose `CSE-KMS`, you *may* provide an un-managed KMS key with `encryptionKey`;\none is created automatically if omitted.",
|
|
19685
|
+
"default": "- no client-side encryption",
|
|
19686
|
+
"remarks": "Independent of the bucket's server-side encryption, and valid whether the\nbucket is managed or provided.",
|
|
19354
19687
|
"stability": "experimental",
|
|
19355
|
-
"summary": "
|
|
19688
|
+
"summary": "Client-side encryption (CSE-KMS) for the table's data."
|
|
19356
19689
|
},
|
|
19357
19690
|
"immutable": true,
|
|
19358
19691
|
"locationInModule": {
|
|
19359
19692
|
"filename": "lib/s3-table.ts",
|
|
19360
|
-
"line":
|
|
19693
|
+
"line": 161
|
|
19361
19694
|
},
|
|
19362
|
-
"name": "
|
|
19695
|
+
"name": "clientSideEncryption",
|
|
19363
19696
|
"optional": true,
|
|
19364
19697
|
"type": {
|
|
19365
|
-
"fqn": "@aws-cdk/aws-glue-alpha.
|
|
19698
|
+
"fqn": "@aws-cdk/aws-glue-alpha.TableClientSideEncryption"
|
|
19366
19699
|
}
|
|
19367
19700
|
},
|
|
19368
19701
|
{
|
|
19369
19702
|
"abstract": true,
|
|
19370
19703
|
"docs": {
|
|
19371
|
-
"default": "
|
|
19372
|
-
"remarks": "
|
|
19704
|
+
"default": "- No prefix. The data will be stored under the root of the bucket.",
|
|
19705
|
+
"remarks": "When the table shares a bucket with other tables or consumers, set this so\nthat the `grant*` methods scope S3 access to this table's data. Without a\nprefix, those grants cover the entire bucket.",
|
|
19373
19706
|
"stability": "experimental",
|
|
19374
|
-
"summary": "
|
|
19707
|
+
"summary": "S3 prefix under which table objects are stored."
|
|
19375
19708
|
},
|
|
19376
19709
|
"immutable": true,
|
|
19377
19710
|
"locationInModule": {
|
|
19378
19711
|
"filename": "lib/s3-table.ts",
|
|
19379
|
-
"line":
|
|
19712
|
+
"line": 151
|
|
19380
19713
|
},
|
|
19381
|
-
"name": "
|
|
19714
|
+
"name": "s3Prefix",
|
|
19382
19715
|
"optional": true,
|
|
19383
19716
|
"type": {
|
|
19384
|
-
"
|
|
19717
|
+
"primitive": "string"
|
|
19385
19718
|
}
|
|
19386
19719
|
},
|
|
19387
19720
|
{
|
|
19388
19721
|
"abstract": true,
|
|
19389
19722
|
"docs": {
|
|
19390
|
-
"default": "-
|
|
19391
|
-
"remarks": "When the table shares a bucket with other tables or consumers, set this so\nthat the `grant*` methods scope S3 access to this table's data. Without a\nprefix, those grants cover the entire bucket.",
|
|
19723
|
+
"default": "- a managed bucket with S3-managed (SSE-S3) encryption",
|
|
19392
19724
|
"stability": "experimental",
|
|
19393
|
-
"summary": "
|
|
19725
|
+
"summary": "Where the table's data is stored: a bucket created and managed by the table, or an existing bucket you provide."
|
|
19394
19726
|
},
|
|
19395
19727
|
"immutable": true,
|
|
19396
19728
|
"locationInModule": {
|
|
19397
19729
|
"filename": "lib/s3-table.ts",
|
|
19398
|
-
"line":
|
|
19730
|
+
"line": 140
|
|
19399
19731
|
},
|
|
19400
|
-
"name": "
|
|
19732
|
+
"name": "storage",
|
|
19401
19733
|
"optional": true,
|
|
19402
19734
|
"type": {
|
|
19403
|
-
"
|
|
19735
|
+
"fqn": "@aws-cdk/aws-glue-alpha.S3TableStorage"
|
|
19404
19736
|
}
|
|
19405
19737
|
}
|
|
19406
19738
|
],
|
|
19407
19739
|
"symbolId": "lib/s3-table:S3TableProps"
|
|
19408
19740
|
},
|
|
19409
|
-
"@aws-cdk/aws-glue-alpha.
|
|
19741
|
+
"@aws-cdk/aws-glue-alpha.S3TableStorage": {
|
|
19410
19742
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
19411
|
-
"base": "@aws-cdk/aws-glue-alpha.SparkJob",
|
|
19412
19743
|
"docs": {
|
|
19413
|
-
"remarks": "
|
|
19744
|
+
"remarks": "The two paths are mutually exclusive: a managed bucket may specify its\nserver-side encryption, while an existing bucket keeps its own encryption — so\nan encryption choice can never be paired with a bring-your-own bucket.",
|
|
19414
19745
|
"stability": "experimental",
|
|
19415
|
-
"summary": "
|
|
19416
|
-
"example": "
|
|
19746
|
+
"summary": "Where an `S3Table` stores its data.",
|
|
19747
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.s3Managed()),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});",
|
|
19417
19748
|
"custom": {
|
|
19418
|
-
"exampleMetadata": "
|
|
19749
|
+
"exampleMetadata": "infused"
|
|
19750
|
+
}
|
|
19751
|
+
},
|
|
19752
|
+
"fqn": "@aws-cdk/aws-glue-alpha.S3TableStorage",
|
|
19753
|
+
"kind": "class",
|
|
19754
|
+
"locationInModule": {
|
|
19755
|
+
"filename": "lib/s3-table.ts",
|
|
19756
|
+
"line": 67
|
|
19757
|
+
},
|
|
19758
|
+
"methods": [
|
|
19759
|
+
{
|
|
19760
|
+
"docs": {
|
|
19761
|
+
"remarks": "The bucket can be one you don't own, imported with\n`Bucket.fromBucketArn()` or `Bucket.fromBucketAttributes()`. If that bucket\nis KMS-encrypted, import it with `Bucket.fromBucketAttributes()` and supply\nthe `encryptionKey` attribute. Otherwise, CDK has no reference to the key,\nwhich means that `S3Table.grantRead()`/`grantWrite()` will correctly grant\nS3 access but silently skip the KMS permissions on the key. As a consequence,\nat runtime, reads and writes will fail with access denied on the key.",
|
|
19762
|
+
"stability": "experimental",
|
|
19763
|
+
"summary": "Store the table's data in an existing bucket. CDK does not manage the bucket's encryption."
|
|
19764
|
+
},
|
|
19765
|
+
"locationInModule": {
|
|
19766
|
+
"filename": "lib/s3-table.ts",
|
|
19767
|
+
"line": 92
|
|
19768
|
+
},
|
|
19769
|
+
"name": "fromBucket",
|
|
19770
|
+
"parameters": [
|
|
19771
|
+
{
|
|
19772
|
+
"docs": {
|
|
19773
|
+
"summary": "the bucket that holds the table's data."
|
|
19774
|
+
},
|
|
19775
|
+
"name": "bucket",
|
|
19776
|
+
"type": {
|
|
19777
|
+
"fqn": "aws-cdk-lib.aws_s3.IBucket"
|
|
19778
|
+
}
|
|
19779
|
+
}
|
|
19780
|
+
],
|
|
19781
|
+
"returns": {
|
|
19782
|
+
"type": {
|
|
19783
|
+
"fqn": "@aws-cdk/aws-glue-alpha.S3TableStorage"
|
|
19784
|
+
}
|
|
19785
|
+
},
|
|
19786
|
+
"static": true
|
|
19787
|
+
},
|
|
19788
|
+
{
|
|
19789
|
+
"docs": {
|
|
19790
|
+
"default": "- S3-managed (SSE-S3) encryption",
|
|
19791
|
+
"stability": "experimental",
|
|
19792
|
+
"summary": "Store the table's data in a bucket created and managed by the table."
|
|
19793
|
+
},
|
|
19794
|
+
"locationInModule": {
|
|
19795
|
+
"filename": "lib/s3-table.ts",
|
|
19796
|
+
"line": 74
|
|
19797
|
+
},
|
|
19798
|
+
"name": "managedBucket",
|
|
19799
|
+
"parameters": [
|
|
19800
|
+
{
|
|
19801
|
+
"docs": {
|
|
19802
|
+
"summary": "the server-side encryption for the created bucket."
|
|
19803
|
+
},
|
|
19804
|
+
"name": "encryption",
|
|
19805
|
+
"optional": true,
|
|
19806
|
+
"type": {
|
|
19807
|
+
"fqn": "@aws-cdk/aws-glue-alpha.S3TableEncryption"
|
|
19808
|
+
}
|
|
19809
|
+
}
|
|
19810
|
+
],
|
|
19811
|
+
"returns": {
|
|
19812
|
+
"type": {
|
|
19813
|
+
"fqn": "@aws-cdk/aws-glue-alpha.S3TableStorage"
|
|
19814
|
+
}
|
|
19815
|
+
},
|
|
19816
|
+
"static": true
|
|
19817
|
+
}
|
|
19818
|
+
],
|
|
19819
|
+
"name": "S3TableStorage",
|
|
19820
|
+
"symbolId": "lib/s3-table:S3TableStorage"
|
|
19821
|
+
},
|
|
19822
|
+
"@aws-cdk/aws-glue-alpha.ScalaSparkEtlJob": {
|
|
19823
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
19824
|
+
"base": "@aws-cdk/aws-glue-alpha.SparkJob",
|
|
19825
|
+
"docs": {
|
|
19826
|
+
"remarks": "ETL jobs support pySpark and Scala languages, for which there are separate\nbut similar constructors. ETL jobs default to the G1 worker type, but you\ncan override this default with other supported worker type values\n(G1, G2, G4 and G8). ETL jobs defaults to Glue version 4.0, which you can\noverride to 3.0. The following ETL features are enabled by default:\n--enable-metrics, --enable-continuous-cloudwatch-log. The Spark UI\n(--enable-spark-ui) is off by default; enable it by setting the `sparkUI` prop.\nYou can find more details about version, worker type and other features\nin Glue's public documentation.",
|
|
19827
|
+
"stability": "experimental",
|
|
19828
|
+
"summary": "Spark ETL Jobs class.",
|
|
19829
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_iam as iam } from 'aws-cdk-lib';\nimport { aws_logs as logs } from 'aws-cdk-lib';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\ndeclare const code: glue_alpha.Code;\ndeclare const connection: glue_alpha.Connection;\ndeclare const logGroup: logs.LogGroup;\ndeclare const role: iam.Role;\ndeclare const securityConfiguration: glue_alpha.SecurityConfiguration;\nconst scalaSparkEtlJob = new glue_alpha.ScalaSparkEtlJob(this, 'MyScalaSparkEtlJob', {\n className: 'className',\n role: role,\n script: code,\n\n // the properties below are optional\n connections: [connection],\n continuousLogging: {\n enabled: false,\n\n // the properties below are optional\n conversionPattern: 'conversionPattern',\n logGroup: logGroup,\n logStreamPrefix: 'logStreamPrefix',\n quiet: false,\n },\n defaultArguments: {\n defaultArgumentsKey: 'defaultArguments',\n },\n description: 'description',\n enableMetrics: false,\n enableObservabilityMetrics: false,\n extraFiles: [code],\n extraJars: [code],\n extraJarsFirst: false,\n glueVersion: glue_alpha.GlueVersion.V0_9,\n jobName: 'jobName',\n jobRunQueuingEnabled: false,\n maxConcurrentRuns: 123,\n maxRetries: 123,\n notifyDelayAfter: cdk.Duration.minutes(30),\n securityConfiguration: securityConfiguration,\n sparkUI: {\n bucket: bucket,\n prefix: 'prefix',\n },\n tags: {\n tagsKey: 'tags',\n },\n timeout: cdk.Duration.minutes(30),\n workerConfiguration: {\n numberOfWorkers: 123,\n workerType: glue_alpha.WorkerType.STANDARD,\n },\n});",
|
|
19830
|
+
"custom": {
|
|
19831
|
+
"exampleMetadata": "fixture=_generated"
|
|
19419
19832
|
}
|
|
19420
19833
|
},
|
|
19421
19834
|
"fqn": "@aws-cdk/aws-glue-alpha.ScalaSparkEtlJob",
|
|
@@ -19426,7 +19839,7 @@
|
|
|
19426
19839
|
},
|
|
19427
19840
|
"locationInModule": {
|
|
19428
19841
|
"filename": "lib/jobs/scala-spark-etl-job.ts",
|
|
19429
|
-
"line":
|
|
19842
|
+
"line": 90
|
|
19430
19843
|
},
|
|
19431
19844
|
"parameters": [
|
|
19432
19845
|
{
|
|
@@ -19452,7 +19865,7 @@
|
|
|
19452
19865
|
"kind": "class",
|
|
19453
19866
|
"locationInModule": {
|
|
19454
19867
|
"filename": "lib/jobs/scala-spark-etl-job.ts",
|
|
19455
|
-
"line":
|
|
19868
|
+
"line": 81
|
|
19456
19869
|
},
|
|
19457
19870
|
"name": "ScalaSparkEtlJob",
|
|
19458
19871
|
"properties": [
|
|
@@ -19465,7 +19878,7 @@
|
|
|
19465
19878
|
"immutable": true,
|
|
19466
19879
|
"locationInModule": {
|
|
19467
19880
|
"filename": "lib/jobs/scala-spark-etl-job.ts",
|
|
19468
|
-
"line":
|
|
19881
|
+
"line": 84
|
|
19469
19882
|
},
|
|
19470
19883
|
"name": "PROPERTY_INJECTION_ID",
|
|
19471
19884
|
"static": true,
|
|
@@ -19481,7 +19894,7 @@
|
|
|
19481
19894
|
"immutable": true,
|
|
19482
19895
|
"locationInModule": {
|
|
19483
19896
|
"filename": "lib/jobs/scala-spark-etl-job.ts",
|
|
19484
|
-
"line":
|
|
19897
|
+
"line": 124
|
|
19485
19898
|
},
|
|
19486
19899
|
"name": "jobArn",
|
|
19487
19900
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -19497,7 +19910,7 @@
|
|
|
19497
19910
|
"immutable": true,
|
|
19498
19911
|
"locationInModule": {
|
|
19499
19912
|
"filename": "lib/jobs/scala-spark-etl-job.ts",
|
|
19500
|
-
"line":
|
|
19913
|
+
"line": 129
|
|
19501
19914
|
},
|
|
19502
19915
|
"name": "jobName",
|
|
19503
19916
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -19657,9 +20070,9 @@
|
|
|
19657
20070
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
19658
20071
|
"base": "@aws-cdk/aws-glue-alpha.SparkJob",
|
|
19659
20072
|
"docs": {
|
|
19660
|
-
"remarks": "
|
|
20073
|
+
"remarks": "Flex jobs support Python and Scala languages.\nThe flexible execution class is appropriate for non-urgent jobs such as\npre-production jobs, testing, and one-time data loads.\nFlexible job runs are supported for jobs using AWS Glue version 3.0 or later and `G_1X` or\n`G_2X` worker types but will default to the latest version of Glue (currently Glue 5.0).\n\nSimilar to ETL, we’ll enable these features: --enable-metrics,\n--enable-continuous-cloudwatch-log. The Spark UI (--enable-spark-ui) is off by\ndefault; enable it by setting the `sparkUI` prop.",
|
|
19661
20074
|
"stability": "experimental",
|
|
19662
|
-
"summary": "Spark ETL Jobs class.",
|
|
20075
|
+
"summary": "Scala Spark Flex ETL Jobs class.",
|
|
19663
20076
|
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_iam as iam } from 'aws-cdk-lib';\nimport { aws_logs as logs } from 'aws-cdk-lib';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\ndeclare const code: glue_alpha.Code;\ndeclare const connection: glue_alpha.Connection;\ndeclare const logGroup: logs.LogGroup;\ndeclare const role: iam.Role;\ndeclare const securityConfiguration: glue_alpha.SecurityConfiguration;\nconst scalaSparkFlexEtlJob = new glue_alpha.ScalaSparkFlexEtlJob(this, 'MyScalaSparkFlexEtlJob', {\n className: 'className',\n role: role,\n script: code,\n\n // the properties below are optional\n connections: [connection],\n continuousLogging: {\n enabled: false,\n\n // the properties below are optional\n conversionPattern: 'conversionPattern',\n logGroup: logGroup,\n logStreamPrefix: 'logStreamPrefix',\n quiet: false,\n },\n defaultArguments: {\n defaultArgumentsKey: 'defaultArguments',\n },\n description: 'description',\n enableMetrics: false,\n enableObservabilityMetrics: false,\n extraFiles: [code],\n extraJars: [code],\n extraJarsFirst: false,\n glueVersion: glue_alpha.GlueVersion.V0_9,\n jobName: 'jobName',\n maxConcurrentRuns: 123,\n maxRetries: 123,\n notifyDelayAfter: cdk.Duration.minutes(30),\n securityConfiguration: securityConfiguration,\n sparkUI: {\n bucket: bucket,\n prefix: 'prefix',\n },\n tags: {\n tagsKey: 'tags',\n },\n timeout: cdk.Duration.minutes(30),\n workerConfiguration: {\n numberOfWorkers: 123,\n workerType: glue_alpha.WorkerType.STANDARD,\n },\n});",
|
|
19664
20077
|
"custom": {
|
|
19665
20078
|
"exampleMetadata": "fixture=_generated"
|
|
@@ -19673,7 +20086,7 @@
|
|
|
19673
20086
|
},
|
|
19674
20087
|
"locationInModule": {
|
|
19675
20088
|
"filename": "lib/jobs/scala-spark-flex-etl-job.ts",
|
|
19676
|
-
"line":
|
|
20089
|
+
"line": 78
|
|
19677
20090
|
},
|
|
19678
20091
|
"parameters": [
|
|
19679
20092
|
{
|
|
@@ -19699,7 +20112,7 @@
|
|
|
19699
20112
|
"kind": "class",
|
|
19700
20113
|
"locationInModule": {
|
|
19701
20114
|
"filename": "lib/jobs/scala-spark-flex-etl-job.ts",
|
|
19702
|
-
"line":
|
|
20115
|
+
"line": 69
|
|
19703
20116
|
},
|
|
19704
20117
|
"name": "ScalaSparkFlexEtlJob",
|
|
19705
20118
|
"properties": [
|
|
@@ -19712,7 +20125,7 @@
|
|
|
19712
20125
|
"immutable": true,
|
|
19713
20126
|
"locationInModule": {
|
|
19714
20127
|
"filename": "lib/jobs/scala-spark-flex-etl-job.ts",
|
|
19715
|
-
"line":
|
|
20128
|
+
"line": 72
|
|
19716
20129
|
},
|
|
19717
20130
|
"name": "PROPERTY_INJECTION_ID",
|
|
19718
20131
|
"static": true,
|
|
@@ -19728,7 +20141,7 @@
|
|
|
19728
20141
|
"immutable": true,
|
|
19729
20142
|
"locationInModule": {
|
|
19730
20143
|
"filename": "lib/jobs/scala-spark-flex-etl-job.ts",
|
|
19731
|
-
"line":
|
|
20144
|
+
"line": 113
|
|
19732
20145
|
},
|
|
19733
20146
|
"name": "jobArn",
|
|
19734
20147
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -19744,7 +20157,7 @@
|
|
|
19744
20157
|
"immutable": true,
|
|
19745
20158
|
"locationInModule": {
|
|
19746
20159
|
"filename": "lib/jobs/scala-spark-flex-etl-job.ts",
|
|
19747
|
-
"line":
|
|
20160
|
+
"line": 118
|
|
19748
20161
|
},
|
|
19749
20162
|
"name": "jobName",
|
|
19750
20163
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -19759,9 +20172,8 @@
|
|
|
19759
20172
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
19760
20173
|
"datatype": true,
|
|
19761
20174
|
"docs": {
|
|
19762
|
-
"remarks": "Flex jobs supports Python and Scala language.\nThe flexible execution class is appropriate for non-urgent jobs such as\npre-production jobs, testing, and one-time data loads.\nFlexible job runs are supported for jobs using AWS Glue version 3.0 or later and G.1X or\nG.2X worker types but will default to the latest version of Glue (currently Glue 3.0.)\n\nSimilar to ETL, we’ll enable these features: —enable-metrics, —enable-spark-ui,\n—enable-continuous-cloudwatch-log",
|
|
19763
20175
|
"stability": "experimental",
|
|
19764
|
-
"summary": "
|
|
20176
|
+
"summary": "Properties for a `ScalaSparkFlexEtlJob`.",
|
|
19765
20177
|
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_iam as iam } from 'aws-cdk-lib';\nimport { aws_logs as logs } from 'aws-cdk-lib';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\ndeclare const code: glue_alpha.Code;\ndeclare const connection: glue_alpha.Connection;\ndeclare const logGroup: logs.LogGroup;\ndeclare const role: iam.Role;\ndeclare const securityConfiguration: glue_alpha.SecurityConfiguration;\nconst scalaSparkFlexEtlJobProps: glue_alpha.ScalaSparkFlexEtlJobProps = {\n className: 'className',\n role: role,\n script: code,\n\n // the properties below are optional\n connections: [connection],\n continuousLogging: {\n enabled: false,\n\n // the properties below are optional\n conversionPattern: 'conversionPattern',\n logGroup: logGroup,\n logStreamPrefix: 'logStreamPrefix',\n quiet: false,\n },\n defaultArguments: {\n defaultArgumentsKey: 'defaultArguments',\n },\n description: 'description',\n enableMetrics: false,\n enableObservabilityMetrics: false,\n extraFiles: [code],\n extraJars: [code],\n extraJarsFirst: false,\n glueVersion: glue_alpha.GlueVersion.V0_9,\n jobName: 'jobName',\n maxConcurrentRuns: 123,\n maxRetries: 123,\n notifyDelayAfter: cdk.Duration.minutes(30),\n securityConfiguration: securityConfiguration,\n sparkUI: {\n bucket: bucket,\n prefix: 'prefix',\n },\n tags: {\n tagsKey: 'tags',\n },\n timeout: cdk.Duration.minutes(30),\n workerConfiguration: {\n numberOfWorkers: 123,\n workerType: glue_alpha.WorkerType.STANDARD,\n },\n};",
|
|
19766
20178
|
"custom": {
|
|
19767
20179
|
"exampleMetadata": "fixture=_generated"
|
|
@@ -19774,7 +20186,7 @@
|
|
|
19774
20186
|
"kind": "interface",
|
|
19775
20187
|
"locationInModule": {
|
|
19776
20188
|
"filename": "lib/jobs/scala-spark-flex-etl-job.ts",
|
|
19777
|
-
"line":
|
|
20189
|
+
"line": 15
|
|
19778
20190
|
},
|
|
19779
20191
|
"name": "ScalaSparkFlexEtlJobProps",
|
|
19780
20192
|
"properties": [
|
|
@@ -19788,7 +20200,7 @@
|
|
|
19788
20200
|
"immutable": true,
|
|
19789
20201
|
"locationInModule": {
|
|
19790
20202
|
"filename": "lib/jobs/scala-spark-flex-etl-job.ts",
|
|
19791
|
-
"line":
|
|
20203
|
+
"line": 28
|
|
19792
20204
|
},
|
|
19793
20205
|
"name": "className",
|
|
19794
20206
|
"type": {
|
|
@@ -19806,7 +20218,7 @@
|
|
|
19806
20218
|
"immutable": true,
|
|
19807
20219
|
"locationInModule": {
|
|
19808
20220
|
"filename": "lib/jobs/scala-spark-flex-etl-job.ts",
|
|
19809
|
-
"line":
|
|
20221
|
+
"line": 37
|
|
19810
20222
|
},
|
|
19811
20223
|
"name": "extraFiles",
|
|
19812
20224
|
"optional": true,
|
|
@@ -19829,7 +20241,7 @@
|
|
|
19829
20241
|
"immutable": true,
|
|
19830
20242
|
"locationInModule": {
|
|
19831
20243
|
"filename": "lib/jobs/scala-spark-flex-etl-job.ts",
|
|
19832
|
-
"line":
|
|
20244
|
+
"line": 44
|
|
19833
20245
|
},
|
|
19834
20246
|
"name": "extraJars",
|
|
19835
20247
|
"optional": true,
|
|
@@ -19853,7 +20265,7 @@
|
|
|
19853
20265
|
"immutable": true,
|
|
19854
20266
|
"locationInModule": {
|
|
19855
20267
|
"filename": "lib/jobs/scala-spark-flex-etl-job.ts",
|
|
19856
|
-
"line":
|
|
20268
|
+
"line": 53
|
|
19857
20269
|
},
|
|
19858
20270
|
"name": "extraJarsFirst",
|
|
19859
20271
|
"optional": true,
|
|
@@ -19872,7 +20284,7 @@
|
|
|
19872
20284
|
"immutable": true,
|
|
19873
20285
|
"locationInModule": {
|
|
19874
20286
|
"filename": "lib/jobs/scala-spark-flex-etl-job.ts",
|
|
19875
|
-
"line":
|
|
20287
|
+
"line": 21
|
|
19876
20288
|
},
|
|
19877
20289
|
"name": "notifyDelayAfter",
|
|
19878
20290
|
"optional": true,
|
|
@@ -19887,7 +20299,7 @@
|
|
|
19887
20299
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
19888
20300
|
"base": "@aws-cdk/aws-glue-alpha.SparkJob",
|
|
19889
20301
|
"docs": {
|
|
19890
|
-
"remarks": "A Streaming job is similar to an ETL job, except that it performs ETL on data streams\nusing the Apache Spark Structured Streaming framework.\nThese jobs will default to use Python 3.9.\n\nSimilar to ETL jobs, streaming job supports Scala and Python languages. Similar to ETL,\nit supports G1 and G2 worker type and 2.0, 3.0 and 4.0 version. We’ll default to
|
|
20302
|
+
"remarks": "A Streaming job is similar to an ETL job, except that it performs ETL on data streams\nusing the Apache Spark Structured Streaming framework.\nThese jobs will default to use Python 3.9.\n\nSimilar to ETL jobs, streaming job supports Scala and Python languages. Similar to ETL,\nit supports G1 and G2 worker type and 2.0, 3.0 and 4.0 version. We’ll default to G1 worker\nand 4.0 version for streaming jobs which developers can override.\nWe will enable --enable-metrics, --enable-continuous-cloudwatch-log. The Spark UI\n(--enable-spark-ui) is off by default; enable it by setting the `sparkUI` prop.",
|
|
19891
20303
|
"stability": "experimental",
|
|
19892
20304
|
"summary": "Scala Streaming Jobs class.",
|
|
19893
20305
|
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_iam as iam } from 'aws-cdk-lib';\nimport { aws_logs as logs } from 'aws-cdk-lib';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\ndeclare const code: glue_alpha.Code;\ndeclare const connection: glue_alpha.Connection;\ndeclare const logGroup: logs.LogGroup;\ndeclare const role: iam.Role;\ndeclare const securityConfiguration: glue_alpha.SecurityConfiguration;\nconst scalaSparkStreamingJob = new glue_alpha.ScalaSparkStreamingJob(this, 'MyScalaSparkStreamingJob', {\n className: 'className',\n role: role,\n script: code,\n\n // the properties below are optional\n connections: [connection],\n continuousLogging: {\n enabled: false,\n\n // the properties below are optional\n conversionPattern: 'conversionPattern',\n logGroup: logGroup,\n logStreamPrefix: 'logStreamPrefix',\n quiet: false,\n },\n defaultArguments: {\n defaultArgumentsKey: 'defaultArguments',\n },\n description: 'description',\n enableMetrics: false,\n enableObservabilityMetrics: false,\n extraFiles: [code],\n extraJars: [code],\n extraJarsFirst: false,\n glueVersion: glue_alpha.GlueVersion.V0_9,\n jobName: 'jobName',\n jobRunQueuingEnabled: false,\n maxConcurrentRuns: 123,\n maxRetries: 123,\n securityConfiguration: securityConfiguration,\n sparkUI: {\n bucket: bucket,\n prefix: 'prefix',\n },\n tags: {\n tagsKey: 'tags',\n },\n timeout: cdk.Duration.minutes(30),\n workerConfiguration: {\n numberOfWorkers: 123,\n workerType: glue_alpha.WorkerType.STANDARD,\n },\n});",
|
|
@@ -19903,7 +20315,7 @@
|
|
|
19903
20315
|
},
|
|
19904
20316
|
"locationInModule": {
|
|
19905
20317
|
"filename": "lib/jobs/scala-spark-streaming-job.ts",
|
|
19906
|
-
"line":
|
|
20318
|
+
"line": 82
|
|
19907
20319
|
},
|
|
19908
20320
|
"parameters": [
|
|
19909
20321
|
{
|
|
@@ -19929,7 +20341,7 @@
|
|
|
19929
20341
|
"kind": "class",
|
|
19930
20342
|
"locationInModule": {
|
|
19931
20343
|
"filename": "lib/jobs/scala-spark-streaming-job.ts",
|
|
19932
|
-
"line":
|
|
20344
|
+
"line": 73
|
|
19933
20345
|
},
|
|
19934
20346
|
"name": "ScalaSparkStreamingJob",
|
|
19935
20347
|
"properties": [
|
|
@@ -19942,7 +20354,7 @@
|
|
|
19942
20354
|
"immutable": true,
|
|
19943
20355
|
"locationInModule": {
|
|
19944
20356
|
"filename": "lib/jobs/scala-spark-streaming-job.ts",
|
|
19945
|
-
"line":
|
|
20357
|
+
"line": 76
|
|
19946
20358
|
},
|
|
19947
20359
|
"name": "PROPERTY_INJECTION_ID",
|
|
19948
20360
|
"static": true,
|
|
@@ -19958,7 +20370,7 @@
|
|
|
19958
20370
|
"immutable": true,
|
|
19959
20371
|
"locationInModule": {
|
|
19960
20372
|
"filename": "lib/jobs/scala-spark-streaming-job.ts",
|
|
19961
|
-
"line":
|
|
20373
|
+
"line": 115
|
|
19962
20374
|
},
|
|
19963
20375
|
"name": "jobArn",
|
|
19964
20376
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -19974,7 +20386,7 @@
|
|
|
19974
20386
|
"immutable": true,
|
|
19975
20387
|
"locationInModule": {
|
|
19976
20388
|
"filename": "lib/jobs/scala-spark-streaming-job.ts",
|
|
19977
|
-
"line":
|
|
20389
|
+
"line": 120
|
|
19978
20390
|
},
|
|
19979
20391
|
"name": "jobName",
|
|
19980
20392
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -20116,7 +20528,7 @@
|
|
|
20116
20528
|
"docs": {
|
|
20117
20529
|
"see": "https://docs.aws.amazon.com/athena/latest/ug/data-types.html",
|
|
20118
20530
|
"stability": "experimental",
|
|
20119
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n
|
|
20531
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: 'NOW-3YEARS',\n max: 'NOW',\n format: 'yyyy-MM-dd',\n }),\n },\n});",
|
|
20120
20532
|
"custom": {
|
|
20121
20533
|
"exampleMetadata": "infused"
|
|
20122
20534
|
}
|
|
@@ -20130,7 +20542,7 @@
|
|
|
20130
20542
|
"kind": "class",
|
|
20131
20543
|
"locationInModule": {
|
|
20132
20544
|
"filename": "lib/schema.ts",
|
|
20133
|
-
"line":
|
|
20545
|
+
"line": 62
|
|
20134
20546
|
},
|
|
20135
20547
|
"methods": [
|
|
20136
20548
|
{
|
|
@@ -20140,7 +20552,7 @@
|
|
|
20140
20552
|
},
|
|
20141
20553
|
"locationInModule": {
|
|
20142
20554
|
"filename": "lib/schema.ts",
|
|
20143
|
-
"line":
|
|
20555
|
+
"line": 158
|
|
20144
20556
|
},
|
|
20145
20557
|
"name": "array",
|
|
20146
20558
|
"parameters": [
|
|
@@ -20168,7 +20580,7 @@
|
|
|
20168
20580
|
},
|
|
20169
20581
|
"locationInModule": {
|
|
20170
20582
|
"filename": "lib/schema.ts",
|
|
20171
|
-
"line":
|
|
20583
|
+
"line": 128
|
|
20172
20584
|
},
|
|
20173
20585
|
"name": "char",
|
|
20174
20586
|
"parameters": [
|
|
@@ -20191,19 +20603,59 @@
|
|
|
20191
20603
|
},
|
|
20192
20604
|
{
|
|
20193
20605
|
"docs": {
|
|
20194
|
-
"remarks": "
|
|
20606
|
+
"remarks": "Escape hatch for column types the other `Schema` factories don't model. The\n`inputString` is emitted verbatim and is not validated.",
|
|
20607
|
+
"stability": "experimental",
|
|
20608
|
+
"summary": "Creates a custom type from a raw Glue input string."
|
|
20609
|
+
},
|
|
20610
|
+
"locationInModule": {
|
|
20611
|
+
"filename": "lib/schema.ts",
|
|
20612
|
+
"line": 195
|
|
20613
|
+
},
|
|
20614
|
+
"name": "custom",
|
|
20615
|
+
"parameters": [
|
|
20616
|
+
{
|
|
20617
|
+
"docs": {
|
|
20618
|
+
"summary": "the Glue input string for the type (for example `interval_day_to_second`)."
|
|
20619
|
+
},
|
|
20620
|
+
"name": "inputString",
|
|
20621
|
+
"type": {
|
|
20622
|
+
"primitive": "string"
|
|
20623
|
+
}
|
|
20624
|
+
},
|
|
20625
|
+
{
|
|
20626
|
+
"docs": {
|
|
20627
|
+
"remarks": "Defaults to true.",
|
|
20628
|
+
"summary": "whether the type is a primitive (non-nested) data type."
|
|
20629
|
+
},
|
|
20630
|
+
"name": "isPrimitive",
|
|
20631
|
+
"optional": true,
|
|
20632
|
+
"type": {
|
|
20633
|
+
"primitive": "boolean"
|
|
20634
|
+
}
|
|
20635
|
+
}
|
|
20636
|
+
],
|
|
20637
|
+
"returns": {
|
|
20638
|
+
"type": {
|
|
20639
|
+
"fqn": "@aws-cdk/aws-glue-alpha.Type"
|
|
20640
|
+
}
|
|
20641
|
+
},
|
|
20642
|
+
"static": true
|
|
20643
|
+
},
|
|
20644
|
+
{
|
|
20645
|
+
"docs": {
|
|
20646
|
+
"see": "https://docs.aws.amazon.com/athena/latest/ug/data-types.html",
|
|
20195
20647
|
"stability": "experimental",
|
|
20196
20648
|
"summary": "Creates a decimal type."
|
|
20197
20649
|
},
|
|
20198
20650
|
"locationInModule": {
|
|
20199
20651
|
"filename": "lib/schema.ts",
|
|
20200
|
-
"line":
|
|
20652
|
+
"line": 113
|
|
20201
20653
|
},
|
|
20202
20654
|
"name": "decimal",
|
|
20203
20655
|
"parameters": [
|
|
20204
20656
|
{
|
|
20205
20657
|
"docs": {
|
|
20206
|
-
"summary": "the total number of digits."
|
|
20658
|
+
"summary": "the total number of digits, between 1 and 38."
|
|
20207
20659
|
},
|
|
20208
20660
|
"name": "precision",
|
|
20209
20661
|
"type": {
|
|
@@ -20212,7 +20664,8 @@
|
|
|
20212
20664
|
},
|
|
20213
20665
|
{
|
|
20214
20666
|
"docs": {
|
|
20215
|
-
"
|
|
20667
|
+
"remarks": "the default is 0",
|
|
20668
|
+
"summary": "the number of digits in the fractional part, between 0 and 38;"
|
|
20216
20669
|
},
|
|
20217
20670
|
"name": "scale",
|
|
20218
20671
|
"optional": true,
|
|
@@ -20235,7 +20688,7 @@
|
|
|
20235
20688
|
},
|
|
20236
20689
|
"locationInModule": {
|
|
20237
20690
|
"filename": "lib/schema.ts",
|
|
20238
|
-
"line":
|
|
20691
|
+
"line": 168
|
|
20239
20692
|
},
|
|
20240
20693
|
"name": "map",
|
|
20241
20694
|
"parameters": [
|
|
@@ -20272,7 +20725,7 @@
|
|
|
20272
20725
|
},
|
|
20273
20726
|
"locationInModule": {
|
|
20274
20727
|
"filename": "lib/schema.ts",
|
|
20275
|
-
"line":
|
|
20728
|
+
"line": 180
|
|
20276
20729
|
},
|
|
20277
20730
|
"name": "struct",
|
|
20278
20731
|
"parameters": [
|
|
@@ -20305,7 +20758,7 @@
|
|
|
20305
20758
|
},
|
|
20306
20759
|
"locationInModule": {
|
|
20307
20760
|
"filename": "lib/schema.ts",
|
|
20308
|
-
"line":
|
|
20761
|
+
"line": 143
|
|
20309
20762
|
},
|
|
20310
20763
|
"name": "varchar",
|
|
20311
20764
|
"parameters": [
|
|
@@ -20338,7 +20791,7 @@
|
|
|
20338
20791
|
"immutable": true,
|
|
20339
20792
|
"locationInModule": {
|
|
20340
20793
|
"filename": "lib/schema.ts",
|
|
20341
|
-
"line":
|
|
20794
|
+
"line": 70
|
|
20342
20795
|
},
|
|
20343
20796
|
"name": "BIG_INT",
|
|
20344
20797
|
"static": true,
|
|
@@ -20354,7 +20807,7 @@
|
|
|
20354
20807
|
"immutable": true,
|
|
20355
20808
|
"locationInModule": {
|
|
20356
20809
|
"filename": "lib/schema.ts",
|
|
20357
|
-
"line":
|
|
20810
|
+
"line": 65
|
|
20358
20811
|
},
|
|
20359
20812
|
"name": "BINARY",
|
|
20360
20813
|
"static": true,
|
|
@@ -20370,7 +20823,7 @@
|
|
|
20370
20823
|
"immutable": true,
|
|
20371
20824
|
"locationInModule": {
|
|
20372
20825
|
"filename": "lib/schema.ts",
|
|
20373
|
-
"line":
|
|
20826
|
+
"line": 63
|
|
20374
20827
|
},
|
|
20375
20828
|
"name": "BOOLEAN",
|
|
20376
20829
|
"static": true,
|
|
@@ -20387,7 +20840,7 @@
|
|
|
20387
20840
|
"immutable": true,
|
|
20388
20841
|
"locationInModule": {
|
|
20389
20842
|
"filename": "lib/schema.ts",
|
|
20390
|
-
"line":
|
|
20843
|
+
"line": 94
|
|
20391
20844
|
},
|
|
20392
20845
|
"name": "DATE",
|
|
20393
20846
|
"static": true,
|
|
@@ -20403,7 +20856,7 @@
|
|
|
20403
20856
|
"immutable": true,
|
|
20404
20857
|
"locationInModule": {
|
|
20405
20858
|
"filename": "lib/schema.ts",
|
|
20406
|
-
"line":
|
|
20859
|
+
"line": 72
|
|
20407
20860
|
},
|
|
20408
20861
|
"name": "DOUBLE",
|
|
20409
20862
|
"static": true,
|
|
@@ -20419,7 +20872,7 @@
|
|
|
20419
20872
|
"immutable": true,
|
|
20420
20873
|
"locationInModule": {
|
|
20421
20874
|
"filename": "lib/schema.ts",
|
|
20422
|
-
"line":
|
|
20875
|
+
"line": 74
|
|
20423
20876
|
},
|
|
20424
20877
|
"name": "FLOAT",
|
|
20425
20878
|
"static": true,
|
|
@@ -20436,7 +20889,7 @@
|
|
|
20436
20889
|
"immutable": true,
|
|
20437
20890
|
"locationInModule": {
|
|
20438
20891
|
"filename": "lib/schema.ts",
|
|
20439
|
-
"line":
|
|
20892
|
+
"line": 79
|
|
20440
20893
|
},
|
|
20441
20894
|
"name": "INTEGER",
|
|
20442
20895
|
"static": true,
|
|
@@ -20470,7 +20923,7 @@
|
|
|
20470
20923
|
"immutable": true,
|
|
20471
20924
|
"locationInModule": {
|
|
20472
20925
|
"filename": "lib/schema.ts",
|
|
20473
|
-
"line":
|
|
20926
|
+
"line": 104
|
|
20474
20927
|
},
|
|
20475
20928
|
"name": "STRING",
|
|
20476
20929
|
"static": true,
|
|
@@ -20487,7 +20940,7 @@
|
|
|
20487
20940
|
"immutable": true,
|
|
20488
20941
|
"locationInModule": {
|
|
20489
20942
|
"filename": "lib/schema.ts",
|
|
20490
|
-
"line":
|
|
20943
|
+
"line": 99
|
|
20491
20944
|
},
|
|
20492
20945
|
"name": "TIMESTAMP",
|
|
20493
20946
|
"static": true,
|
|
@@ -20504,7 +20957,7 @@
|
|
|
20504
20957
|
"immutable": true,
|
|
20505
20958
|
"locationInModule": {
|
|
20506
20959
|
"filename": "lib/schema.ts",
|
|
20507
|
-
"line":
|
|
20960
|
+
"line": 89
|
|
20508
20961
|
},
|
|
20509
20962
|
"name": "TINY_INT",
|
|
20510
20963
|
"static": true,
|
|
@@ -21545,7 +21998,7 @@
|
|
|
21545
21998
|
},
|
|
21546
21999
|
"locationInModule": {
|
|
21547
22000
|
"filename": "lib/storage-parameter.ts",
|
|
21548
|
-
"line":
|
|
22001
|
+
"line": 434
|
|
21549
22002
|
},
|
|
21550
22003
|
"parameters": [
|
|
21551
22004
|
{
|
|
@@ -21566,7 +22019,7 @@
|
|
|
21566
22019
|
"kind": "class",
|
|
21567
22020
|
"locationInModule": {
|
|
21568
22021
|
"filename": "lib/storage-parameter.ts",
|
|
21569
|
-
"line":
|
|
22022
|
+
"line": 305
|
|
21570
22023
|
},
|
|
21571
22024
|
"methods": [
|
|
21572
22025
|
{
|
|
@@ -21577,7 +22030,7 @@
|
|
|
21577
22030
|
},
|
|
21578
22031
|
"locationInModule": {
|
|
21579
22032
|
"filename": "lib/storage-parameter.ts",
|
|
21580
|
-
"line":
|
|
22033
|
+
"line": 365
|
|
21581
22034
|
},
|
|
21582
22035
|
"name": "columnCountMismatchHandling",
|
|
21583
22036
|
"parameters": [
|
|
@@ -21603,7 +22056,7 @@
|
|
|
21603
22056
|
},
|
|
21604
22057
|
"locationInModule": {
|
|
21605
22058
|
"filename": "lib/storage-parameter.ts",
|
|
21606
|
-
"line":
|
|
22059
|
+
"line": 323
|
|
21607
22060
|
},
|
|
21608
22061
|
"name": "compressionType",
|
|
21609
22062
|
"parameters": [
|
|
@@ -21628,7 +22081,7 @@
|
|
|
21628
22081
|
},
|
|
21629
22082
|
"locationInModule": {
|
|
21630
22083
|
"filename": "lib/storage-parameter.ts",
|
|
21631
|
-
"line":
|
|
22084
|
+
"line": 430
|
|
21632
22085
|
},
|
|
21633
22086
|
"name": "custom",
|
|
21634
22087
|
"parameters": [
|
|
@@ -21647,7 +22100,7 @@
|
|
|
21647
22100
|
},
|
|
21648
22101
|
"name": "value",
|
|
21649
22102
|
"type": {
|
|
21650
|
-
"primitive": "
|
|
22103
|
+
"primitive": "string"
|
|
21651
22104
|
}
|
|
21652
22105
|
}
|
|
21653
22106
|
],
|
|
@@ -21665,7 +22118,7 @@
|
|
|
21665
22118
|
},
|
|
21666
22119
|
"locationInModule": {
|
|
21667
22120
|
"filename": "lib/storage-parameter.ts",
|
|
21668
|
-
"line":
|
|
22121
|
+
"line": 316
|
|
21669
22122
|
},
|
|
21670
22123
|
"name": "dataCleansingEnabled",
|
|
21671
22124
|
"parameters": [
|
|
@@ -21690,7 +22143,7 @@
|
|
|
21690
22143
|
},
|
|
21691
22144
|
"locationInModule": {
|
|
21692
22145
|
"filename": "lib/storage-parameter.ts",
|
|
21693
|
-
"line":
|
|
22146
|
+
"line": 330
|
|
21694
22147
|
},
|
|
21695
22148
|
"name": "invalidCharHandling",
|
|
21696
22149
|
"parameters": [
|
|
@@ -21715,7 +22168,7 @@
|
|
|
21715
22168
|
},
|
|
21716
22169
|
"locationInModule": {
|
|
21717
22170
|
"filename": "lib/storage-parameter.ts",
|
|
21718
|
-
"line":
|
|
22171
|
+
"line": 344
|
|
21719
22172
|
},
|
|
21720
22173
|
"name": "numericOverflowHandling",
|
|
21721
22174
|
"parameters": [
|
|
@@ -21741,7 +22194,7 @@
|
|
|
21741
22194
|
},
|
|
21742
22195
|
"locationInModule": {
|
|
21743
22196
|
"filename": "lib/storage-parameter.ts",
|
|
21744
|
-
"line":
|
|
22197
|
+
"line": 372
|
|
21745
22198
|
},
|
|
21746
22199
|
"name": "numRows",
|
|
21747
22200
|
"parameters": [
|
|
@@ -21768,7 +22221,7 @@
|
|
|
21768
22221
|
},
|
|
21769
22222
|
"locationInModule": {
|
|
21770
22223
|
"filename": "lib/storage-parameter.ts",
|
|
21771
|
-
"line":
|
|
22224
|
+
"line": 388
|
|
21772
22225
|
},
|
|
21773
22226
|
"name": "orcSchemaResolution",
|
|
21774
22227
|
"parameters": [
|
|
@@ -21793,7 +22246,7 @@
|
|
|
21793
22246
|
},
|
|
21794
22247
|
"locationInModule": {
|
|
21795
22248
|
"filename": "lib/storage-parameter.ts",
|
|
21796
|
-
"line":
|
|
22249
|
+
"line": 337
|
|
21797
22250
|
},
|
|
21798
22251
|
"name": "replacementChar",
|
|
21799
22252
|
"parameters": [
|
|
@@ -21818,7 +22271,7 @@
|
|
|
21818
22271
|
},
|
|
21819
22272
|
"locationInModule": {
|
|
21820
22273
|
"filename": "lib/storage-parameter.ts",
|
|
21821
|
-
"line":
|
|
22274
|
+
"line": 379
|
|
21822
22275
|
},
|
|
21823
22276
|
"name": "serializationNullFormat",
|
|
21824
22277
|
"parameters": [
|
|
@@ -21843,7 +22296,7 @@
|
|
|
21843
22296
|
},
|
|
21844
22297
|
"locationInModule": {
|
|
21845
22298
|
"filename": "lib/storage-parameter.ts",
|
|
21846
|
-
"line":
|
|
22299
|
+
"line": 309
|
|
21847
22300
|
},
|
|
21848
22301
|
"name": "skipHeaderLineCount",
|
|
21849
22302
|
"parameters": [
|
|
@@ -21869,7 +22322,7 @@
|
|
|
21869
22322
|
},
|
|
21870
22323
|
"locationInModule": {
|
|
21871
22324
|
"filename": "lib/storage-parameter.ts",
|
|
21872
|
-
"line":
|
|
22325
|
+
"line": 351
|
|
21873
22326
|
},
|
|
21874
22327
|
"name": "surplusBytesHandling",
|
|
21875
22328
|
"parameters": [
|
|
@@ -21895,7 +22348,7 @@
|
|
|
21895
22348
|
},
|
|
21896
22349
|
"locationInModule": {
|
|
21897
22350
|
"filename": "lib/storage-parameter.ts",
|
|
21898
|
-
"line":
|
|
22351
|
+
"line": 358
|
|
21899
22352
|
},
|
|
21900
22353
|
"name": "surplusCharHandling",
|
|
21901
22354
|
"parameters": [
|
|
@@ -21915,19 +22368,21 @@
|
|
|
21915
22368
|
},
|
|
21916
22369
|
{
|
|
21917
22370
|
"docs": {
|
|
22371
|
+
"remarks": "Redshift Spectrum accepts either the key's ARN or its bare key ID for the\n`write.kms.key.id` property, and encrypts the written objects with that key;\nthis renders the ARN. To use the S3 bucket's default KMS key instead, set the\nliteral value `auto` via `StorageParameter.custom('write.kms.key.id', 'auto')` —\nthis typed factory cannot express `auto`.",
|
|
22372
|
+
"see": "https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_TABLE.html",
|
|
21918
22373
|
"stability": "experimental",
|
|
21919
|
-
"summary": "
|
|
22374
|
+
"summary": "Enables server-side encryption (SSE-KMS) with the given AWS KMS key on the files Redshift Spectrum writes for this table (via `CREATE EXTERNAL TABLE AS` or `INSERT`)."
|
|
21920
22375
|
},
|
|
21921
22376
|
"locationInModule": {
|
|
21922
22377
|
"filename": "lib/storage-parameter.ts",
|
|
21923
|
-
"line":
|
|
22378
|
+
"line": 421
|
|
21924
22379
|
},
|
|
21925
22380
|
"name": "writeKmsKeyId",
|
|
21926
22381
|
"parameters": [
|
|
21927
22382
|
{
|
|
21928
|
-
"name": "
|
|
22383
|
+
"name": "key",
|
|
21929
22384
|
"type": {
|
|
21930
|
-
"
|
|
22385
|
+
"fqn": "aws-cdk-lib.interfaces.aws_kms.IKeyRef"
|
|
21931
22386
|
}
|
|
21932
22387
|
}
|
|
21933
22388
|
],
|
|
@@ -21946,7 +22401,7 @@
|
|
|
21946
22401
|
},
|
|
21947
22402
|
"locationInModule": {
|
|
21948
22403
|
"filename": "lib/storage-parameter.ts",
|
|
21949
|
-
"line":
|
|
22404
|
+
"line": 404
|
|
21950
22405
|
},
|
|
21951
22406
|
"name": "writeMaxFileSizeMb",
|
|
21952
22407
|
"parameters": [
|
|
@@ -21973,7 +22428,7 @@
|
|
|
21973
22428
|
},
|
|
21974
22429
|
"locationInModule": {
|
|
21975
22430
|
"filename": "lib/storage-parameter.ts",
|
|
21976
|
-
"line":
|
|
22431
|
+
"line": 397
|
|
21977
22432
|
},
|
|
21978
22433
|
"name": "writeParallel",
|
|
21979
22434
|
"parameters": [
|
|
@@ -22001,7 +22456,7 @@
|
|
|
22001
22456
|
"immutable": true,
|
|
22002
22457
|
"locationInModule": {
|
|
22003
22458
|
"filename": "lib/storage-parameter.ts",
|
|
22004
|
-
"line":
|
|
22459
|
+
"line": 434
|
|
22005
22460
|
},
|
|
22006
22461
|
"name": "key",
|
|
22007
22462
|
"type": {
|
|
@@ -22015,7 +22470,7 @@
|
|
|
22015
22470
|
"immutable": true,
|
|
22016
22471
|
"locationInModule": {
|
|
22017
22472
|
"filename": "lib/storage-parameter.ts",
|
|
22018
|
-
"line":
|
|
22473
|
+
"line": 434
|
|
22019
22474
|
},
|
|
22020
22475
|
"name": "value",
|
|
22021
22476
|
"type": {
|
|
@@ -22030,7 +22485,7 @@
|
|
|
22030
22485
|
"docs": {
|
|
22031
22486
|
"stability": "experimental",
|
|
22032
22487
|
"summary": "The storage parameter keys that are currently known, this list is not exhaustive and other keys may be used.",
|
|
22033
|
-
"example": " declare const glueDatabase: glue.IDatabase;\n const table = new glue.
|
|
22488
|
+
"example": " declare const glueDatabase: glue.IDatabase;\n const table = new glue.S3Table(this, 'Table', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('foo', 'bar'), // Will have no effect\n glue.StorageParameter.custom('separatorChar', ','), // Will describe the separator char used in the data\n glue.StorageParameter.custom(glue.StorageParameters.WRITE_PARALLEL, 'off'),\n ],\n // ...\n database: glueDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.CSV,\n });",
|
|
22034
22489
|
"custom": {
|
|
22035
22490
|
"exampleMetadata": "infused"
|
|
22036
22491
|
}
|
|
@@ -22039,7 +22494,7 @@
|
|
|
22039
22494
|
"kind": "enum",
|
|
22040
22495
|
"locationInModule": {
|
|
22041
22496
|
"filename": "lib/storage-parameter.ts",
|
|
22042
|
-
"line":
|
|
22497
|
+
"line": 217
|
|
22043
22498
|
},
|
|
22044
22499
|
"members": [
|
|
22045
22500
|
{
|
|
@@ -22171,7 +22626,7 @@
|
|
|
22171
22626
|
"kind": "enum",
|
|
22172
22627
|
"locationInModule": {
|
|
22173
22628
|
"filename": "lib/storage-parameter.ts",
|
|
22174
|
-
"line":
|
|
22629
|
+
"line": 94
|
|
22175
22630
|
},
|
|
22176
22631
|
"members": [
|
|
22177
22632
|
{
|
|
@@ -22225,7 +22680,7 @@
|
|
|
22225
22680
|
"kind": "enum",
|
|
22226
22681
|
"locationInModule": {
|
|
22227
22682
|
"filename": "lib/storage-parameter.ts",
|
|
22228
|
-
"line":
|
|
22683
|
+
"line": 126
|
|
22229
22684
|
},
|
|
22230
22685
|
"members": [
|
|
22231
22686
|
{
|
|
@@ -22267,76 +22722,6 @@
|
|
|
22267
22722
|
"name": "SurplusCharHandlingAction",
|
|
22268
22723
|
"symbolId": "lib/storage-parameter:SurplusCharHandlingAction"
|
|
22269
22724
|
},
|
|
22270
|
-
"@aws-cdk/aws-glue-alpha.Table": {
|
|
22271
|
-
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
22272
|
-
"base": "@aws-cdk/aws-glue-alpha.S3Table",
|
|
22273
|
-
"docs": {
|
|
22274
|
-
"deprecated": "Use {@link S3Table } instead.",
|
|
22275
|
-
"stability": "deprecated",
|
|
22276
|
-
"summary": "A Glue table.",
|
|
22277
|
-
"example": " declare const glueDatabase: glue.IDatabase;\n const table = new glue.Table(this, 'Table', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('foo', 'bar'), // Will have no effect\n glue.StorageParameter.custom('separatorChar', ','), // Will describe the separator char used in the data\n glue.StorageParameter.custom(glue.StorageParameters.WRITE_PARALLEL, 'off'),\n ],\n // ...\n database: glueDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.CSV,\n });",
|
|
22278
|
-
"custom": {
|
|
22279
|
-
"exampleMetadata": "infused"
|
|
22280
|
-
}
|
|
22281
|
-
},
|
|
22282
|
-
"fqn": "@aws-cdk/aws-glue-alpha.Table",
|
|
22283
|
-
"initializer": {
|
|
22284
|
-
"docs": {
|
|
22285
|
-
"stability": "experimental"
|
|
22286
|
-
},
|
|
22287
|
-
"locationInModule": {
|
|
22288
|
-
"filename": "lib/s3-table.ts",
|
|
22289
|
-
"line": 134
|
|
22290
|
-
},
|
|
22291
|
-
"parameters": [
|
|
22292
|
-
{
|
|
22293
|
-
"name": "scope",
|
|
22294
|
-
"type": {
|
|
22295
|
-
"fqn": "constructs.Construct"
|
|
22296
|
-
}
|
|
22297
|
-
},
|
|
22298
|
-
{
|
|
22299
|
-
"name": "id",
|
|
22300
|
-
"type": {
|
|
22301
|
-
"primitive": "string"
|
|
22302
|
-
}
|
|
22303
|
-
},
|
|
22304
|
-
{
|
|
22305
|
-
"name": "props",
|
|
22306
|
-
"type": {
|
|
22307
|
-
"fqn": "@aws-cdk/aws-glue-alpha.S3TableProps"
|
|
22308
|
-
}
|
|
22309
|
-
}
|
|
22310
|
-
]
|
|
22311
|
-
},
|
|
22312
|
-
"kind": "class",
|
|
22313
|
-
"locationInModule": {
|
|
22314
|
-
"filename": "lib/table-deprecated.ts",
|
|
22315
|
-
"line": 12
|
|
22316
|
-
},
|
|
22317
|
-
"name": "Table",
|
|
22318
|
-
"properties": [
|
|
22319
|
-
{
|
|
22320
|
-
"const": true,
|
|
22321
|
-
"docs": {
|
|
22322
|
-
"stability": "deprecated",
|
|
22323
|
-
"summary": "Uniquely identifies this class."
|
|
22324
|
-
},
|
|
22325
|
-
"immutable": true,
|
|
22326
|
-
"locationInModule": {
|
|
22327
|
-
"filename": "lib/table-deprecated.ts",
|
|
22328
|
-
"line": 15
|
|
22329
|
-
},
|
|
22330
|
-
"name": "PROPERTY_INJECTION_ID",
|
|
22331
|
-
"overrides": "@aws-cdk/aws-glue-alpha.S3Table",
|
|
22332
|
-
"static": true,
|
|
22333
|
-
"type": {
|
|
22334
|
-
"primitive": "string"
|
|
22335
|
-
}
|
|
22336
|
-
}
|
|
22337
|
-
],
|
|
22338
|
-
"symbolId": "lib/table-deprecated:Table"
|
|
22339
|
-
},
|
|
22340
22725
|
"@aws-cdk/aws-glue-alpha.TableAttributes": {
|
|
22341
22726
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
22342
22727
|
"datatype": true,
|
|
@@ -22945,7 +23330,7 @@
|
|
|
22945
23330
|
"datatype": true,
|
|
22946
23331
|
"docs": {
|
|
22947
23332
|
"stability": "experimental",
|
|
22948
|
-
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\n\ndeclare const database: glue_alpha.Database;\ndeclare const dataFormat: glue_alpha.DataFormat;\ndeclare const partitionProjectionConfiguration: glue_alpha.PartitionProjectionConfiguration;\ndeclare const storageParameter: glue_alpha.StorageParameter;\nconst tableBaseProps: glue_alpha.TableBaseProps = {\n columns: [{\n name: 'name',\n type:
|
|
23333
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\n\ndeclare const database: glue_alpha.Database;\ndeclare const dataFormat: glue_alpha.DataFormat;\ndeclare const partitionProjectionConfiguration: glue_alpha.PartitionProjectionConfiguration;\ndeclare const storageParameter: glue_alpha.StorageParameter;\ndeclare const type: glue_alpha.Type;\nconst tableBaseProps: glue_alpha.TableBaseProps = {\n columns: [{\n name: 'name',\n type: type,\n\n // the properties below are optional\n comment: 'comment',\n }],\n database: database,\n dataFormat: dataFormat,\n\n // the properties below are optional\n compressed: false,\n description: 'description',\n enablePartitionFiltering: false,\n hasEncryptedData: false,\n parameters: {\n parametersKey: 'parameters',\n },\n partitionIndexes: [{\n keyNames: ['keyNames'],\n\n // the properties below are optional\n indexName: 'indexName',\n }],\n partitionKeys: [{\n name: 'name',\n type: type,\n\n // the properties below are optional\n comment: 'comment',\n }],\n partitionProjection: {\n partitionProjectionKey: partitionProjectionConfiguration,\n },\n storageParameters: [storageParameter],\n storedAsSubDirectories: false,\n tableName: 'tableName',\n};",
|
|
22949
23334
|
"custom": {
|
|
22950
23335
|
"exampleMetadata": "fixture=_generated"
|
|
22951
23336
|
}
|
|
@@ -23187,7 +23572,7 @@
|
|
|
23187
23572
|
"abstract": true,
|
|
23188
23573
|
"docs": {
|
|
23189
23574
|
"default": "- The parameter is not defined",
|
|
23190
|
-
"example": " declare const glueDatabase: glue.IDatabase;\n const table = new glue.
|
|
23575
|
+
"example": " declare const glueDatabase: glue.IDatabase;\n const table = new glue.S3Table(this, 'Table', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('foo', 'bar'), // Will have no effect\n glue.StorageParameter.custom('separatorChar', ','), // Will describe the separator char used in the data\n glue.StorageParameter.custom(glue.StorageParameters.WRITE_PARALLEL, 'off'),\n ],\n // ...\n database: glueDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.CSV,\n });",
|
|
23191
23576
|
"remarks": "These properties help describe the format of the data that is stored within the crawled data sources.\n\nThe key/value pairs that are allowed to be submitted are not limited, however their functionality is not guaranteed.\n\nSome keys will be auto-populated by glue crawlers, however, you can override them by specifying the key and value in this property.",
|
|
23192
23577
|
"see": "https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_TABLE.html#r_CREATE_EXTERNAL_TABLE-parameters - under _\"TABLE PROPERTIES\"_",
|
|
23193
23578
|
"stability": "experimental",
|
|
@@ -23248,80 +23633,57 @@
|
|
|
23248
23633
|
],
|
|
23249
23634
|
"symbolId": "lib/table-base:TableBaseProps"
|
|
23250
23635
|
},
|
|
23251
|
-
"@aws-cdk/aws-glue-alpha.
|
|
23636
|
+
"@aws-cdk/aws-glue-alpha.TableClientSideEncryption": {
|
|
23252
23637
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
23253
23638
|
"docs": {
|
|
23254
|
-
"
|
|
23639
|
+
"remarks": "Independent of the bucket's server-side encryption and of who owns the bucket:\nthe data is encrypted by the client before it is written to S3. When set, the\n`grant*` methods also grant the relevant KMS permissions on the key.",
|
|
23255
23640
|
"stability": "experimental",
|
|
23256
|
-
"summary": "
|
|
23257
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n
|
|
23641
|
+
"summary": "Client-side encryption for an `S3Table`'s data.",
|
|
23642
|
+
"example": "declare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n clientSideEncryption: glue.TableClientSideEncryption.kms(),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n clientSideEncryption: glue.TableClientSideEncryption.kms(new kms.Key(this, 'MyKey')),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});",
|
|
23258
23643
|
"custom": {
|
|
23259
23644
|
"exampleMetadata": "infused"
|
|
23260
23645
|
}
|
|
23261
23646
|
},
|
|
23262
|
-
"fqn": "@aws-cdk/aws-glue-alpha.
|
|
23263
|
-
"kind": "
|
|
23647
|
+
"fqn": "@aws-cdk/aws-glue-alpha.TableClientSideEncryption",
|
|
23648
|
+
"kind": "class",
|
|
23264
23649
|
"locationInModule": {
|
|
23265
23650
|
"filename": "lib/s3-table.ts",
|
|
23266
|
-
"line":
|
|
23651
|
+
"line": 115
|
|
23267
23652
|
},
|
|
23268
|
-
"
|
|
23269
|
-
{
|
|
23270
|
-
"docs": {
|
|
23271
|
-
"see": "https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html",
|
|
23272
|
-
"stability": "experimental",
|
|
23273
|
-
"summary": "Server side encryption (SSE) with an Amazon S3-managed key."
|
|
23274
|
-
},
|
|
23275
|
-
"name": "S3_MANAGED"
|
|
23276
|
-
},
|
|
23653
|
+
"methods": [
|
|
23277
23654
|
{
|
|
23278
23655
|
"docs": {
|
|
23279
|
-
"see": "https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html",
|
|
23280
23656
|
"stability": "experimental",
|
|
23281
|
-
"summary": "
|
|
23657
|
+
"summary": "Client-side encryption (CSE-KMS) with an AWS KMS key managed by the account owner."
|
|
23282
23658
|
},
|
|
23283
|
-
"
|
|
23284
|
-
|
|
23285
|
-
|
|
23286
|
-
"docs": {
|
|
23287
|
-
"stability": "experimental",
|
|
23288
|
-
"summary": "Server-side encryption (SSE) with an AWS KMS key managed by the KMS service."
|
|
23659
|
+
"locationInModule": {
|
|
23660
|
+
"filename": "lib/s3-table.ts",
|
|
23661
|
+
"line": 121
|
|
23289
23662
|
},
|
|
23290
|
-
"name": "
|
|
23291
|
-
|
|
23292
|
-
|
|
23293
|
-
|
|
23294
|
-
|
|
23295
|
-
|
|
23296
|
-
|
|
23663
|
+
"name": "kms",
|
|
23664
|
+
"parameters": [
|
|
23665
|
+
{
|
|
23666
|
+
"docs": {
|
|
23667
|
+
"remarks": "A key is created if one is not provided.",
|
|
23668
|
+
"summary": "the KMS key used to encrypt the data."
|
|
23669
|
+
},
|
|
23670
|
+
"name": "key",
|
|
23671
|
+
"optional": true,
|
|
23672
|
+
"type": {
|
|
23673
|
+
"fqn": "aws-cdk-lib.interfaces.aws_kms.IKeyRef"
|
|
23674
|
+
}
|
|
23675
|
+
}
|
|
23676
|
+
],
|
|
23677
|
+
"returns": {
|
|
23678
|
+
"type": {
|
|
23679
|
+
"fqn": "@aws-cdk/aws-glue-alpha.TableClientSideEncryption"
|
|
23680
|
+
}
|
|
23297
23681
|
},
|
|
23298
|
-
"
|
|
23299
|
-
}
|
|
23300
|
-
],
|
|
23301
|
-
"name": "TableEncryption",
|
|
23302
|
-
"symbolId": "lib/s3-table:TableEncryption"
|
|
23303
|
-
},
|
|
23304
|
-
"@aws-cdk/aws-glue-alpha.TableProps": {
|
|
23305
|
-
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
23306
|
-
"datatype": true,
|
|
23307
|
-
"docs": {
|
|
23308
|
-
"stability": "experimental",
|
|
23309
|
-
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport { aws_kms as kms } from 'aws-cdk-lib';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\ndeclare const database: glue_alpha.Database;\ndeclare const dataFormat: glue_alpha.DataFormat;\ndeclare const key: kms.Key;\ndeclare const partitionProjectionConfiguration: glue_alpha.PartitionProjectionConfiguration;\ndeclare const storageParameter: glue_alpha.StorageParameter;\nconst tableProps: glue_alpha.TableProps = {\n columns: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n database: database,\n dataFormat: dataFormat,\n\n // the properties below are optional\n bucket: bucket,\n compressed: false,\n description: 'description',\n enablePartitionFiltering: false,\n encryption: glue_alpha.TableEncryption.S3_MANAGED,\n encryptionKey: key,\n hasEncryptedData: false,\n parameters: {\n parametersKey: 'parameters',\n },\n partitionIndexes: [{\n keyNames: ['keyNames'],\n\n // the properties below are optional\n indexName: 'indexName',\n }],\n partitionKeys: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n partitionProjection: {\n partitionProjectionKey: partitionProjectionConfiguration,\n },\n s3Prefix: 's3Prefix',\n storageParameters: [storageParameter],\n storedAsSubDirectories: false,\n tableName: 'tableName',\n};",
|
|
23310
|
-
"custom": {
|
|
23311
|
-
"exampleMetadata": "fixture=_generated"
|
|
23682
|
+
"static": true
|
|
23312
23683
|
}
|
|
23313
|
-
},
|
|
23314
|
-
"fqn": "@aws-cdk/aws-glue-alpha.TableProps",
|
|
23315
|
-
"interfaces": [
|
|
23316
|
-
"@aws-cdk/aws-glue-alpha.S3TableProps"
|
|
23317
23684
|
],
|
|
23318
|
-
"
|
|
23319
|
-
"
|
|
23320
|
-
"filename": "lib/table-deprecated.ts",
|
|
23321
|
-
"line": 5
|
|
23322
|
-
},
|
|
23323
|
-
"name": "TableProps",
|
|
23324
|
-
"symbolId": "lib/table-deprecated:TableProps"
|
|
23685
|
+
"name": "TableClientSideEncryption",
|
|
23686
|
+
"symbolId": "lib/s3-table:TableClientSideEncryption"
|
|
23325
23687
|
},
|
|
23326
23688
|
"@aws-cdk/aws-glue-alpha.TriggerOptions": {
|
|
23327
23689
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
@@ -23500,25 +23862,24 @@
|
|
|
23500
23862
|
},
|
|
23501
23863
|
"@aws-cdk/aws-glue-alpha.Type": {
|
|
23502
23864
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
23503
|
-
"datatype": true,
|
|
23504
23865
|
"docs": {
|
|
23866
|
+
"remarks": "Instances are opaque: obtain one from a `Schema` factory (for example\n`Schema.STRING`, `Schema.decimal(...)`, `Schema.array(...)`) or, for a type the\n`Schema` factories don't model, from `Schema.custom(...)`.",
|
|
23505
23867
|
"stability": "experimental",
|
|
23506
|
-
"summary": "
|
|
23507
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '
|
|
23868
|
+
"summary": "The type of a column in a table schema.",
|
|
23869
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});",
|
|
23508
23870
|
"custom": {
|
|
23509
23871
|
"exampleMetadata": "infused"
|
|
23510
23872
|
}
|
|
23511
23873
|
},
|
|
23512
23874
|
"fqn": "@aws-cdk/aws-glue-alpha.Type",
|
|
23513
|
-
"kind": "
|
|
23875
|
+
"kind": "class",
|
|
23514
23876
|
"locationInModule": {
|
|
23515
23877
|
"filename": "lib/schema.ts",
|
|
23516
|
-
"line":
|
|
23878
|
+
"line": 33
|
|
23517
23879
|
},
|
|
23518
23880
|
"name": "Type",
|
|
23519
23881
|
"properties": [
|
|
23520
23882
|
{
|
|
23521
|
-
"abstract": true,
|
|
23522
23883
|
"docs": {
|
|
23523
23884
|
"stability": "experimental",
|
|
23524
23885
|
"summary": "Glue InputString for this type."
|
|
@@ -23526,7 +23887,7 @@
|
|
|
23526
23887
|
"immutable": true,
|
|
23527
23888
|
"locationInModule": {
|
|
23528
23889
|
"filename": "lib/schema.ts",
|
|
23529
|
-
"line":
|
|
23890
|
+
"line": 51
|
|
23530
23891
|
},
|
|
23531
23892
|
"name": "inputString",
|
|
23532
23893
|
"type": {
|
|
@@ -23534,7 +23895,6 @@
|
|
|
23534
23895
|
}
|
|
23535
23896
|
},
|
|
23536
23897
|
{
|
|
23537
|
-
"abstract": true,
|
|
23538
23898
|
"docs": {
|
|
23539
23899
|
"stability": "experimental",
|
|
23540
23900
|
"summary": "Indicates whether this type is a primitive data type."
|
|
@@ -23542,7 +23902,7 @@
|
|
|
23542
23902
|
"immutable": true,
|
|
23543
23903
|
"locationInModule": {
|
|
23544
23904
|
"filename": "lib/schema.ts",
|
|
23545
|
-
"line":
|
|
23905
|
+
"line": 46
|
|
23546
23906
|
},
|
|
23547
23907
|
"name": "isPrimitive",
|
|
23548
23908
|
"type": {
|
|
@@ -24522,7 +24882,7 @@
|
|
|
24522
24882
|
"kind": "enum",
|
|
24523
24883
|
"locationInModule": {
|
|
24524
24884
|
"filename": "lib/storage-parameter.ts",
|
|
24525
|
-
"line":
|
|
24885
|
+
"line": 185
|
|
24526
24886
|
},
|
|
24527
24887
|
"members": [
|
|
24528
24888
|
{
|
|
@@ -24544,6 +24904,6 @@
|
|
|
24544
24904
|
"symbolId": "lib/storage-parameter:WriteParallel"
|
|
24545
24905
|
}
|
|
24546
24906
|
},
|
|
24547
|
-
"version": "2.
|
|
24907
|
+
"version": "2.268.0-alpha.0",
|
|
24548
24908
|
"fingerprint": "**********"
|
|
24549
24909
|
}
|