@aws-cdk/aws-glue-alpha 2.263.0-alpha.0 → 2.264.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 +1331 -183
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +23 -1
- package/README.md +154 -0
- package/awslint.json +2 -1
- package/lib/catalog.d.ts +259 -0
- package/lib/catalog.js +424 -0
- package/lib/code.js +3 -3
- package/lib/connection.js +2 -2
- package/lib/data-format.js +5 -5
- package/lib/data-quality-ruleset.js +2 -2
- package/lib/database.d.ts +17 -14
- package/lib/database.js +43 -24
- package/lib/external-table.js +3 -3
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/jobs/job.js +2 -2
- package/lib/jobs/pyspark-etl-job.js +1 -1
- package/lib/jobs/pyspark-flex-etl-job.js +1 -1
- package/lib/jobs/pyspark-streaming-job.js +1 -1
- package/lib/jobs/python-shell-job.js +1 -1
- package/lib/jobs/ray-job.js +1 -1
- package/lib/jobs/scala-spark-etl-job.js +1 -1
- package/lib/jobs/scala-spark-flex-etl-job.js +1 -1
- package/lib/jobs/scala-spark-streaming-job.js +1 -1
- package/lib/jobs/spark-job.js +1 -1
- package/lib/partition-projection.js +1 -1
- package/lib/s3-table.js +11 -4
- package/lib/schema.js +1 -1
- package/lib/security-configuration.js +3 -3
- package/lib/storage-parameter.js +1 -1
- package/lib/table-base.js +14 -4
- package/lib/table-deprecated.js +1 -1
- package/lib/triggers/trigger-options.js +1 -1
- package/lib/triggers/workflow.js +2 -2
- package/package.json +7 -7
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.264.0",
|
|
12
12
|
"constructs": "^10.5.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -447,6 +447,19 @@
|
|
|
447
447
|
}
|
|
448
448
|
}
|
|
449
449
|
},
|
|
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
|
+
},
|
|
450
463
|
"aws-cdk-lib.aws_athena": {
|
|
451
464
|
"targets": {
|
|
452
465
|
"dotnet": {
|
|
@@ -577,6 +590,19 @@
|
|
|
577
590
|
}
|
|
578
591
|
}
|
|
579
592
|
},
|
|
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
|
+
},
|
|
580
606
|
"aws-cdk-lib.aws_batch": {
|
|
581
607
|
"targets": {
|
|
582
608
|
"dotnet": {
|
|
@@ -1072,6 +1098,19 @@
|
|
|
1072
1098
|
}
|
|
1073
1099
|
}
|
|
1074
1100
|
},
|
|
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
|
+
},
|
|
1075
1114
|
"aws-cdk-lib.aws_comprehend": {
|
|
1076
1115
|
"targets": {
|
|
1077
1116
|
"dotnet": {
|
|
@@ -1215,19 +1254,6 @@
|
|
|
1215
1254
|
}
|
|
1216
1255
|
}
|
|
1217
1256
|
},
|
|
1218
|
-
"aws-cdk-lib.aws_dataexchange": {
|
|
1219
|
-
"targets": {
|
|
1220
|
-
"dotnet": {
|
|
1221
|
-
"namespace": "Amazon.CDK.AWS.DataExchange"
|
|
1222
|
-
},
|
|
1223
|
-
"java": {
|
|
1224
|
-
"package": "software.amazon.awscdk.services.dataexchange"
|
|
1225
|
-
},
|
|
1226
|
-
"python": {
|
|
1227
|
-
"module": "aws_cdk.aws_dataexchange"
|
|
1228
|
-
}
|
|
1229
|
-
}
|
|
1230
|
-
},
|
|
1231
1257
|
"aws-cdk-lib.aws_datapipeline": {
|
|
1232
1258
|
"targets": {
|
|
1233
1259
|
"dotnet": {
|
|
@@ -2846,6 +2872,19 @@
|
|
|
2846
2872
|
}
|
|
2847
2873
|
}
|
|
2848
2874
|
},
|
|
2875
|
+
"aws-cdk-lib.aws_networkflowmonitor": {
|
|
2876
|
+
"targets": {
|
|
2877
|
+
"dotnet": {
|
|
2878
|
+
"namespace": "Amazon.CDK.AWS.NetworkFlowMonitor"
|
|
2879
|
+
},
|
|
2880
|
+
"java": {
|
|
2881
|
+
"package": "software.amazon.awscdk.services.networkflowmonitor"
|
|
2882
|
+
},
|
|
2883
|
+
"python": {
|
|
2884
|
+
"module": "aws_cdk.aws_networkflowmonitor"
|
|
2885
|
+
}
|
|
2886
|
+
}
|
|
2887
|
+
},
|
|
2849
2888
|
"aws-cdk-lib.aws_networkmanager": {
|
|
2850
2889
|
"targets": {
|
|
2851
2890
|
"dotnet": {
|
|
@@ -3720,6 +3759,19 @@
|
|
|
3720
3759
|
}
|
|
3721
3760
|
}
|
|
3722
3761
|
},
|
|
3762
|
+
"aws-cdk-lib.aws_scn": {
|
|
3763
|
+
"targets": {
|
|
3764
|
+
"dotnet": {
|
|
3765
|
+
"namespace": "Amazon.CDK.AWS.SCN"
|
|
3766
|
+
},
|
|
3767
|
+
"java": {
|
|
3768
|
+
"package": "software.amazon.awscdk.services.scn"
|
|
3769
|
+
},
|
|
3770
|
+
"python": {
|
|
3771
|
+
"module": "aws_cdk.aws_scn"
|
|
3772
|
+
}
|
|
3773
|
+
}
|
|
3774
|
+
},
|
|
3723
3775
|
"aws-cdk-lib.aws_sdb": {
|
|
3724
3776
|
"targets": {
|
|
3725
3777
|
"dotnet": {
|
|
@@ -4019,6 +4071,19 @@
|
|
|
4019
4071
|
}
|
|
4020
4072
|
}
|
|
4021
4073
|
},
|
|
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
|
+
},
|
|
4022
4087
|
"aws-cdk-lib.aws_stepfunctions": {
|
|
4023
4088
|
"targets": {
|
|
4024
4089
|
"dotnet": {
|
|
@@ -4045,6 +4110,19 @@
|
|
|
4045
4110
|
}
|
|
4046
4111
|
}
|
|
4047
4112
|
},
|
|
4113
|
+
"aws-cdk-lib.aws_storagegateway": {
|
|
4114
|
+
"targets": {
|
|
4115
|
+
"dotnet": {
|
|
4116
|
+
"namespace": "Amazon.CDK.AWS.StorageGateway"
|
|
4117
|
+
},
|
|
4118
|
+
"java": {
|
|
4119
|
+
"package": "software.amazon.awscdk.services.storagegateway"
|
|
4120
|
+
},
|
|
4121
|
+
"python": {
|
|
4122
|
+
"module": "aws_cdk.aws_storagegateway"
|
|
4123
|
+
}
|
|
4124
|
+
}
|
|
4125
|
+
},
|
|
4048
4126
|
"aws-cdk-lib.aws_supportapp": {
|
|
4049
4127
|
"targets": {
|
|
4050
4128
|
"dotnet": {
|
|
@@ -4084,6 +4162,19 @@
|
|
|
4084
4162
|
}
|
|
4085
4163
|
}
|
|
4086
4164
|
},
|
|
4165
|
+
"aws-cdk-lib.aws_thinclient": {
|
|
4166
|
+
"targets": {
|
|
4167
|
+
"dotnet": {
|
|
4168
|
+
"namespace": "Amazon.CDK.AWS.ThinClient"
|
|
4169
|
+
},
|
|
4170
|
+
"java": {
|
|
4171
|
+
"package": "software.amazon.awscdk.services.thinclient"
|
|
4172
|
+
},
|
|
4173
|
+
"python": {
|
|
4174
|
+
"module": "aws_cdk.aws_thinclient"
|
|
4175
|
+
}
|
|
4176
|
+
}
|
|
4177
|
+
},
|
|
4087
4178
|
"aws-cdk-lib.aws_timestream": {
|
|
4088
4179
|
"targets": {
|
|
4089
4180
|
"dotnet": {
|
|
@@ -4097,6 +4188,19 @@
|
|
|
4097
4188
|
}
|
|
4098
4189
|
}
|
|
4099
4190
|
},
|
|
4191
|
+
"aws-cdk-lib.aws_transcribe": {
|
|
4192
|
+
"targets": {
|
|
4193
|
+
"dotnet": {
|
|
4194
|
+
"namespace": "Amazon.CDK.AWS.Transcribe"
|
|
4195
|
+
},
|
|
4196
|
+
"java": {
|
|
4197
|
+
"package": "software.amazon.awscdk.services.transcribe"
|
|
4198
|
+
},
|
|
4199
|
+
"python": {
|
|
4200
|
+
"module": "aws_cdk.aws_transcribe"
|
|
4201
|
+
}
|
|
4202
|
+
}
|
|
4203
|
+
},
|
|
4100
4204
|
"aws-cdk-lib.aws_transfer": {
|
|
4101
4205
|
"targets": {
|
|
4102
4206
|
"dotnet": {
|
|
@@ -4110,6 +4214,19 @@
|
|
|
4110
4214
|
}
|
|
4111
4215
|
}
|
|
4112
4216
|
},
|
|
4217
|
+
"aws-cdk-lib.aws_usernotifications": {
|
|
4218
|
+
"targets": {
|
|
4219
|
+
"dotnet": {
|
|
4220
|
+
"namespace": "Amazon.CDK.AWS.UserNotifications"
|
|
4221
|
+
},
|
|
4222
|
+
"java": {
|
|
4223
|
+
"package": "software.amazon.awscdk.services.usernotifications"
|
|
4224
|
+
},
|
|
4225
|
+
"python": {
|
|
4226
|
+
"module": "aws_cdk.aws_usernotifications"
|
|
4227
|
+
}
|
|
4228
|
+
}
|
|
4229
|
+
},
|
|
4113
4230
|
"aws-cdk-lib.aws_uxc": {
|
|
4114
4231
|
"targets": {
|
|
4115
4232
|
"dotnet": {
|
|
@@ -4201,6 +4318,19 @@
|
|
|
4201
4318
|
}
|
|
4202
4319
|
}
|
|
4203
4320
|
},
|
|
4321
|
+
"aws-cdk-lib.aws_wellarchitected": {
|
|
4322
|
+
"targets": {
|
|
4323
|
+
"dotnet": {
|
|
4324
|
+
"namespace": "Amazon.CDK.AWS.WellArchitected"
|
|
4325
|
+
},
|
|
4326
|
+
"java": {
|
|
4327
|
+
"package": "software.amazon.awscdk.services.wellarchitected"
|
|
4328
|
+
},
|
|
4329
|
+
"python": {
|
|
4330
|
+
"module": "aws_cdk.aws_wellarchitected"
|
|
4331
|
+
}
|
|
4332
|
+
}
|
|
4333
|
+
},
|
|
4204
4334
|
"aws-cdk-lib.aws_wisdom": {
|
|
4205
4335
|
"targets": {
|
|
4206
4336
|
"dotnet": {
|
|
@@ -4703,6 +4833,22 @@
|
|
|
4703
4833
|
}
|
|
4704
4834
|
}
|
|
4705
4835
|
},
|
|
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
|
+
},
|
|
4706
4852
|
"aws-cdk-lib.interfaces.aws_athena": {
|
|
4707
4853
|
"targets": {
|
|
4708
4854
|
"dotnet": {
|
|
@@ -4831,6 +4977,22 @@
|
|
|
4831
4977
|
}
|
|
4832
4978
|
}
|
|
4833
4979
|
},
|
|
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
|
+
},
|
|
4834
4996
|
"aws-cdk-lib.interfaces.aws_batch": {
|
|
4835
4997
|
"targets": {
|
|
4836
4998
|
"dotnet": {
|
|
@@ -5407,6 +5569,22 @@
|
|
|
5407
5569
|
}
|
|
5408
5570
|
}
|
|
5409
5571
|
},
|
|
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
|
+
},
|
|
5410
5588
|
"aws-cdk-lib.interfaces.aws_comprehend": {
|
|
5411
5589
|
"targets": {
|
|
5412
5590
|
"dotnet": {
|
|
@@ -5583,22 +5761,6 @@
|
|
|
5583
5761
|
}
|
|
5584
5762
|
}
|
|
5585
5763
|
},
|
|
5586
|
-
"aws-cdk-lib.interfaces.aws_dataexchange": {
|
|
5587
|
-
"targets": {
|
|
5588
|
-
"dotnet": {
|
|
5589
|
-
"namespace": "Amazon.CDK.Interfaces.DataExchange"
|
|
5590
|
-
},
|
|
5591
|
-
"go": {
|
|
5592
|
-
"packageName": "interfacesawsdataexchange"
|
|
5593
|
-
},
|
|
5594
|
-
"java": {
|
|
5595
|
-
"package": "software.amazon.awscdk.interfaces.dataexchange"
|
|
5596
|
-
},
|
|
5597
|
-
"python": {
|
|
5598
|
-
"module": "aws_cdk.interfaces.aws_dataexchange"
|
|
5599
|
-
}
|
|
5600
|
-
}
|
|
5601
|
-
},
|
|
5602
5764
|
"aws-cdk-lib.interfaces.aws_datapipeline": {
|
|
5603
5765
|
"targets": {
|
|
5604
5766
|
"dotnet": {
|
|
@@ -7375,6 +7537,22 @@
|
|
|
7375
7537
|
}
|
|
7376
7538
|
}
|
|
7377
7539
|
},
|
|
7540
|
+
"aws-cdk-lib.interfaces.aws_networkflowmonitor": {
|
|
7541
|
+
"targets": {
|
|
7542
|
+
"dotnet": {
|
|
7543
|
+
"namespace": "Amazon.CDK.Interfaces.NetworkFlowMonitor"
|
|
7544
|
+
},
|
|
7545
|
+
"go": {
|
|
7546
|
+
"packageName": "interfacesawsnetworkflowmonitor"
|
|
7547
|
+
},
|
|
7548
|
+
"java": {
|
|
7549
|
+
"package": "software.amazon.awscdk.interfaces.networkflowmonitor"
|
|
7550
|
+
},
|
|
7551
|
+
"python": {
|
|
7552
|
+
"module": "aws_cdk.interfaces.aws_networkflowmonitor"
|
|
7553
|
+
}
|
|
7554
|
+
}
|
|
7555
|
+
},
|
|
7378
7556
|
"aws-cdk-lib.interfaces.aws_networkmanager": {
|
|
7379
7557
|
"targets": {
|
|
7380
7558
|
"dotnet": {
|
|
@@ -8335,6 +8513,22 @@
|
|
|
8335
8513
|
}
|
|
8336
8514
|
}
|
|
8337
8515
|
},
|
|
8516
|
+
"aws-cdk-lib.interfaces.aws_scn": {
|
|
8517
|
+
"targets": {
|
|
8518
|
+
"dotnet": {
|
|
8519
|
+
"namespace": "Amazon.CDK.Interfaces.SCN"
|
|
8520
|
+
},
|
|
8521
|
+
"go": {
|
|
8522
|
+
"packageName": "interfacesawsscn"
|
|
8523
|
+
},
|
|
8524
|
+
"java": {
|
|
8525
|
+
"package": "software.amazon.awscdk.interfaces.scn"
|
|
8526
|
+
},
|
|
8527
|
+
"python": {
|
|
8528
|
+
"module": "aws_cdk.interfaces.aws_scn"
|
|
8529
|
+
}
|
|
8530
|
+
}
|
|
8531
|
+
},
|
|
8338
8532
|
"aws-cdk-lib.interfaces.aws_sdb": {
|
|
8339
8533
|
"targets": {
|
|
8340
8534
|
"dotnet": {
|
|
@@ -8671,6 +8865,22 @@
|
|
|
8671
8865
|
}
|
|
8672
8866
|
}
|
|
8673
8867
|
},
|
|
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
|
+
},
|
|
8674
8884
|
"aws-cdk-lib.interfaces.aws_stepfunctions": {
|
|
8675
8885
|
"targets": {
|
|
8676
8886
|
"dotnet": {
|
|
@@ -8687,6 +8897,22 @@
|
|
|
8687
8897
|
}
|
|
8688
8898
|
}
|
|
8689
8899
|
},
|
|
8900
|
+
"aws-cdk-lib.interfaces.aws_storagegateway": {
|
|
8901
|
+
"targets": {
|
|
8902
|
+
"dotnet": {
|
|
8903
|
+
"namespace": "Amazon.CDK.Interfaces.StorageGateway"
|
|
8904
|
+
},
|
|
8905
|
+
"go": {
|
|
8906
|
+
"packageName": "interfacesawsstoragegateway"
|
|
8907
|
+
},
|
|
8908
|
+
"java": {
|
|
8909
|
+
"package": "software.amazon.awscdk.interfaces.storagegateway"
|
|
8910
|
+
},
|
|
8911
|
+
"python": {
|
|
8912
|
+
"module": "aws_cdk.interfaces.aws_storagegateway"
|
|
8913
|
+
}
|
|
8914
|
+
}
|
|
8915
|
+
},
|
|
8690
8916
|
"aws-cdk-lib.interfaces.aws_supportapp": {
|
|
8691
8917
|
"targets": {
|
|
8692
8918
|
"dotnet": {
|
|
@@ -8735,6 +8961,22 @@
|
|
|
8735
8961
|
}
|
|
8736
8962
|
}
|
|
8737
8963
|
},
|
|
8964
|
+
"aws-cdk-lib.interfaces.aws_thinclient": {
|
|
8965
|
+
"targets": {
|
|
8966
|
+
"dotnet": {
|
|
8967
|
+
"namespace": "Amazon.CDK.Interfaces.ThinClient"
|
|
8968
|
+
},
|
|
8969
|
+
"go": {
|
|
8970
|
+
"packageName": "interfacesawsthinclient"
|
|
8971
|
+
},
|
|
8972
|
+
"java": {
|
|
8973
|
+
"package": "software.amazon.awscdk.interfaces.thinclient"
|
|
8974
|
+
},
|
|
8975
|
+
"python": {
|
|
8976
|
+
"module": "aws_cdk.interfaces.aws_thinclient"
|
|
8977
|
+
}
|
|
8978
|
+
}
|
|
8979
|
+
},
|
|
8738
8980
|
"aws-cdk-lib.interfaces.aws_timestream": {
|
|
8739
8981
|
"targets": {
|
|
8740
8982
|
"dotnet": {
|
|
@@ -8751,6 +8993,22 @@
|
|
|
8751
8993
|
}
|
|
8752
8994
|
}
|
|
8753
8995
|
},
|
|
8996
|
+
"aws-cdk-lib.interfaces.aws_transcribe": {
|
|
8997
|
+
"targets": {
|
|
8998
|
+
"dotnet": {
|
|
8999
|
+
"namespace": "Amazon.CDK.Interfaces.Transcribe"
|
|
9000
|
+
},
|
|
9001
|
+
"go": {
|
|
9002
|
+
"packageName": "interfacesawstranscribe"
|
|
9003
|
+
},
|
|
9004
|
+
"java": {
|
|
9005
|
+
"package": "software.amazon.awscdk.interfaces.transcribe"
|
|
9006
|
+
},
|
|
9007
|
+
"python": {
|
|
9008
|
+
"module": "aws_cdk.interfaces.aws_transcribe"
|
|
9009
|
+
}
|
|
9010
|
+
}
|
|
9011
|
+
},
|
|
8754
9012
|
"aws-cdk-lib.interfaces.aws_transfer": {
|
|
8755
9013
|
"targets": {
|
|
8756
9014
|
"dotnet": {
|
|
@@ -8767,6 +9025,22 @@
|
|
|
8767
9025
|
}
|
|
8768
9026
|
}
|
|
8769
9027
|
},
|
|
9028
|
+
"aws-cdk-lib.interfaces.aws_usernotifications": {
|
|
9029
|
+
"targets": {
|
|
9030
|
+
"dotnet": {
|
|
9031
|
+
"namespace": "Amazon.CDK.Interfaces.UserNotifications"
|
|
9032
|
+
},
|
|
9033
|
+
"go": {
|
|
9034
|
+
"packageName": "interfacesawsusernotifications"
|
|
9035
|
+
},
|
|
9036
|
+
"java": {
|
|
9037
|
+
"package": "software.amazon.awscdk.interfaces.usernotifications"
|
|
9038
|
+
},
|
|
9039
|
+
"python": {
|
|
9040
|
+
"module": "aws_cdk.interfaces.aws_usernotifications"
|
|
9041
|
+
}
|
|
9042
|
+
}
|
|
9043
|
+
},
|
|
8770
9044
|
"aws-cdk-lib.interfaces.aws_uxc": {
|
|
8771
9045
|
"targets": {
|
|
8772
9046
|
"dotnet": {
|
|
@@ -8879,6 +9153,22 @@
|
|
|
8879
9153
|
}
|
|
8880
9154
|
}
|
|
8881
9155
|
},
|
|
9156
|
+
"aws-cdk-lib.interfaces.aws_wellarchitected": {
|
|
9157
|
+
"targets": {
|
|
9158
|
+
"dotnet": {
|
|
9159
|
+
"namespace": "Amazon.CDK.Interfaces.WellArchitected"
|
|
9160
|
+
},
|
|
9161
|
+
"go": {
|
|
9162
|
+
"packageName": "interfacesawswellarchitected"
|
|
9163
|
+
},
|
|
9164
|
+
"java": {
|
|
9165
|
+
"package": "software.amazon.awscdk.interfaces.wellarchitected"
|
|
9166
|
+
},
|
|
9167
|
+
"python": {
|
|
9168
|
+
"module": "aws_cdk.interfaces.aws_wellarchitected"
|
|
9169
|
+
}
|
|
9170
|
+
}
|
|
9171
|
+
},
|
|
8882
9172
|
"aws-cdk-lib.interfaces.aws_wisdom": {
|
|
8883
9173
|
"targets": {
|
|
8884
9174
|
"dotnet": {
|
|
@@ -9119,7 +9409,7 @@
|
|
|
9119
9409
|
},
|
|
9120
9410
|
"name": "@aws-cdk/aws-glue-alpha",
|
|
9121
9411
|
"readme": {
|
|
9122
|
-
"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-spark-ui, —enable-continuous-cloudwatch-log.`\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 workerType: glue.WorkerType.G_2X,\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 numberOfWorkers: 2,\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 default Python 3.9,\nwhich you can override with any non-deprecated version of Python. 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-spark-ui, —enable-continuous-cloudwatch-log`.\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 workerType: glue.WorkerType.G_2X,\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 numberOfWorkers: 2,\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 3.0 and worker type `G_2X`. The following best practice\nfeatures are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log`\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.PySparkEtlJob(stack, 'pySparkEtlJob', {\n jobName: 'pySparkEtlJob',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\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 numberOfWorkers: 2,\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.TWO,\n maxCapacity: glue.MaxCapacity.DPU_1,\n role,\n script,\n extraPythonFiles: [extraPythonFile],\n glueVersion: glue.GlueVersion.V2_0,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\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 numberOfWorkers: 2,\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 / updating\nscripts to S3 via an optional fromAsset parameter pointing to a script\nin the local file structure. You provide the existing S3 bucket and\npath to which you'd like the script to be uploaded.\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 then add those triggers\nto jobs.\n\nStartOnCreation defaults to true for all trigger types, but you can\noverride it if you prefer for your trigger not to start on creation.\n\nReference the workflow-triggers.test.ts unit tests for examples of creating\nworkflows and triggers.\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, weekly, and monthly 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\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\n```ts\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n },\n jobBookmarksEncryption: {\n mode: glue.JobBookmarksEncryptionMode.CLIENT_SIDE_KMS,\n },\n s3Encryption: {\n mode: glue.S3EncryptionMode.KMS,\n },\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 for each encryption config, for example, for CloudWatch encryption:\n\n```ts\ndeclare const key: kms.Key;\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n kmsKey: key,\n },\n});\n```\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## 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\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.Table;\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## [Encryption](https://docs.aws.amazon.com/athena/latest/ug/encryption.html)\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## 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,string>',\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"
|
|
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-spark-ui, —enable-continuous-cloudwatch-log.`\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 workerType: glue.WorkerType.G_2X,\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 numberOfWorkers: 2,\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 default Python 3.9,\nwhich you can override with any non-deprecated version of Python. 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-spark-ui, —enable-continuous-cloudwatch-log`.\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 workerType: glue.WorkerType.G_2X,\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 numberOfWorkers: 2,\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 3.0 and worker type `G_2X`. The following best practice\nfeatures are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log`\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.PySparkEtlJob(stack, 'pySparkEtlJob', {\n jobName: 'pySparkEtlJob',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\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 numberOfWorkers: 2,\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.TWO,\n maxCapacity: glue.MaxCapacity.DPU_1,\n role,\n script,\n extraPythonFiles: [extraPythonFile],\n glueVersion: glue.GlueVersion.V2_0,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\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 numberOfWorkers: 2,\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 / updating\nscripts to S3 via an optional fromAsset parameter pointing to a script\nin the local file structure. You provide the existing S3 bucket and\npath to which you'd like the script to be uploaded.\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 then add those triggers\nto jobs.\n\nStartOnCreation defaults to true for all trigger types, but you can\noverride it if you prefer for your trigger not to start on creation.\n\nReference the workflow-triggers.test.ts unit tests for examples of creating\nworkflows and triggers.\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, weekly, and monthly 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\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\n```ts\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n },\n jobBookmarksEncryption: {\n mode: glue.JobBookmarksEncryptionMode.CLIENT_SIDE_KMS,\n },\n s3Encryption: {\n mode: glue.S3EncryptionMode.KMS,\n },\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 for each encryption config, for example, for CloudWatch encryption:\n\n```ts\ndeclare const key: kms.Key;\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n kmsKey: key,\n },\n});\n```\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`, the `Catalog` constructor, or the import factories).\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\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.Table;\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## [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## 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,string>',\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"
|
|
9123
9413
|
},
|
|
9124
9414
|
"repository": {
|
|
9125
9415
|
"directory": "packages/@aws-cdk/aws-glue-alpha",
|
|
@@ -9355,35 +9645,591 @@
|
|
|
9355
9645
|
"name": "AssetCode",
|
|
9356
9646
|
"symbolId": "lib/code:AssetCode"
|
|
9357
9647
|
},
|
|
9358
|
-
"@aws-cdk/aws-glue-alpha.
|
|
9648
|
+
"@aws-cdk/aws-glue-alpha.Catalog": {
|
|
9359
9649
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
9650
|
+
"base": "@aws-cdk/aws-glue-alpha.CatalogBase",
|
|
9360
9651
|
"docs": {
|
|
9361
|
-
"
|
|
9652
|
+
"remarks": "Use `Catalog.forAccount(scope)` to obtain the implicit account-wide catalog,\n`Catalog.encryptAccount(scope, options)` to configure its Data Catalog\nencryption, or `new Catalog(...)` to create an `AWS::Glue::Catalog` resource.",
|
|
9362
9653
|
"stability": "experimental",
|
|
9363
|
-
"summary": "
|
|
9364
|
-
"example": "
|
|
9654
|
+
"summary": "A Glue Data Catalog.",
|
|
9655
|
+
"example": "declare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});",
|
|
9365
9656
|
"custom": {
|
|
9366
|
-
"exampleMetadata": "
|
|
9657
|
+
"exampleMetadata": "infused"
|
|
9367
9658
|
}
|
|
9368
9659
|
},
|
|
9369
|
-
"fqn": "@aws-cdk/aws-glue-alpha.
|
|
9660
|
+
"fqn": "@aws-cdk/aws-glue-alpha.Catalog",
|
|
9370
9661
|
"initializer": {
|
|
9371
9662
|
"docs": {
|
|
9372
9663
|
"stability": "experimental"
|
|
9373
9664
|
},
|
|
9374
9665
|
"locationInModule": {
|
|
9375
|
-
"filename": "lib/
|
|
9376
|
-
"line":
|
|
9666
|
+
"filename": "lib/catalog.ts",
|
|
9667
|
+
"line": 399
|
|
9377
9668
|
},
|
|
9378
9669
|
"parameters": [
|
|
9379
9670
|
{
|
|
9380
|
-
"name": "
|
|
9671
|
+
"name": "scope",
|
|
9381
9672
|
"type": {
|
|
9382
|
-
"
|
|
9673
|
+
"fqn": "constructs.Construct"
|
|
9383
9674
|
}
|
|
9384
|
-
}
|
|
9385
|
-
|
|
9386
|
-
|
|
9675
|
+
},
|
|
9676
|
+
{
|
|
9677
|
+
"name": "id",
|
|
9678
|
+
"type": {
|
|
9679
|
+
"primitive": "string"
|
|
9680
|
+
}
|
|
9681
|
+
},
|
|
9682
|
+
{
|
|
9683
|
+
"name": "props",
|
|
9684
|
+
"type": {
|
|
9685
|
+
"fqn": "@aws-cdk/aws-glue-alpha.CatalogProps"
|
|
9686
|
+
}
|
|
9687
|
+
}
|
|
9688
|
+
]
|
|
9689
|
+
},
|
|
9690
|
+
"kind": "class",
|
|
9691
|
+
"locationInModule": {
|
|
9692
|
+
"filename": "lib/catalog.ts",
|
|
9693
|
+
"line": 294
|
|
9694
|
+
},
|
|
9695
|
+
"methods": [
|
|
9696
|
+
{
|
|
9697
|
+
"docs": {
|
|
9698
|
+
"remarks": "The account catalog's encryption is an account/region-wide setting, managed\nthrough the singleton `PutDataCatalogEncryptionSettings` API. Because\nencryption is fixed at construction, it must be configured before the\naccount catalog is first used in the stack: calling this after the account\ncatalog has already been materialized (for example by `Catalog.forAccount`,\nor by a `Database` that uses the account catalog) throws.\n\nConfigure it in exactly one stack. Configuring it from multiple stacks in the\nsame account and region makes those stacks overwrite one another at deploy\ntime, and the result is order-dependent. Unlike duplicate settings within a\nsingle stack (which CloudFormation rejects), this cross-stack conflict is not\ncaught at synthesis time, because each stack synthesizes to its own template.",
|
|
9699
|
+
"stability": "experimental",
|
|
9700
|
+
"summary": "Configure Data Catalog encryption for the implicit, account-wide catalog and return it."
|
|
9701
|
+
},
|
|
9702
|
+
"locationInModule": {
|
|
9703
|
+
"filename": "lib/catalog.ts",
|
|
9704
|
+
"line": 334
|
|
9705
|
+
},
|
|
9706
|
+
"name": "encryptAccount",
|
|
9707
|
+
"parameters": [
|
|
9708
|
+
{
|
|
9709
|
+
"name": "scope",
|
|
9710
|
+
"type": {
|
|
9711
|
+
"fqn": "constructs.Construct"
|
|
9712
|
+
}
|
|
9713
|
+
},
|
|
9714
|
+
{
|
|
9715
|
+
"name": "options",
|
|
9716
|
+
"type": {
|
|
9717
|
+
"fqn": "@aws-cdk/aws-glue-alpha.CatalogEncryptionOptions"
|
|
9718
|
+
}
|
|
9719
|
+
}
|
|
9720
|
+
],
|
|
9721
|
+
"returns": {
|
|
9722
|
+
"type": {
|
|
9723
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ICatalog"
|
|
9724
|
+
}
|
|
9725
|
+
},
|
|
9726
|
+
"static": true
|
|
9727
|
+
},
|
|
9728
|
+
{
|
|
9729
|
+
"docs": {
|
|
9730
|
+
"remarks": "The account catalog is not a CloudFormation resource; it always exists. This\nreturns a stack-scoped singleton, so repeated calls within the same stack\nreturn the same instance.\n\nThis returns the account catalog without managing its encryption. To\nconfigure Data Catalog encryption for the account, use\n`Catalog.encryptAccount(scope, options)` instead - it must be called before\nthe account catalog is first used in the stack.",
|
|
9731
|
+
"stability": "experimental",
|
|
9732
|
+
"summary": "Obtain the implicit, account-wide Data Catalog."
|
|
9733
|
+
},
|
|
9734
|
+
"locationInModule": {
|
|
9735
|
+
"filename": "lib/catalog.ts",
|
|
9736
|
+
"line": 311
|
|
9737
|
+
},
|
|
9738
|
+
"name": "forAccount",
|
|
9739
|
+
"parameters": [
|
|
9740
|
+
{
|
|
9741
|
+
"name": "scope",
|
|
9742
|
+
"type": {
|
|
9743
|
+
"fqn": "constructs.Construct"
|
|
9744
|
+
}
|
|
9745
|
+
}
|
|
9746
|
+
],
|
|
9747
|
+
"returns": {
|
|
9748
|
+
"type": {
|
|
9749
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ICatalog"
|
|
9750
|
+
}
|
|
9751
|
+
},
|
|
9752
|
+
"static": true
|
|
9753
|
+
},
|
|
9754
|
+
{
|
|
9755
|
+
"docs": {
|
|
9756
|
+
"remarks": "The ARN must be a Glue catalog ARN, either the account-wide catalog\n(`arn:aws:glue:<region>:<account>:catalog`, whose id is the account) or a\nnamed catalog (`arn:aws:glue:<region>:<account>:catalog/<name>`, whose id is\nthe name).\n\nThe imported catalog is a pure identity handle and does not manage the\ncatalog's encryption. To manage an existing catalog's Data Catalog\nencryption, add a `CfnDataCatalogEncryptionSettings` resource targeting its\nid.",
|
|
9757
|
+
"stability": "experimental",
|
|
9758
|
+
"summary": "Import an existing catalog by its ARN."
|
|
9759
|
+
},
|
|
9760
|
+
"locationInModule": {
|
|
9761
|
+
"filename": "lib/catalog.ts",
|
|
9762
|
+
"line": 359
|
|
9763
|
+
},
|
|
9764
|
+
"name": "fromCatalogArn",
|
|
9765
|
+
"parameters": [
|
|
9766
|
+
{
|
|
9767
|
+
"name": "scope",
|
|
9768
|
+
"type": {
|
|
9769
|
+
"fqn": "constructs.Construct"
|
|
9770
|
+
}
|
|
9771
|
+
},
|
|
9772
|
+
{
|
|
9773
|
+
"name": "id",
|
|
9774
|
+
"type": {
|
|
9775
|
+
"primitive": "string"
|
|
9776
|
+
}
|
|
9777
|
+
},
|
|
9778
|
+
{
|
|
9779
|
+
"name": "catalogArn",
|
|
9780
|
+
"type": {
|
|
9781
|
+
"primitive": "string"
|
|
9782
|
+
}
|
|
9783
|
+
}
|
|
9784
|
+
],
|
|
9785
|
+
"returns": {
|
|
9786
|
+
"type": {
|
|
9787
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ICatalog"
|
|
9788
|
+
}
|
|
9789
|
+
},
|
|
9790
|
+
"static": true
|
|
9791
|
+
},
|
|
9792
|
+
{
|
|
9793
|
+
"docs": {
|
|
9794
|
+
"remarks": "The imported catalog is a pure identity handle and does not manage the\ncatalog's encryption. To manage an existing catalog's Data Catalog\nencryption, add a `CfnDataCatalogEncryptionSettings` resource targeting its\nid.",
|
|
9795
|
+
"stability": "experimental",
|
|
9796
|
+
"summary": "Import an existing catalog by its id."
|
|
9797
|
+
},
|
|
9798
|
+
"locationInModule": {
|
|
9799
|
+
"filename": "lib/catalog.ts",
|
|
9800
|
+
"line": 388
|
|
9801
|
+
},
|
|
9802
|
+
"name": "fromCatalogId",
|
|
9803
|
+
"parameters": [
|
|
9804
|
+
{
|
|
9805
|
+
"name": "scope",
|
|
9806
|
+
"type": {
|
|
9807
|
+
"fqn": "constructs.Construct"
|
|
9808
|
+
}
|
|
9809
|
+
},
|
|
9810
|
+
{
|
|
9811
|
+
"name": "id",
|
|
9812
|
+
"type": {
|
|
9813
|
+
"primitive": "string"
|
|
9814
|
+
}
|
|
9815
|
+
},
|
|
9816
|
+
{
|
|
9817
|
+
"name": "catalogId",
|
|
9818
|
+
"type": {
|
|
9819
|
+
"primitive": "string"
|
|
9820
|
+
}
|
|
9821
|
+
}
|
|
9822
|
+
],
|
|
9823
|
+
"returns": {
|
|
9824
|
+
"type": {
|
|
9825
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ICatalog"
|
|
9826
|
+
}
|
|
9827
|
+
},
|
|
9828
|
+
"static": true
|
|
9829
|
+
}
|
|
9830
|
+
],
|
|
9831
|
+
"name": "Catalog",
|
|
9832
|
+
"properties": [
|
|
9833
|
+
{
|
|
9834
|
+
"const": true,
|
|
9835
|
+
"docs": {
|
|
9836
|
+
"stability": "experimental",
|
|
9837
|
+
"summary": "Uniquely identifies this class."
|
|
9838
|
+
},
|
|
9839
|
+
"immutable": true,
|
|
9840
|
+
"locationInModule": {
|
|
9841
|
+
"filename": "lib/catalog.ts",
|
|
9842
|
+
"line": 297
|
|
9843
|
+
},
|
|
9844
|
+
"name": "PROPERTY_INJECTION_ID",
|
|
9845
|
+
"static": true,
|
|
9846
|
+
"type": {
|
|
9847
|
+
"primitive": "string"
|
|
9848
|
+
}
|
|
9849
|
+
},
|
|
9850
|
+
{
|
|
9851
|
+
"docs": {
|
|
9852
|
+
"stability": "experimental",
|
|
9853
|
+
"summary": "The ARN of the catalog."
|
|
9854
|
+
},
|
|
9855
|
+
"immutable": true,
|
|
9856
|
+
"locationInModule": {
|
|
9857
|
+
"filename": "lib/catalog.ts",
|
|
9858
|
+
"line": 395
|
|
9859
|
+
},
|
|
9860
|
+
"name": "catalogArn",
|
|
9861
|
+
"overrides": "@aws-cdk/aws-glue-alpha.CatalogBase",
|
|
9862
|
+
"type": {
|
|
9863
|
+
"primitive": "string"
|
|
9864
|
+
}
|
|
9865
|
+
},
|
|
9866
|
+
{
|
|
9867
|
+
"docs": {
|
|
9868
|
+
"stability": "experimental",
|
|
9869
|
+
"summary": "The id of the catalog (for the account-wide catalog, the AWS account id)."
|
|
9870
|
+
},
|
|
9871
|
+
"immutable": true,
|
|
9872
|
+
"locationInModule": {
|
|
9873
|
+
"filename": "lib/catalog.ts",
|
|
9874
|
+
"line": 394
|
|
9875
|
+
},
|
|
9876
|
+
"name": "catalogId",
|
|
9877
|
+
"overrides": "@aws-cdk/aws-glue-alpha.CatalogBase",
|
|
9878
|
+
"type": {
|
|
9879
|
+
"primitive": "string"
|
|
9880
|
+
}
|
|
9881
|
+
}
|
|
9882
|
+
],
|
|
9883
|
+
"symbolId": "lib/catalog:Catalog"
|
|
9884
|
+
},
|
|
9885
|
+
"@aws-cdk/aws-glue-alpha.CatalogBase": {
|
|
9886
|
+
"abstract": true,
|
|
9887
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
9888
|
+
"base": "aws-cdk-lib.Resource",
|
|
9889
|
+
"docs": {
|
|
9890
|
+
"remarks": "Materializes the single\n`CfnDataCatalogEncryptionSettings` resource (targeting its own `catalogId`)\nfrom the encryption options supplied at construction. Encryption is fixed at\nconstruction, so a catalog either carries settings or it does not.",
|
|
9891
|
+
"stability": "experimental",
|
|
9892
|
+
"summary": "Base class for all `ICatalog` implementations."
|
|
9893
|
+
},
|
|
9894
|
+
"fqn": "@aws-cdk/aws-glue-alpha.CatalogBase",
|
|
9895
|
+
"initializer": {
|
|
9896
|
+
"docs": {
|
|
9897
|
+
"stability": "stable"
|
|
9898
|
+
},
|
|
9899
|
+
"locationInModule": {
|
|
9900
|
+
"filename": "core/lib/resource.ts",
|
|
9901
|
+
"line": 125
|
|
9902
|
+
},
|
|
9903
|
+
"parameters": [
|
|
9904
|
+
{
|
|
9905
|
+
"name": "scope",
|
|
9906
|
+
"type": {
|
|
9907
|
+
"fqn": "constructs.Construct"
|
|
9908
|
+
}
|
|
9909
|
+
},
|
|
9910
|
+
{
|
|
9911
|
+
"name": "id",
|
|
9912
|
+
"type": {
|
|
9913
|
+
"primitive": "string"
|
|
9914
|
+
}
|
|
9915
|
+
},
|
|
9916
|
+
{
|
|
9917
|
+
"name": "props",
|
|
9918
|
+
"optional": true,
|
|
9919
|
+
"type": {
|
|
9920
|
+
"fqn": "aws-cdk-lib.ResourceProps"
|
|
9921
|
+
}
|
|
9922
|
+
}
|
|
9923
|
+
]
|
|
9924
|
+
},
|
|
9925
|
+
"interfaces": [
|
|
9926
|
+
"@aws-cdk/aws-glue-alpha.ICatalog"
|
|
9927
|
+
],
|
|
9928
|
+
"kind": "class",
|
|
9929
|
+
"locationInModule": {
|
|
9930
|
+
"filename": "lib/catalog.ts",
|
|
9931
|
+
"line": 194
|
|
9932
|
+
},
|
|
9933
|
+
"methods": [
|
|
9934
|
+
{
|
|
9935
|
+
"docs": {
|
|
9936
|
+
"remarks": "Subclasses call this once, after `catalogId`/`catalogArn` are\nassigned. When neither block is configured, no resource is emitted, avoiding\nan empty settings resource that would reset the catalog on deploy.",
|
|
9937
|
+
"stability": "experimental",
|
|
9938
|
+
"summary": "Emit the catalog's encryption settings from the options fixed at construction."
|
|
9939
|
+
},
|
|
9940
|
+
"locationInModule": {
|
|
9941
|
+
"filename": "lib/catalog.ts",
|
|
9942
|
+
"line": 221
|
|
9943
|
+
},
|
|
9944
|
+
"name": "configureEncryption",
|
|
9945
|
+
"parameters": [
|
|
9946
|
+
{
|
|
9947
|
+
"name": "options",
|
|
9948
|
+
"type": {
|
|
9949
|
+
"fqn": "@aws-cdk/aws-glue-alpha.CatalogEncryptionOptions"
|
|
9950
|
+
}
|
|
9951
|
+
}
|
|
9952
|
+
],
|
|
9953
|
+
"protected": true
|
|
9954
|
+
}
|
|
9955
|
+
],
|
|
9956
|
+
"name": "CatalogBase",
|
|
9957
|
+
"properties": [
|
|
9958
|
+
{
|
|
9959
|
+
"abstract": true,
|
|
9960
|
+
"docs": {
|
|
9961
|
+
"stability": "experimental",
|
|
9962
|
+
"summary": "The ARN of the catalog."
|
|
9963
|
+
},
|
|
9964
|
+
"immutable": true,
|
|
9965
|
+
"locationInModule": {
|
|
9966
|
+
"filename": "lib/catalog.ts",
|
|
9967
|
+
"line": 196
|
|
9968
|
+
},
|
|
9969
|
+
"name": "catalogArn",
|
|
9970
|
+
"overrides": "@aws-cdk/aws-glue-alpha.ICatalog",
|
|
9971
|
+
"type": {
|
|
9972
|
+
"primitive": "string"
|
|
9973
|
+
}
|
|
9974
|
+
},
|
|
9975
|
+
{
|
|
9976
|
+
"abstract": true,
|
|
9977
|
+
"docs": {
|
|
9978
|
+
"stability": "experimental",
|
|
9979
|
+
"summary": "The id of the catalog (for the account-wide catalog, the AWS account id)."
|
|
9980
|
+
},
|
|
9981
|
+
"immutable": true,
|
|
9982
|
+
"locationInModule": {
|
|
9983
|
+
"filename": "lib/catalog.ts",
|
|
9984
|
+
"line": 195
|
|
9985
|
+
},
|
|
9986
|
+
"name": "catalogId",
|
|
9987
|
+
"overrides": "@aws-cdk/aws-glue-alpha.ICatalog",
|
|
9988
|
+
"type": {
|
|
9989
|
+
"primitive": "string"
|
|
9990
|
+
}
|
|
9991
|
+
},
|
|
9992
|
+
{
|
|
9993
|
+
"docs": {
|
|
9994
|
+
"stability": "experimental",
|
|
9995
|
+
"summary": "A reference to a Catalog resource."
|
|
9996
|
+
},
|
|
9997
|
+
"immutable": true,
|
|
9998
|
+
"locationInModule": {
|
|
9999
|
+
"filename": "lib/catalog.ts",
|
|
10000
|
+
"line": 209
|
|
10001
|
+
},
|
|
10002
|
+
"name": "catalogRef",
|
|
10003
|
+
"overrides": "aws-cdk-lib.interfaces.aws_glue.ICatalogRef",
|
|
10004
|
+
"type": {
|
|
10005
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.CatalogReference"
|
|
10006
|
+
}
|
|
10007
|
+
},
|
|
10008
|
+
{
|
|
10009
|
+
"docs": {
|
|
10010
|
+
"remarks": "Undefined when password encryption uses an AWS-managed key or is not\nconfigured. Grant access to it via `KeyGrants`, e.g.\n`if (catalog.connectionPasswordKey) { KeyGrants.fromKey(catalog.connectionPasswordKey).encrypt(grantee); }`.",
|
|
10011
|
+
"stability": "experimental",
|
|
10012
|
+
"summary": "The customer-managed KMS key used to encrypt connection passwords, if one was configured."
|
|
10013
|
+
},
|
|
10014
|
+
"immutable": true,
|
|
10015
|
+
"locationInModule": {
|
|
10016
|
+
"filename": "lib/catalog.ts",
|
|
10017
|
+
"line": 205
|
|
10018
|
+
},
|
|
10019
|
+
"name": "connectionPasswordKey",
|
|
10020
|
+
"optional": true,
|
|
10021
|
+
"overrides": "@aws-cdk/aws-glue-alpha.ICatalog",
|
|
10022
|
+
"type": {
|
|
10023
|
+
"fqn": "aws-cdk-lib.interfaces.aws_kms.IKeyRef"
|
|
10024
|
+
}
|
|
10025
|
+
},
|
|
10026
|
+
{
|
|
10027
|
+
"docs": {
|
|
10028
|
+
"remarks": "Undefined when encryption is disabled or an AWS-managed key is used. Grant\naccess to it via `KeyGrants`, e.g.\n`if (catalog.encryptionKey) { KeyGrants.fromKey(catalog.encryptionKey).encrypt(grantee); }`.",
|
|
10029
|
+
"stability": "experimental",
|
|
10030
|
+
"summary": "The customer-managed KMS key used for the catalog's encryption at rest, if one was configured."
|
|
10031
|
+
},
|
|
10032
|
+
"immutable": true,
|
|
10033
|
+
"locationInModule": {
|
|
10034
|
+
"filename": "lib/catalog.ts",
|
|
10035
|
+
"line": 201
|
|
10036
|
+
},
|
|
10037
|
+
"name": "encryptionKey",
|
|
10038
|
+
"optional": true,
|
|
10039
|
+
"overrides": "@aws-cdk/aws-glue-alpha.ICatalog",
|
|
10040
|
+
"type": {
|
|
10041
|
+
"fqn": "aws-cdk-lib.interfaces.aws_kms.IKeyRef"
|
|
10042
|
+
}
|
|
10043
|
+
}
|
|
10044
|
+
],
|
|
10045
|
+
"symbolId": "lib/catalog:CatalogBase"
|
|
10046
|
+
},
|
|
10047
|
+
"@aws-cdk/aws-glue-alpha.CatalogEncryptionMode": {
|
|
10048
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
10049
|
+
"docs": {
|
|
10050
|
+
"see": "https://docs.aws.amazon.com/glue/latest/webapi/API_EncryptionAtRest.html#Glue-Type-EncryptionAtRest-CatalogEncryptionMode",
|
|
10051
|
+
"stability": "experimental",
|
|
10052
|
+
"summary": "The encryption-at-rest mode for a Glue Data Catalog."
|
|
10053
|
+
},
|
|
10054
|
+
"fqn": "@aws-cdk/aws-glue-alpha.CatalogEncryptionMode",
|
|
10055
|
+
"kind": "enum",
|
|
10056
|
+
"locationInModule": {
|
|
10057
|
+
"filename": "lib/catalog.ts",
|
|
10058
|
+
"line": 18
|
|
10059
|
+
},
|
|
10060
|
+
"members": [
|
|
10061
|
+
{
|
|
10062
|
+
"docs": {
|
|
10063
|
+
"stability": "experimental",
|
|
10064
|
+
"summary": "Encryption at rest is disabled."
|
|
10065
|
+
},
|
|
10066
|
+
"name": "DISABLED"
|
|
10067
|
+
},
|
|
10068
|
+
{
|
|
10069
|
+
"docs": {
|
|
10070
|
+
"stability": "experimental",
|
|
10071
|
+
"summary": "Server-side encryption (SSE) with an AWS KMS key."
|
|
10072
|
+
},
|
|
10073
|
+
"name": "SSE_KMS"
|
|
10074
|
+
},
|
|
10075
|
+
{
|
|
10076
|
+
"docs": {
|
|
10077
|
+
"stability": "experimental",
|
|
10078
|
+
"summary": "Server-side encryption (SSE) with an AWS KMS key, using a service role that AWS Glue assumes to access the key on your behalf."
|
|
10079
|
+
},
|
|
10080
|
+
"name": "SSE_KMS_WITH_SERVICE_ROLE"
|
|
10081
|
+
}
|
|
10082
|
+
],
|
|
10083
|
+
"name": "CatalogEncryptionMode",
|
|
10084
|
+
"symbolId": "lib/catalog:CatalogEncryptionMode"
|
|
10085
|
+
},
|
|
10086
|
+
"@aws-cdk/aws-glue-alpha.CatalogEncryptionOptions": {
|
|
10087
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
10088
|
+
"datatype": true,
|
|
10089
|
+
"docs": {
|
|
10090
|
+
"remarks": "Encryption is fixed at construction: a catalog either carries encryption\nsettings or it does not, which keeps its configuration easy to reason about\nand avoids order-dependent mutation after the catalog is created.",
|
|
10091
|
+
"stability": "experimental",
|
|
10092
|
+
"summary": "Encryption configuration for a Glue Data Catalog.",
|
|
10093
|
+
"example": "import * 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});",
|
|
10094
|
+
"custom": {
|
|
10095
|
+
"exampleMetadata": "infused"
|
|
10096
|
+
}
|
|
10097
|
+
},
|
|
10098
|
+
"fqn": "@aws-cdk/aws-glue-alpha.CatalogEncryptionOptions",
|
|
10099
|
+
"kind": "interface",
|
|
10100
|
+
"locationInModule": {
|
|
10101
|
+
"filename": "lib/catalog.ts",
|
|
10102
|
+
"line": 134
|
|
10103
|
+
},
|
|
10104
|
+
"name": "CatalogEncryptionOptions",
|
|
10105
|
+
"properties": [
|
|
10106
|
+
{
|
|
10107
|
+
"abstract": true,
|
|
10108
|
+
"docs": {
|
|
10109
|
+
"default": "- connection-password encryption is not managed by CDK",
|
|
10110
|
+
"stability": "experimental",
|
|
10111
|
+
"summary": "Connection-password encryption configuration for the catalog."
|
|
10112
|
+
},
|
|
10113
|
+
"immutable": true,
|
|
10114
|
+
"locationInModule": {
|
|
10115
|
+
"filename": "lib/catalog.ts",
|
|
10116
|
+
"line": 147
|
|
10117
|
+
},
|
|
10118
|
+
"name": "connectionPasswordEncryption",
|
|
10119
|
+
"optional": true,
|
|
10120
|
+
"type": {
|
|
10121
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ConnectionPasswordEncryption"
|
|
10122
|
+
}
|
|
10123
|
+
},
|
|
10124
|
+
{
|
|
10125
|
+
"abstract": true,
|
|
10126
|
+
"docs": {
|
|
10127
|
+
"default": "- encryption at rest is not managed by CDK (the catalog default applies)",
|
|
10128
|
+
"stability": "experimental",
|
|
10129
|
+
"summary": "Encryption-at-rest configuration for the catalog."
|
|
10130
|
+
},
|
|
10131
|
+
"immutable": true,
|
|
10132
|
+
"locationInModule": {
|
|
10133
|
+
"filename": "lib/catalog.ts",
|
|
10134
|
+
"line": 140
|
|
10135
|
+
},
|
|
10136
|
+
"name": "encryptionAtRest",
|
|
10137
|
+
"optional": true,
|
|
10138
|
+
"type": {
|
|
10139
|
+
"fqn": "@aws-cdk/aws-glue-alpha.DataCatalogEncryptionAtRest"
|
|
10140
|
+
}
|
|
10141
|
+
}
|
|
10142
|
+
],
|
|
10143
|
+
"symbolId": "lib/catalog:CatalogEncryptionOptions"
|
|
10144
|
+
},
|
|
10145
|
+
"@aws-cdk/aws-glue-alpha.CatalogProps": {
|
|
10146
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
10147
|
+
"datatype": true,
|
|
10148
|
+
"docs": {
|
|
10149
|
+
"stability": "experimental",
|
|
10150
|
+
"summary": "Construction properties for a `Catalog`.",
|
|
10151
|
+
"example": "new glue.Catalog(this, 'MyCatalog', {\n catalogName: 'my-catalog',\n description: 'my catalog description',\n});",
|
|
10152
|
+
"custom": {
|
|
10153
|
+
"exampleMetadata": "infused"
|
|
10154
|
+
}
|
|
10155
|
+
},
|
|
10156
|
+
"fqn": "@aws-cdk/aws-glue-alpha.CatalogProps",
|
|
10157
|
+
"interfaces": [
|
|
10158
|
+
"@aws-cdk/aws-glue-alpha.CatalogEncryptionOptions"
|
|
10159
|
+
],
|
|
10160
|
+
"kind": "interface",
|
|
10161
|
+
"locationInModule": {
|
|
10162
|
+
"filename": "lib/catalog.ts",
|
|
10163
|
+
"line": 268
|
|
10164
|
+
},
|
|
10165
|
+
"name": "CatalogProps",
|
|
10166
|
+
"properties": [
|
|
10167
|
+
{
|
|
10168
|
+
"abstract": true,
|
|
10169
|
+
"docs": {
|
|
10170
|
+
"stability": "experimental",
|
|
10171
|
+
"summary": "The name of the catalog."
|
|
10172
|
+
},
|
|
10173
|
+
"immutable": true,
|
|
10174
|
+
"locationInModule": {
|
|
10175
|
+
"filename": "lib/catalog.ts",
|
|
10176
|
+
"line": 272
|
|
10177
|
+
},
|
|
10178
|
+
"name": "catalogName",
|
|
10179
|
+
"type": {
|
|
10180
|
+
"primitive": "string"
|
|
10181
|
+
}
|
|
10182
|
+
},
|
|
10183
|
+
{
|
|
10184
|
+
"abstract": true,
|
|
10185
|
+
"docs": {
|
|
10186
|
+
"default": "- no description",
|
|
10187
|
+
"stability": "experimental",
|
|
10188
|
+
"summary": "A description of the catalog."
|
|
10189
|
+
},
|
|
10190
|
+
"immutable": true,
|
|
10191
|
+
"locationInModule": {
|
|
10192
|
+
"filename": "lib/catalog.ts",
|
|
10193
|
+
"line": 279
|
|
10194
|
+
},
|
|
10195
|
+
"name": "description",
|
|
10196
|
+
"optional": true,
|
|
10197
|
+
"type": {
|
|
10198
|
+
"primitive": "string"
|
|
10199
|
+
}
|
|
10200
|
+
}
|
|
10201
|
+
],
|
|
10202
|
+
"symbolId": "lib/catalog:CatalogProps"
|
|
10203
|
+
},
|
|
10204
|
+
"@aws-cdk/aws-glue-alpha.ClassificationString": {
|
|
10205
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
10206
|
+
"docs": {
|
|
10207
|
+
"see": "https://docs.aws.amazon.com/glue/latest/dg/add-classifier.html#classifier-built-in",
|
|
10208
|
+
"stability": "experimental",
|
|
10209
|
+
"summary": "Classification string given to tables with this data format.",
|
|
10210
|
+
"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 classificationString = glue_alpha.ClassificationString.AVRO;",
|
|
10211
|
+
"custom": {
|
|
10212
|
+
"exampleMetadata": "fixture=_generated"
|
|
10213
|
+
}
|
|
10214
|
+
},
|
|
10215
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ClassificationString",
|
|
10216
|
+
"initializer": {
|
|
10217
|
+
"docs": {
|
|
10218
|
+
"stability": "experimental"
|
|
10219
|
+
},
|
|
10220
|
+
"locationInModule": {
|
|
10221
|
+
"filename": "lib/data-format.ts",
|
|
10222
|
+
"line": 176
|
|
10223
|
+
},
|
|
10224
|
+
"parameters": [
|
|
10225
|
+
{
|
|
10226
|
+
"name": "value",
|
|
10227
|
+
"type": {
|
|
10228
|
+
"primitive": "string"
|
|
10229
|
+
}
|
|
10230
|
+
}
|
|
10231
|
+
]
|
|
10232
|
+
},
|
|
9387
10233
|
"kind": "class",
|
|
9388
10234
|
"locationInModule": {
|
|
9389
10235
|
"filename": "lib/data-format.ts",
|
|
@@ -10486,6 +11332,67 @@
|
|
|
10486
11332
|
],
|
|
10487
11333
|
"symbolId": "lib/connection:ConnectionOptions"
|
|
10488
11334
|
},
|
|
11335
|
+
"@aws-cdk/aws-glue-alpha.ConnectionPasswordEncryption": {
|
|
11336
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
11337
|
+
"datatype": true,
|
|
11338
|
+
"docs": {
|
|
11339
|
+
"remarks": "When enabled, the Data Catalog encrypts the password as part of\n`CreateConnection` or `UpdateConnection` and stores it in the\n`ENCRYPTED_PASSWORD` field of the connection properties. This is independent\nfrom catalog encryption at rest, and may use a different KMS key.",
|
|
11340
|
+
"see": "https://docs.aws.amazon.com/glue/latest/webapi/API_ConnectionPasswordEncryption.html",
|
|
11341
|
+
"stability": "experimental",
|
|
11342
|
+
"summary": "Connection-password encryption configuration for a Glue Data Catalog.",
|
|
11343
|
+
"example": "declare 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});",
|
|
11344
|
+
"custom": {
|
|
11345
|
+
"exampleMetadata": "infused"
|
|
11346
|
+
}
|
|
11347
|
+
},
|
|
11348
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ConnectionPasswordEncryption",
|
|
11349
|
+
"kind": "interface",
|
|
11350
|
+
"locationInModule": {
|
|
11351
|
+
"filename": "lib/catalog.ts",
|
|
11352
|
+
"line": 110
|
|
11353
|
+
},
|
|
11354
|
+
"name": "ConnectionPasswordEncryption",
|
|
11355
|
+
"properties": [
|
|
11356
|
+
{
|
|
11357
|
+
"abstract": true,
|
|
11358
|
+
"docs": {
|
|
11359
|
+
"default": "- an AWS-managed key is used and the key is not exposed as a grantable resource.",
|
|
11360
|
+
"stability": "experimental",
|
|
11361
|
+
"summary": "The KMS key used to encrypt connection passwords."
|
|
11362
|
+
},
|
|
11363
|
+
"immutable": true,
|
|
11364
|
+
"locationInModule": {
|
|
11365
|
+
"filename": "lib/catalog.ts",
|
|
11366
|
+
"line": 116
|
|
11367
|
+
},
|
|
11368
|
+
"name": "kmsKey",
|
|
11369
|
+
"optional": true,
|
|
11370
|
+
"type": {
|
|
11371
|
+
"fqn": "aws-cdk-lib.interfaces.aws_kms.IKeyRef"
|
|
11372
|
+
}
|
|
11373
|
+
},
|
|
11374
|
+
{
|
|
11375
|
+
"abstract": true,
|
|
11376
|
+
"docs": {
|
|
11377
|
+
"default": "true",
|
|
11378
|
+
"remarks": "This takes effect independently from catalog encryption.",
|
|
11379
|
+
"stability": "experimental",
|
|
11380
|
+
"summary": "Whether passwords remain encrypted in the responses of `GetConnection` and `GetConnections`."
|
|
11381
|
+
},
|
|
11382
|
+
"immutable": true,
|
|
11383
|
+
"locationInModule": {
|
|
11384
|
+
"filename": "lib/catalog.ts",
|
|
11385
|
+
"line": 124
|
|
11386
|
+
},
|
|
11387
|
+
"name": "returnConnectionPasswordEncrypted",
|
|
11388
|
+
"optional": true,
|
|
11389
|
+
"type": {
|
|
11390
|
+
"primitive": "boolean"
|
|
11391
|
+
}
|
|
11392
|
+
}
|
|
11393
|
+
],
|
|
11394
|
+
"symbolId": "lib/catalog:ConnectionPasswordEncryption"
|
|
11395
|
+
},
|
|
10489
11396
|
"@aws-cdk/aws-glue-alpha.ConnectionProps": {
|
|
10490
11397
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
10491
11398
|
"datatype": true,
|
|
@@ -11474,66 +12381,225 @@
|
|
|
11474
12381
|
"name": "CustomScheduledTriggerOptions",
|
|
11475
12382
|
"properties": [
|
|
11476
12383
|
{
|
|
11477
|
-
"abstract": true,
|
|
12384
|
+
"abstract": true,
|
|
12385
|
+
"docs": {
|
|
12386
|
+
"stability": "experimental",
|
|
12387
|
+
"summary": "The custom schedule for the trigger."
|
|
12388
|
+
},
|
|
12389
|
+
"immutable": true,
|
|
12390
|
+
"locationInModule": {
|
|
12391
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
12392
|
+
"line": 207
|
|
12393
|
+
},
|
|
12394
|
+
"name": "schedule",
|
|
12395
|
+
"type": {
|
|
12396
|
+
"fqn": "@aws-cdk/aws-glue-alpha.TriggerSchedule"
|
|
12397
|
+
}
|
|
12398
|
+
}
|
|
12399
|
+
],
|
|
12400
|
+
"symbolId": "lib/triggers/trigger-options:CustomScheduledTriggerOptions"
|
|
12401
|
+
},
|
|
12402
|
+
"@aws-cdk/aws-glue-alpha.DailyScheduleTriggerOptions": {
|
|
12403
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
12404
|
+
"datatype": true,
|
|
12405
|
+
"docs": {
|
|
12406
|
+
"stability": "experimental",
|
|
12407
|
+
"summary": "Properties for configuring a daily-scheduled Glue Trigger.",
|
|
12408
|
+
"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_glue as glue } from 'aws-cdk-lib';\n\ndeclare const cfnCrawler: glue.CfnCrawler;\ndeclare const job: glue_alpha.Job;\ndeclare const securityConfiguration: glue_alpha.SecurityConfiguration;\nconst dailyScheduleTriggerOptions: glue_alpha.DailyScheduleTriggerOptions = {\n actions: [{\n arguments: {\n argumentsKey: 'arguments',\n },\n crawler: cfnCrawler,\n job: job,\n securityConfiguration: securityConfiguration,\n timeout: cdk.Duration.minutes(30),\n }],\n\n // the properties below are optional\n description: 'description',\n name: 'name',\n startOnCreation: false,\n};",
|
|
12409
|
+
"custom": {
|
|
12410
|
+
"exampleMetadata": "fixture=_generated"
|
|
12411
|
+
}
|
|
12412
|
+
},
|
|
12413
|
+
"fqn": "@aws-cdk/aws-glue-alpha.DailyScheduleTriggerOptions",
|
|
12414
|
+
"interfaces": [
|
|
12415
|
+
"@aws-cdk/aws-glue-alpha.TriggerOptions"
|
|
12416
|
+
],
|
|
12417
|
+
"kind": "interface",
|
|
12418
|
+
"locationInModule": {
|
|
12419
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
12420
|
+
"line": 186
|
|
12421
|
+
},
|
|
12422
|
+
"name": "DailyScheduleTriggerOptions",
|
|
12423
|
+
"properties": [
|
|
12424
|
+
{
|
|
12425
|
+
"abstract": true,
|
|
12426
|
+
"docs": {
|
|
12427
|
+
"default": "- false",
|
|
12428
|
+
"stability": "experimental",
|
|
12429
|
+
"summary": "Whether to start the trigger on creation or not."
|
|
12430
|
+
},
|
|
12431
|
+
"immutable": true,
|
|
12432
|
+
"locationInModule": {
|
|
12433
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
12434
|
+
"line": 192
|
|
12435
|
+
},
|
|
12436
|
+
"name": "startOnCreation",
|
|
12437
|
+
"optional": true,
|
|
12438
|
+
"type": {
|
|
12439
|
+
"primitive": "boolean"
|
|
12440
|
+
}
|
|
12441
|
+
}
|
|
12442
|
+
],
|
|
12443
|
+
"symbolId": "lib/triggers/trigger-options:DailyScheduleTriggerOptions"
|
|
12444
|
+
},
|
|
12445
|
+
"@aws-cdk/aws-glue-alpha.DataCatalogEncryptionAtRest": {
|
|
12446
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
12447
|
+
"docs": {
|
|
12448
|
+
"remarks": "The Data Catalog encryption at rest and the connection password encryption\nare independent: enabling one does not require the other, and each may use a\ndifferent KMS key.",
|
|
12449
|
+
"see": "https://docs.aws.amazon.com/glue/latest/webapi/API_EncryptionAtRest.html",
|
|
12450
|
+
"stability": "experimental",
|
|
12451
|
+
"summary": "Encryption-at-rest configuration for a Glue Data Catalog.",
|
|
12452
|
+
"example": "import * 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});",
|
|
12453
|
+
"custom": {
|
|
12454
|
+
"exampleMetadata": "infused"
|
|
12455
|
+
}
|
|
12456
|
+
},
|
|
12457
|
+
"fqn": "@aws-cdk/aws-glue-alpha.DataCatalogEncryptionAtRest",
|
|
12458
|
+
"kind": "class",
|
|
12459
|
+
"locationInModule": {
|
|
12460
|
+
"filename": "lib/catalog.ts",
|
|
12461
|
+
"line": 45
|
|
12462
|
+
},
|
|
12463
|
+
"methods": [
|
|
12464
|
+
{
|
|
12465
|
+
"docs": {
|
|
12466
|
+
"stability": "experimental",
|
|
12467
|
+
"summary": "Disable encryption at rest for the Data Catalog."
|
|
12468
|
+
},
|
|
12469
|
+
"locationInModule": {
|
|
12470
|
+
"filename": "lib/catalog.ts",
|
|
12471
|
+
"line": 49
|
|
12472
|
+
},
|
|
12473
|
+
"name": "disabled",
|
|
12474
|
+
"returns": {
|
|
12475
|
+
"type": {
|
|
12476
|
+
"fqn": "@aws-cdk/aws-glue-alpha.DataCatalogEncryptionAtRest"
|
|
12477
|
+
}
|
|
12478
|
+
},
|
|
12479
|
+
"static": true
|
|
12480
|
+
},
|
|
12481
|
+
{
|
|
12482
|
+
"docs": {
|
|
12483
|
+
"stability": "experimental",
|
|
12484
|
+
"summary": "Encrypt the Data Catalog at rest with an AWS KMS key."
|
|
12485
|
+
},
|
|
12486
|
+
"locationInModule": {
|
|
12487
|
+
"filename": "lib/catalog.ts",
|
|
12488
|
+
"line": 59
|
|
12489
|
+
},
|
|
12490
|
+
"name": "kms",
|
|
12491
|
+
"parameters": [
|
|
12492
|
+
{
|
|
12493
|
+
"docs": {
|
|
12494
|
+
"remarks": "If omitted, an AWS-managed key is used and\nthe key is not exposed as a grantable resource.",
|
|
12495
|
+
"summary": "the KMS key to use."
|
|
12496
|
+
},
|
|
12497
|
+
"name": "key",
|
|
12498
|
+
"optional": true,
|
|
12499
|
+
"type": {
|
|
12500
|
+
"fqn": "aws-cdk-lib.aws_kms.IKey"
|
|
12501
|
+
}
|
|
12502
|
+
}
|
|
12503
|
+
],
|
|
12504
|
+
"returns": {
|
|
12505
|
+
"type": {
|
|
12506
|
+
"fqn": "@aws-cdk/aws-glue-alpha.DataCatalogEncryptionAtRest"
|
|
12507
|
+
}
|
|
12508
|
+
},
|
|
12509
|
+
"static": true
|
|
12510
|
+
},
|
|
12511
|
+
{
|
|
12512
|
+
"docs": {
|
|
12513
|
+
"remarks": "When a customer-managed `key` is provided, the `role` is automatically\ngranted `kms:Encrypt`/`kms:Decrypt`/`kms:GenerateDataKey*` on it.",
|
|
12514
|
+
"stability": "experimental",
|
|
12515
|
+
"summary": "Encrypt the Data Catalog at rest with an AWS KMS key, accessed through a service role that AWS Glue assumes on your behalf."
|
|
12516
|
+
},
|
|
12517
|
+
"locationInModule": {
|
|
12518
|
+
"filename": "lib/catalog.ts",
|
|
12519
|
+
"line": 74
|
|
12520
|
+
},
|
|
12521
|
+
"name": "kmsWithServiceRole",
|
|
12522
|
+
"parameters": [
|
|
12523
|
+
{
|
|
12524
|
+
"docs": {
|
|
12525
|
+
"summary": "the service role that AWS Glue assumes to access the key."
|
|
12526
|
+
},
|
|
12527
|
+
"name": "role",
|
|
12528
|
+
"type": {
|
|
12529
|
+
"fqn": "aws-cdk-lib.aws_iam.IRole"
|
|
12530
|
+
}
|
|
12531
|
+
},
|
|
12532
|
+
{
|
|
12533
|
+
"docs": {
|
|
12534
|
+
"remarks": "If omitted, an AWS-managed key is used and\nthe key is not exposed as a grantable resource.",
|
|
12535
|
+
"summary": "the KMS key to use."
|
|
12536
|
+
},
|
|
12537
|
+
"name": "key",
|
|
12538
|
+
"optional": true,
|
|
12539
|
+
"type": {
|
|
12540
|
+
"fqn": "aws-cdk-lib.aws_kms.IKey"
|
|
12541
|
+
}
|
|
12542
|
+
}
|
|
12543
|
+
],
|
|
12544
|
+
"returns": {
|
|
12545
|
+
"type": {
|
|
12546
|
+
"fqn": "@aws-cdk/aws-glue-alpha.DataCatalogEncryptionAtRest"
|
|
12547
|
+
}
|
|
12548
|
+
},
|
|
12549
|
+
"static": true
|
|
12550
|
+
}
|
|
12551
|
+
],
|
|
12552
|
+
"name": "DataCatalogEncryptionAtRest",
|
|
12553
|
+
"properties": [
|
|
12554
|
+
{
|
|
12555
|
+
"docs": {
|
|
12556
|
+
"stability": "experimental",
|
|
12557
|
+
"summary": "The encryption mode."
|
|
12558
|
+
},
|
|
12559
|
+
"immutable": true,
|
|
12560
|
+
"locationInModule": {
|
|
12561
|
+
"filename": "lib/catalog.ts",
|
|
12562
|
+
"line": 81
|
|
12563
|
+
},
|
|
12564
|
+
"name": "mode",
|
|
12565
|
+
"type": {
|
|
12566
|
+
"fqn": "@aws-cdk/aws-glue-alpha.CatalogEncryptionMode"
|
|
12567
|
+
}
|
|
12568
|
+
},
|
|
12569
|
+
{
|
|
11478
12570
|
"docs": {
|
|
11479
12571
|
"stability": "experimental",
|
|
11480
|
-
"summary": "The
|
|
12572
|
+
"summary": "The customer-managed KMS key used for encryption at rest, if any."
|
|
11481
12573
|
},
|
|
11482
12574
|
"immutable": true,
|
|
11483
12575
|
"locationInModule": {
|
|
11484
|
-
"filename": "lib/
|
|
11485
|
-
"line":
|
|
12576
|
+
"filename": "lib/catalog.ts",
|
|
12577
|
+
"line": 86
|
|
11486
12578
|
},
|
|
11487
|
-
"name": "
|
|
12579
|
+
"name": "kmsKey",
|
|
12580
|
+
"optional": true,
|
|
11488
12581
|
"type": {
|
|
11489
|
-
"fqn": "
|
|
12582
|
+
"fqn": "aws-cdk-lib.interfaces.aws_kms.IKeyRef"
|
|
11490
12583
|
}
|
|
11491
|
-
}
|
|
11492
|
-
],
|
|
11493
|
-
"symbolId": "lib/triggers/trigger-options:CustomScheduledTriggerOptions"
|
|
11494
|
-
},
|
|
11495
|
-
"@aws-cdk/aws-glue-alpha.DailyScheduleTriggerOptions": {
|
|
11496
|
-
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
11497
|
-
"datatype": true,
|
|
11498
|
-
"docs": {
|
|
11499
|
-
"stability": "experimental",
|
|
11500
|
-
"summary": "Properties for configuring a daily-scheduled Glue Trigger.",
|
|
11501
|
-
"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_glue as glue } from 'aws-cdk-lib';\n\ndeclare const cfnCrawler: glue.CfnCrawler;\ndeclare const job: glue_alpha.Job;\ndeclare const securityConfiguration: glue_alpha.SecurityConfiguration;\nconst dailyScheduleTriggerOptions: glue_alpha.DailyScheduleTriggerOptions = {\n actions: [{\n arguments: {\n argumentsKey: 'arguments',\n },\n crawler: cfnCrawler,\n job: job,\n securityConfiguration: securityConfiguration,\n timeout: cdk.Duration.minutes(30),\n }],\n\n // the properties below are optional\n description: 'description',\n name: 'name',\n startOnCreation: false,\n};",
|
|
11502
|
-
"custom": {
|
|
11503
|
-
"exampleMetadata": "fixture=_generated"
|
|
11504
|
-
}
|
|
11505
|
-
},
|
|
11506
|
-
"fqn": "@aws-cdk/aws-glue-alpha.DailyScheduleTriggerOptions",
|
|
11507
|
-
"interfaces": [
|
|
11508
|
-
"@aws-cdk/aws-glue-alpha.TriggerOptions"
|
|
11509
|
-
],
|
|
11510
|
-
"kind": "interface",
|
|
11511
|
-
"locationInModule": {
|
|
11512
|
-
"filename": "lib/triggers/trigger-options.ts",
|
|
11513
|
-
"line": 186
|
|
11514
|
-
},
|
|
11515
|
-
"name": "DailyScheduleTriggerOptions",
|
|
11516
|
-
"properties": [
|
|
12584
|
+
},
|
|
11517
12585
|
{
|
|
11518
|
-
"abstract": true,
|
|
11519
12586
|
"docs": {
|
|
11520
|
-
"default": "- false",
|
|
11521
12587
|
"stability": "experimental",
|
|
11522
|
-
"summary": "
|
|
12588
|
+
"summary": "The service role that AWS Glue assumes to access the KMS key, if any."
|
|
11523
12589
|
},
|
|
11524
12590
|
"immutable": true,
|
|
11525
12591
|
"locationInModule": {
|
|
11526
|
-
"filename": "lib/
|
|
11527
|
-
"line":
|
|
12592
|
+
"filename": "lib/catalog.ts",
|
|
12593
|
+
"line": 91
|
|
11528
12594
|
},
|
|
11529
|
-
"name": "
|
|
12595
|
+
"name": "serviceRole",
|
|
11530
12596
|
"optional": true,
|
|
11531
12597
|
"type": {
|
|
11532
|
-
"
|
|
12598
|
+
"fqn": "aws-cdk-lib.aws_iam.IRole"
|
|
11533
12599
|
}
|
|
11534
12600
|
}
|
|
11535
12601
|
],
|
|
11536
|
-
"symbolId": "lib/
|
|
12602
|
+
"symbolId": "lib/catalog:DataCatalogEncryptionAtRest"
|
|
11537
12603
|
},
|
|
11538
12604
|
"@aws-cdk/aws-glue-alpha.DataFormat": {
|
|
11539
12605
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
@@ -12296,7 +13362,7 @@
|
|
|
12296
13362
|
},
|
|
12297
13363
|
"locationInModule": {
|
|
12298
13364
|
"filename": "lib/database.ts",
|
|
12299
|
-
"line":
|
|
13365
|
+
"line": 99
|
|
12300
13366
|
},
|
|
12301
13367
|
"parameters": [
|
|
12302
13368
|
{
|
|
@@ -12326,7 +13392,7 @@
|
|
|
12326
13392
|
"kind": "class",
|
|
12327
13393
|
"locationInModule": {
|
|
12328
13394
|
"filename": "lib/database.ts",
|
|
12329
|
-
"line":
|
|
13395
|
+
"line": 67
|
|
12330
13396
|
},
|
|
12331
13397
|
"methods": [
|
|
12332
13398
|
{
|
|
@@ -12335,7 +13401,7 @@
|
|
|
12335
13401
|
},
|
|
12336
13402
|
"locationInModule": {
|
|
12337
13403
|
"filename": "lib/database.ts",
|
|
12338
|
-
"line":
|
|
13404
|
+
"line": 72
|
|
12339
13405
|
},
|
|
12340
13406
|
"name": "fromDatabaseArn",
|
|
12341
13407
|
"parameters": [
|
|
@@ -12377,7 +13443,7 @@
|
|
|
12377
13443
|
"immutable": true,
|
|
12378
13444
|
"locationInModule": {
|
|
12379
13445
|
"filename": "lib/database.ts",
|
|
12380
|
-
"line":
|
|
13446
|
+
"line": 70
|
|
12381
13447
|
},
|
|
12382
13448
|
"name": "PROPERTY_INJECTION_ID",
|
|
12383
13449
|
"static": true,
|
|
@@ -12387,34 +13453,19 @@
|
|
|
12387
13453
|
},
|
|
12388
13454
|
{
|
|
12389
13455
|
"docs": {
|
|
13456
|
+
"remarks": "Defaults to the implicit, account-wide catalog, materialized on first\naccess.",
|
|
12390
13457
|
"stability": "experimental",
|
|
12391
|
-
"summary": "
|
|
12392
|
-
},
|
|
12393
|
-
"immutable": true,
|
|
12394
|
-
"locationInModule": {
|
|
12395
|
-
"filename": "lib/database.ts",
|
|
12396
|
-
"line": 83
|
|
12397
|
-
},
|
|
12398
|
-
"name": "catalogArn",
|
|
12399
|
-
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
12400
|
-
"type": {
|
|
12401
|
-
"primitive": "string"
|
|
12402
|
-
}
|
|
12403
|
-
},
|
|
12404
|
-
{
|
|
12405
|
-
"docs": {
|
|
12406
|
-
"stability": "experimental",
|
|
12407
|
-
"summary": "The catalog id of the database (usually, the AWS account id)."
|
|
13458
|
+
"summary": "The catalog this database belongs to."
|
|
12408
13459
|
},
|
|
12409
13460
|
"immutable": true,
|
|
12410
13461
|
"locationInModule": {
|
|
12411
13462
|
"filename": "lib/database.ts",
|
|
12412
|
-
"line":
|
|
13463
|
+
"line": 145
|
|
12413
13464
|
},
|
|
12414
|
-
"name": "
|
|
13465
|
+
"name": "catalog",
|
|
12415
13466
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
12416
13467
|
"type": {
|
|
12417
|
-
"
|
|
13468
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ICatalog"
|
|
12418
13469
|
}
|
|
12419
13470
|
},
|
|
12420
13471
|
{
|
|
@@ -12425,7 +13476,7 @@
|
|
|
12425
13476
|
"immutable": true,
|
|
12426
13477
|
"locationInModule": {
|
|
12427
13478
|
"filename": "lib/database.ts",
|
|
12428
|
-
"line":
|
|
13479
|
+
"line": 155
|
|
12429
13480
|
},
|
|
12430
13481
|
"name": "databaseArn",
|
|
12431
13482
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
@@ -12441,7 +13492,7 @@
|
|
|
12441
13492
|
"immutable": true,
|
|
12442
13493
|
"locationInModule": {
|
|
12443
13494
|
"filename": "lib/database.ts",
|
|
12444
|
-
"line":
|
|
13495
|
+
"line": 150
|
|
12445
13496
|
},
|
|
12446
13497
|
"name": "databaseName",
|
|
12447
13498
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
@@ -12481,10 +13532,28 @@
|
|
|
12481
13532
|
"kind": "interface",
|
|
12482
13533
|
"locationInModule": {
|
|
12483
13534
|
"filename": "lib/database.ts",
|
|
12484
|
-
"line":
|
|
13535
|
+
"line": 33
|
|
12485
13536
|
},
|
|
12486
13537
|
"name": "DatabaseProps",
|
|
12487
13538
|
"properties": [
|
|
13539
|
+
{
|
|
13540
|
+
"abstract": true,
|
|
13541
|
+
"docs": {
|
|
13542
|
+
"default": "The default, account-wide catalog.",
|
|
13543
|
+
"stability": "experimental",
|
|
13544
|
+
"summary": "The catalog in which the database will be placed."
|
|
13545
|
+
},
|
|
13546
|
+
"immutable": true,
|
|
13547
|
+
"locationInModule": {
|
|
13548
|
+
"filename": "lib/database.ts",
|
|
13549
|
+
"line": 61
|
|
13550
|
+
},
|
|
13551
|
+
"name": "catalog",
|
|
13552
|
+
"optional": true,
|
|
13553
|
+
"type": {
|
|
13554
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ICatalog"
|
|
13555
|
+
}
|
|
13556
|
+
},
|
|
12488
13557
|
{
|
|
12489
13558
|
"abstract": true,
|
|
12490
13559
|
"docs": {
|
|
@@ -12495,7 +13564,7 @@
|
|
|
12495
13564
|
"immutable": true,
|
|
12496
13565
|
"locationInModule": {
|
|
12497
13566
|
"filename": "lib/database.ts",
|
|
12498
|
-
"line":
|
|
13567
|
+
"line": 39
|
|
12499
13568
|
},
|
|
12500
13569
|
"name": "databaseName",
|
|
12501
13570
|
"optional": true,
|
|
@@ -12513,7 +13582,7 @@
|
|
|
12513
13582
|
"immutable": true,
|
|
12514
13583
|
"locationInModule": {
|
|
12515
13584
|
"filename": "lib/database.ts",
|
|
12516
|
-
"line":
|
|
13585
|
+
"line": 54
|
|
12517
13586
|
},
|
|
12518
13587
|
"name": "description",
|
|
12519
13588
|
"optional": true,
|
|
@@ -12532,7 +13601,7 @@
|
|
|
12532
13601
|
"immutable": true,
|
|
12533
13602
|
"locationInModule": {
|
|
12534
13603
|
"filename": "lib/database.ts",
|
|
12535
|
-
"line":
|
|
13604
|
+
"line": 47
|
|
12536
13605
|
},
|
|
12537
13606
|
"name": "locationUri",
|
|
12538
13607
|
"optional": true,
|
|
@@ -13229,6 +14298,101 @@
|
|
|
13229
14298
|
"name": "GlueVersion",
|
|
13230
14299
|
"symbolId": "lib/constants:GlueVersion"
|
|
13231
14300
|
},
|
|
14301
|
+
"@aws-cdk/aws-glue-alpha.ICatalog": {
|
|
14302
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
14303
|
+
"docs": {
|
|
14304
|
+
"stability": "experimental",
|
|
14305
|
+
"summary": "A Glue Data Catalog, either the implicit account-wide catalog or one created as an `AWS::Glue::Catalog` resource."
|
|
14306
|
+
},
|
|
14307
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ICatalog",
|
|
14308
|
+
"interfaces": [
|
|
14309
|
+
"aws-cdk-lib.IResource",
|
|
14310
|
+
"aws-cdk-lib.interfaces.aws_glue.ICatalogRef"
|
|
14311
|
+
],
|
|
14312
|
+
"kind": "interface",
|
|
14313
|
+
"locationInModule": {
|
|
14314
|
+
"filename": "lib/catalog.ts",
|
|
14315
|
+
"line": 154
|
|
14316
|
+
},
|
|
14317
|
+
"name": "ICatalog",
|
|
14318
|
+
"properties": [
|
|
14319
|
+
{
|
|
14320
|
+
"abstract": true,
|
|
14321
|
+
"docs": {
|
|
14322
|
+
"custom": {
|
|
14323
|
+
"attribute": "true"
|
|
14324
|
+
},
|
|
14325
|
+
"stability": "experimental",
|
|
14326
|
+
"summary": "The ARN of the catalog."
|
|
14327
|
+
},
|
|
14328
|
+
"immutable": true,
|
|
14329
|
+
"locationInModule": {
|
|
14330
|
+
"filename": "lib/catalog.ts",
|
|
14331
|
+
"line": 165
|
|
14332
|
+
},
|
|
14333
|
+
"name": "catalogArn",
|
|
14334
|
+
"type": {
|
|
14335
|
+
"primitive": "string"
|
|
14336
|
+
}
|
|
14337
|
+
},
|
|
14338
|
+
{
|
|
14339
|
+
"abstract": true,
|
|
14340
|
+
"docs": {
|
|
14341
|
+
"custom": {
|
|
14342
|
+
"attribute": "true"
|
|
14343
|
+
},
|
|
14344
|
+
"stability": "experimental",
|
|
14345
|
+
"summary": "The id of the catalog (for the account-wide catalog, the AWS account id)."
|
|
14346
|
+
},
|
|
14347
|
+
"immutable": true,
|
|
14348
|
+
"locationInModule": {
|
|
14349
|
+
"filename": "lib/catalog.ts",
|
|
14350
|
+
"line": 159
|
|
14351
|
+
},
|
|
14352
|
+
"name": "catalogId",
|
|
14353
|
+
"type": {
|
|
14354
|
+
"primitive": "string"
|
|
14355
|
+
}
|
|
14356
|
+
},
|
|
14357
|
+
{
|
|
14358
|
+
"abstract": true,
|
|
14359
|
+
"docs": {
|
|
14360
|
+
"remarks": "Undefined when password encryption uses an AWS-managed key or is not\nconfigured. Grant access to it via `KeyGrants`, e.g.\n`if (catalog.connectionPasswordKey) { KeyGrants.fromKey(catalog.connectionPasswordKey).encrypt(grantee); }`.",
|
|
14361
|
+
"stability": "experimental",
|
|
14362
|
+
"summary": "The customer-managed KMS key used to encrypt connection passwords, if one was configured."
|
|
14363
|
+
},
|
|
14364
|
+
"immutable": true,
|
|
14365
|
+
"locationInModule": {
|
|
14366
|
+
"filename": "lib/catalog.ts",
|
|
14367
|
+
"line": 185
|
|
14368
|
+
},
|
|
14369
|
+
"name": "connectionPasswordKey",
|
|
14370
|
+
"optional": true,
|
|
14371
|
+
"type": {
|
|
14372
|
+
"fqn": "aws-cdk-lib.interfaces.aws_kms.IKeyRef"
|
|
14373
|
+
}
|
|
14374
|
+
},
|
|
14375
|
+
{
|
|
14376
|
+
"abstract": true,
|
|
14377
|
+
"docs": {
|
|
14378
|
+
"remarks": "Undefined when encryption is disabled or an AWS-managed key is used. Grant\naccess to it via `KeyGrants`, e.g.\n`if (catalog.encryptionKey) { KeyGrants.fromKey(catalog.encryptionKey).encrypt(grantee); }`.",
|
|
14379
|
+
"stability": "experimental",
|
|
14380
|
+
"summary": "The customer-managed KMS key used for the catalog's encryption at rest, if one was configured."
|
|
14381
|
+
},
|
|
14382
|
+
"immutable": true,
|
|
14383
|
+
"locationInModule": {
|
|
14384
|
+
"filename": "lib/catalog.ts",
|
|
14385
|
+
"line": 175
|
|
14386
|
+
},
|
|
14387
|
+
"name": "encryptionKey",
|
|
14388
|
+
"optional": true,
|
|
14389
|
+
"type": {
|
|
14390
|
+
"fqn": "aws-cdk-lib.interfaces.aws_kms.IKeyRef"
|
|
14391
|
+
}
|
|
14392
|
+
}
|
|
14393
|
+
],
|
|
14394
|
+
"symbolId": "lib/catalog:ICatalog"
|
|
14395
|
+
},
|
|
13232
14396
|
"@aws-cdk/aws-glue-alpha.IConnection": {
|
|
13233
14397
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
13234
14398
|
"docs": {
|
|
@@ -13356,7 +14520,7 @@
|
|
|
13356
14520
|
"kind": "interface",
|
|
13357
14521
|
"locationInModule": {
|
|
13358
14522
|
"filename": "lib/database.ts",
|
|
13359
|
-
"line":
|
|
14523
|
+
"line": 11
|
|
13360
14524
|
},
|
|
13361
14525
|
"name": "IDatabase",
|
|
13362
14526
|
"properties": [
|
|
@@ -13364,32 +14528,16 @@
|
|
|
13364
14528
|
"abstract": true,
|
|
13365
14529
|
"docs": {
|
|
13366
14530
|
"stability": "experimental",
|
|
13367
|
-
"summary": "The
|
|
13368
|
-
},
|
|
13369
|
-
"immutable": true,
|
|
13370
|
-
"locationInModule": {
|
|
13371
|
-
"filename": "lib/database.ts",
|
|
13372
|
-
"line": 13
|
|
13373
|
-
},
|
|
13374
|
-
"name": "catalogArn",
|
|
13375
|
-
"type": {
|
|
13376
|
-
"primitive": "string"
|
|
13377
|
-
}
|
|
13378
|
-
},
|
|
13379
|
-
{
|
|
13380
|
-
"abstract": true,
|
|
13381
|
-
"docs": {
|
|
13382
|
-
"stability": "experimental",
|
|
13383
|
-
"summary": "The catalog id of the database (usually, the AWS account id)."
|
|
14531
|
+
"summary": "The catalog this database belongs to."
|
|
13384
14532
|
},
|
|
13385
14533
|
"immutable": true,
|
|
13386
14534
|
"locationInModule": {
|
|
13387
14535
|
"filename": "lib/database.ts",
|
|
13388
|
-
"line":
|
|
14536
|
+
"line": 16
|
|
13389
14537
|
},
|
|
13390
|
-
"name": "
|
|
14538
|
+
"name": "catalog",
|
|
13391
14539
|
"type": {
|
|
13392
|
-
"
|
|
14540
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ICatalog"
|
|
13393
14541
|
}
|
|
13394
14542
|
},
|
|
13395
14543
|
{
|
|
@@ -13404,7 +14552,7 @@
|
|
|
13404
14552
|
"immutable": true,
|
|
13405
14553
|
"locationInModule": {
|
|
13406
14554
|
"filename": "lib/database.ts",
|
|
13407
|
-
"line":
|
|
14555
|
+
"line": 23
|
|
13408
14556
|
},
|
|
13409
14557
|
"name": "databaseArn",
|
|
13410
14558
|
"type": {
|
|
@@ -13423,7 +14571,7 @@
|
|
|
13423
14571
|
"immutable": true,
|
|
13424
14572
|
"locationInModule": {
|
|
13425
14573
|
"filename": "lib/database.ts",
|
|
13426
|
-
"line":
|
|
14574
|
+
"line": 30
|
|
13427
14575
|
},
|
|
13428
14576
|
"name": "databaseName",
|
|
13429
14577
|
"type": {
|
|
@@ -13803,7 +14951,7 @@
|
|
|
13803
14951
|
"kind": "interface",
|
|
13804
14952
|
"locationInModule": {
|
|
13805
14953
|
"filename": "lib/table-base.ts",
|
|
13806
|
-
"line":
|
|
14954
|
+
"line": 35
|
|
13807
14955
|
},
|
|
13808
14956
|
"name": "ITable",
|
|
13809
14957
|
"properties": [
|
|
@@ -13818,7 +14966,7 @@
|
|
|
13818
14966
|
"immutable": true,
|
|
13819
14967
|
"locationInModule": {
|
|
13820
14968
|
"filename": "lib/table-base.ts",
|
|
13821
|
-
"line":
|
|
14969
|
+
"line": 39
|
|
13822
14970
|
},
|
|
13823
14971
|
"name": "tableArn",
|
|
13824
14972
|
"type": {
|
|
@@ -13836,7 +14984,7 @@
|
|
|
13836
14984
|
"immutable": true,
|
|
13837
14985
|
"locationInModule": {
|
|
13838
14986
|
"filename": "lib/table-base.ts",
|
|
13839
|
-
"line":
|
|
14987
|
+
"line": 44
|
|
13840
14988
|
},
|
|
13841
14989
|
"name": "tableName",
|
|
13842
14990
|
"type": {
|
|
@@ -15974,7 +17122,7 @@
|
|
|
15974
17122
|
"kind": "interface",
|
|
15975
17123
|
"locationInModule": {
|
|
15976
17124
|
"filename": "lib/table-base.ts",
|
|
15977
|
-
"line":
|
|
17125
|
+
"line": 20
|
|
15978
17126
|
},
|
|
15979
17127
|
"name": "PartitionIndex",
|
|
15980
17128
|
"properties": [
|
|
@@ -15988,7 +17136,7 @@
|
|
|
15988
17136
|
"immutable": true,
|
|
15989
17137
|
"locationInModule": {
|
|
15990
17138
|
"filename": "lib/table-base.ts",
|
|
15991
|
-
"line":
|
|
17139
|
+
"line": 33
|
|
15992
17140
|
},
|
|
15993
17141
|
"name": "keyNames",
|
|
15994
17142
|
"type": {
|
|
@@ -16010,7 +17158,7 @@
|
|
|
16010
17158
|
"immutable": true,
|
|
16011
17159
|
"locationInModule": {
|
|
16012
17160
|
"filename": "lib/table-base.ts",
|
|
16013
|
-
"line":
|
|
17161
|
+
"line": 26
|
|
16014
17162
|
},
|
|
16015
17163
|
"name": "indexName",
|
|
16016
17164
|
"optional": true,
|
|
@@ -21171,7 +22319,7 @@
|
|
|
21171
22319
|
"kind": "interface",
|
|
21172
22320
|
"locationInModule": {
|
|
21173
22321
|
"filename": "lib/table-base.ts",
|
|
21174
|
-
"line":
|
|
22322
|
+
"line": 47
|
|
21175
22323
|
},
|
|
21176
22324
|
"name": "TableAttributes",
|
|
21177
22325
|
"properties": [
|
|
@@ -21183,7 +22331,7 @@
|
|
|
21183
22331
|
"immutable": true,
|
|
21184
22332
|
"locationInModule": {
|
|
21185
22333
|
"filename": "lib/table-base.ts",
|
|
21186
|
-
"line":
|
|
22334
|
+
"line": 48
|
|
21187
22335
|
},
|
|
21188
22336
|
"name": "tableArn",
|
|
21189
22337
|
"type": {
|
|
@@ -21198,7 +22346,7 @@
|
|
|
21198
22346
|
"immutable": true,
|
|
21199
22347
|
"locationInModule": {
|
|
21200
22348
|
"filename": "lib/table-base.ts",
|
|
21201
|
-
"line":
|
|
22349
|
+
"line": 49
|
|
21202
22350
|
},
|
|
21203
22351
|
"name": "tableName",
|
|
21204
22352
|
"type": {
|
|
@@ -21227,7 +22375,7 @@
|
|
|
21227
22375
|
},
|
|
21228
22376
|
"locationInModule": {
|
|
21229
22377
|
"filename": "lib/table-base.ts",
|
|
21230
|
-
"line":
|
|
22378
|
+
"line": 261
|
|
21231
22379
|
},
|
|
21232
22380
|
"parameters": [
|
|
21233
22381
|
{
|
|
@@ -21256,7 +22404,7 @@
|
|
|
21256
22404
|
"kind": "class",
|
|
21257
22405
|
"locationInModule": {
|
|
21258
22406
|
"filename": "lib/table-base.ts",
|
|
21259
|
-
"line":
|
|
22407
|
+
"line": 182
|
|
21260
22408
|
},
|
|
21261
22409
|
"methods": [
|
|
21262
22410
|
{
|
|
@@ -21265,7 +22413,7 @@
|
|
|
21265
22413
|
},
|
|
21266
22414
|
"locationInModule": {
|
|
21267
22415
|
"filename": "lib/table-base.ts",
|
|
21268
|
-
"line":
|
|
22416
|
+
"line": 183
|
|
21269
22417
|
},
|
|
21270
22418
|
"name": "fromTableArn",
|
|
21271
22419
|
"parameters": [
|
|
@@ -21302,7 +22450,7 @@
|
|
|
21302
22450
|
},
|
|
21303
22451
|
"locationInModule": {
|
|
21304
22452
|
"filename": "lib/table-base.ts",
|
|
21305
|
-
"line":
|
|
22453
|
+
"line": 199
|
|
21306
22454
|
},
|
|
21307
22455
|
"name": "fromTableAttributes",
|
|
21308
22456
|
"parameters": [
|
|
@@ -21350,7 +22498,7 @@
|
|
|
21350
22498
|
},
|
|
21351
22499
|
"locationInModule": {
|
|
21352
22500
|
"filename": "lib/table-base.ts",
|
|
21353
|
-
"line":
|
|
22501
|
+
"line": 295
|
|
21354
22502
|
},
|
|
21355
22503
|
"name": "addPartitionIndex",
|
|
21356
22504
|
"parameters": [
|
|
@@ -21370,7 +22518,7 @@
|
|
|
21370
22518
|
},
|
|
21371
22519
|
"locationInModule": {
|
|
21372
22520
|
"filename": "lib/table-base.ts",
|
|
21373
|
-
"line":
|
|
22521
|
+
"line": 472
|
|
21374
22522
|
},
|
|
21375
22523
|
"name": "grant",
|
|
21376
22524
|
"parameters": [
|
|
@@ -21405,7 +22553,7 @@
|
|
|
21405
22553
|
},
|
|
21406
22554
|
"locationInModule": {
|
|
21407
22555
|
"filename": "lib/table-base.ts",
|
|
21408
|
-
"line":
|
|
22556
|
+
"line": 284
|
|
21409
22557
|
},
|
|
21410
22558
|
"name": "grantRead",
|
|
21411
22559
|
"parameters": [
|
|
@@ -21429,7 +22577,7 @@
|
|
|
21429
22577
|
},
|
|
21430
22578
|
"locationInModule": {
|
|
21431
22579
|
"filename": "lib/table-base.ts",
|
|
21432
|
-
"line":
|
|
22580
|
+
"line": 286
|
|
21433
22581
|
},
|
|
21434
22582
|
"name": "grantReadWrite",
|
|
21435
22583
|
"parameters": [
|
|
@@ -21454,7 +22602,7 @@
|
|
|
21454
22602
|
},
|
|
21455
22603
|
"locationInModule": {
|
|
21456
22604
|
"filename": "lib/table-base.ts",
|
|
21457
|
-
"line":
|
|
22605
|
+
"line": 485
|
|
21458
22606
|
},
|
|
21459
22607
|
"name": "grantToUnderlyingResources",
|
|
21460
22608
|
"parameters": [
|
|
@@ -21489,7 +22637,7 @@
|
|
|
21489
22637
|
},
|
|
21490
22638
|
"locationInModule": {
|
|
21491
22639
|
"filename": "lib/table-base.ts",
|
|
21492
|
-
"line":
|
|
22640
|
+
"line": 285
|
|
21493
22641
|
},
|
|
21494
22642
|
"name": "grantWrite",
|
|
21495
22643
|
"parameters": [
|
|
@@ -21517,7 +22665,7 @@
|
|
|
21517
22665
|
"immutable": true,
|
|
21518
22666
|
"locationInModule": {
|
|
21519
22667
|
"filename": "lib/table-base.ts",
|
|
21520
|
-
"line":
|
|
22668
|
+
"line": 231
|
|
21521
22669
|
},
|
|
21522
22670
|
"name": "columns",
|
|
21523
22671
|
"type": {
|
|
@@ -21537,7 +22685,7 @@
|
|
|
21537
22685
|
"immutable": true,
|
|
21538
22686
|
"locationInModule": {
|
|
21539
22687
|
"filename": "lib/table-base.ts",
|
|
21540
|
-
"line":
|
|
22688
|
+
"line": 221
|
|
21541
22689
|
},
|
|
21542
22690
|
"name": "compressed",
|
|
21543
22691
|
"type": {
|
|
@@ -21552,7 +22700,7 @@
|
|
|
21552
22700
|
"immutable": true,
|
|
21553
22701
|
"locationInModule": {
|
|
21554
22702
|
"filename": "lib/table-base.ts",
|
|
21555
|
-
"line":
|
|
22703
|
+
"line": 216
|
|
21556
22704
|
},
|
|
21557
22705
|
"name": "database",
|
|
21558
22706
|
"type": {
|
|
@@ -21567,7 +22715,7 @@
|
|
|
21567
22715
|
"immutable": true,
|
|
21568
22716
|
"locationInModule": {
|
|
21569
22717
|
"filename": "lib/table-base.ts",
|
|
21570
|
-
"line":
|
|
22718
|
+
"line": 226
|
|
21571
22719
|
},
|
|
21572
22720
|
"name": "dataFormat",
|
|
21573
22721
|
"type": {
|
|
@@ -21583,7 +22731,7 @@
|
|
|
21583
22731
|
"immutable": true,
|
|
21584
22732
|
"locationInModule": {
|
|
21585
22733
|
"filename": "lib/table-base.ts",
|
|
21586
|
-
"line":
|
|
22734
|
+
"line": 252
|
|
21587
22735
|
},
|
|
21588
22736
|
"name": "parameters",
|
|
21589
22737
|
"protected": true,
|
|
@@ -21604,7 +22752,7 @@
|
|
|
21604
22752
|
"immutable": true,
|
|
21605
22753
|
"locationInModule": {
|
|
21606
22754
|
"filename": "lib/table-base.ts",
|
|
21607
|
-
"line":
|
|
22755
|
+
"line": 210
|
|
21608
22756
|
},
|
|
21609
22757
|
"name": "tableArn",
|
|
21610
22758
|
"overrides": "@aws-cdk/aws-glue-alpha.ITable",
|
|
@@ -21620,7 +22768,7 @@
|
|
|
21620
22768
|
"immutable": true,
|
|
21621
22769
|
"locationInModule": {
|
|
21622
22770
|
"filename": "lib/table-base.ts",
|
|
21623
|
-
"line":
|
|
22771
|
+
"line": 209
|
|
21624
22772
|
},
|
|
21625
22773
|
"name": "tableName",
|
|
21626
22774
|
"overrides": "@aws-cdk/aws-glue-alpha.ITable",
|
|
@@ -21636,7 +22784,7 @@
|
|
|
21636
22784
|
"immutable": true,
|
|
21637
22785
|
"locationInModule": {
|
|
21638
22786
|
"filename": "lib/table-base.ts",
|
|
21639
|
-
"line":
|
|
22787
|
+
"line": 208
|
|
21640
22788
|
},
|
|
21641
22789
|
"name": "tableResource",
|
|
21642
22790
|
"protected": true,
|
|
@@ -21652,7 +22800,7 @@
|
|
|
21652
22800
|
"immutable": true,
|
|
21653
22801
|
"locationInModule": {
|
|
21654
22802
|
"filename": "lib/table-base.ts",
|
|
21655
|
-
"line":
|
|
22803
|
+
"line": 211
|
|
21656
22804
|
},
|
|
21657
22805
|
"name": "partitionIndexes",
|
|
21658
22806
|
"optional": true,
|
|
@@ -21673,7 +22821,7 @@
|
|
|
21673
22821
|
"immutable": true,
|
|
21674
22822
|
"locationInModule": {
|
|
21675
22823
|
"filename": "lib/table-base.ts",
|
|
21676
|
-
"line":
|
|
22824
|
+
"line": 236
|
|
21677
22825
|
},
|
|
21678
22826
|
"name": "partitionKeys",
|
|
21679
22827
|
"optional": true,
|
|
@@ -21694,7 +22842,7 @@
|
|
|
21694
22842
|
"immutable": true,
|
|
21695
22843
|
"locationInModule": {
|
|
21696
22844
|
"filename": "lib/table-base.ts",
|
|
21697
|
-
"line":
|
|
22845
|
+
"line": 246
|
|
21698
22846
|
},
|
|
21699
22847
|
"name": "partitionProjection",
|
|
21700
22848
|
"optional": true,
|
|
@@ -21715,7 +22863,7 @@
|
|
|
21715
22863
|
"immutable": true,
|
|
21716
22864
|
"locationInModule": {
|
|
21717
22865
|
"filename": "lib/table-base.ts",
|
|
21718
|
-
"line":
|
|
22866
|
+
"line": 241
|
|
21719
22867
|
},
|
|
21720
22868
|
"name": "storageParameters",
|
|
21721
22869
|
"optional": true,
|
|
@@ -21745,7 +22893,7 @@
|
|
|
21745
22893
|
"kind": "interface",
|
|
21746
22894
|
"locationInModule": {
|
|
21747
22895
|
"filename": "lib/table-base.ts",
|
|
21748
|
-
"line":
|
|
22896
|
+
"line": 52
|
|
21749
22897
|
},
|
|
21750
22898
|
"name": "TableBaseProps",
|
|
21751
22899
|
"properties": [
|
|
@@ -21758,7 +22906,7 @@
|
|
|
21758
22906
|
"immutable": true,
|
|
21759
22907
|
"locationInModule": {
|
|
21760
22908
|
"filename": "lib/table-base.ts",
|
|
21761
|
-
"line":
|
|
22909
|
+
"line": 75
|
|
21762
22910
|
},
|
|
21763
22911
|
"name": "columns",
|
|
21764
22912
|
"type": {
|
|
@@ -21779,7 +22927,7 @@
|
|
|
21779
22927
|
"immutable": true,
|
|
21780
22928
|
"locationInModule": {
|
|
21781
22929
|
"filename": "lib/table-base.ts",
|
|
21782
|
-
"line":
|
|
22930
|
+
"line": 70
|
|
21783
22931
|
},
|
|
21784
22932
|
"name": "database",
|
|
21785
22933
|
"type": {
|
|
@@ -21795,7 +22943,7 @@
|
|
|
21795
22943
|
"immutable": true,
|
|
21796
22944
|
"locationInModule": {
|
|
21797
22945
|
"filename": "lib/table-base.ts",
|
|
21798
|
-
"line":
|
|
22946
|
+
"line": 96
|
|
21799
22947
|
},
|
|
21800
22948
|
"name": "dataFormat",
|
|
21801
22949
|
"type": {
|
|
@@ -21812,7 +22960,7 @@
|
|
|
21812
22960
|
"immutable": true,
|
|
21813
22961
|
"locationInModule": {
|
|
21814
22962
|
"filename": "lib/table-base.ts",
|
|
21815
|
-
"line":
|
|
22963
|
+
"line": 103
|
|
21816
22964
|
},
|
|
21817
22965
|
"name": "compressed",
|
|
21818
22966
|
"optional": true,
|
|
@@ -21830,7 +22978,7 @@
|
|
|
21830
22978
|
"immutable": true,
|
|
21831
22979
|
"locationInModule": {
|
|
21832
22980
|
"filename": "lib/table-base.ts",
|
|
21833
|
-
"line":
|
|
22981
|
+
"line": 65
|
|
21834
22982
|
},
|
|
21835
22983
|
"name": "description",
|
|
21836
22984
|
"optional": true,
|
|
@@ -21849,7 +22997,7 @@
|
|
|
21849
22997
|
"immutable": true,
|
|
21850
22998
|
"locationInModule": {
|
|
21851
22999
|
"filename": "lib/table-base.ts",
|
|
21852
|
-
"line":
|
|
23000
|
+
"line": 119
|
|
21853
23001
|
},
|
|
21854
23002
|
"name": "enablePartitionFiltering",
|
|
21855
23003
|
"optional": true,
|
|
@@ -21869,7 +23017,7 @@
|
|
|
21869
23017
|
"immutable": true,
|
|
21870
23018
|
"locationInModule": {
|
|
21871
23019
|
"filename": "lib/table-base.ts",
|
|
21872
|
-
"line":
|
|
23020
|
+
"line": 164
|
|
21873
23021
|
},
|
|
21874
23022
|
"name": "parameters",
|
|
21875
23023
|
"optional": true,
|
|
@@ -21893,7 +23041,7 @@
|
|
|
21893
23041
|
"immutable": true,
|
|
21894
23042
|
"locationInModule": {
|
|
21895
23043
|
"filename": "lib/table-base.ts",
|
|
21896
|
-
"line":
|
|
23044
|
+
"line": 91
|
|
21897
23045
|
},
|
|
21898
23046
|
"name": "partitionIndexes",
|
|
21899
23047
|
"optional": true,
|
|
@@ -21916,7 +23064,7 @@
|
|
|
21916
23064
|
"immutable": true,
|
|
21917
23065
|
"locationInModule": {
|
|
21918
23066
|
"filename": "lib/table-base.ts",
|
|
21919
|
-
"line":
|
|
23067
|
+
"line": 82
|
|
21920
23068
|
},
|
|
21921
23069
|
"name": "partitionKeys",
|
|
21922
23070
|
"optional": true,
|
|
@@ -21941,7 +23089,7 @@
|
|
|
21941
23089
|
"immutable": true,
|
|
21942
23090
|
"locationInModule": {
|
|
21943
23091
|
"filename": "lib/table-base.ts",
|
|
21944
|
-
"line":
|
|
23092
|
+
"line": 176
|
|
21945
23093
|
},
|
|
21946
23094
|
"name": "partitionProjection",
|
|
21947
23095
|
"optional": true,
|
|
@@ -21967,7 +23115,7 @@
|
|
|
21967
23115
|
"immutable": true,
|
|
21968
23116
|
"locationInModule": {
|
|
21969
23117
|
"filename": "lib/table-base.ts",
|
|
21970
|
-
"line":
|
|
23118
|
+
"line": 154
|
|
21971
23119
|
},
|
|
21972
23120
|
"name": "storageParameters",
|
|
21973
23121
|
"optional": true,
|
|
@@ -21990,7 +23138,7 @@
|
|
|
21990
23138
|
"immutable": true,
|
|
21991
23139
|
"locationInModule": {
|
|
21992
23140
|
"filename": "lib/table-base.ts",
|
|
21993
|
-
"line":
|
|
23141
|
+
"line": 110
|
|
21994
23142
|
},
|
|
21995
23143
|
"name": "storedAsSubDirectories",
|
|
21996
23144
|
"optional": true,
|
|
@@ -22008,7 +23156,7 @@
|
|
|
22008
23156
|
"immutable": true,
|
|
22009
23157
|
"locationInModule": {
|
|
22010
23158
|
"filename": "lib/table-base.ts",
|
|
22011
|
-
"line":
|
|
23159
|
+
"line": 58
|
|
22012
23160
|
},
|
|
22013
23161
|
"name": "tableName",
|
|
22014
23162
|
"optional": true,
|
|
@@ -23259,6 +24407,6 @@
|
|
|
23259
24407
|
"symbolId": "lib/storage-parameter:WriteParallel"
|
|
23260
24408
|
}
|
|
23261
24409
|
},
|
|
23262
|
-
"version": "2.
|
|
24410
|
+
"version": "2.264.0-alpha.0",
|
|
23263
24411
|
"fingerprint": "**********"
|
|
23264
24412
|
}
|