@aws-cdk/aws-glue-alpha 2.268.0-alpha.0 → 2.269.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 +1086 -878
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +1 -79
- package/README.md +101 -29
- package/adr/job-arguments.md +212 -0
- package/lib/catalog.js +3 -3
- package/lib/code.js +3 -3
- package/lib/connection.d.ts +44 -29
- package/lib/connection.js +66 -32
- package/lib/constants.d.ts +17 -0
- package/lib/constants.js +20 -2
- package/lib/data-format.js +5 -5
- package/lib/data-quality-ruleset.js +3 -3
- package/lib/database.js +1 -1
- package/lib/external-table.js +1 -1
- package/lib/jobs/job.d.ts +90 -9
- package/lib/jobs/job.js +115 -38
- package/lib/jobs/pyspark-etl-job.d.ts +1 -3
- package/lib/jobs/pyspark-etl-job.js +9 -14
- package/lib/jobs/pyspark-flex-etl-job.d.ts +1 -3
- package/lib/jobs/pyspark-flex-etl-job.js +9 -14
- package/lib/jobs/pyspark-streaming-job.d.ts +1 -3
- package/lib/jobs/pyspark-streaming-job.js +9 -14
- package/lib/jobs/python-shell-job.d.ts +20 -7
- package/lib/jobs/python-shell-job.js +30 -33
- package/lib/jobs/ray-job.js +8 -13
- package/lib/jobs/scala-spark-etl-job.d.ts +1 -3
- package/lib/jobs/scala-spark-etl-job.js +10 -14
- package/lib/jobs/scala-spark-flex-etl-job.d.ts +1 -3
- package/lib/jobs/scala-spark-flex-etl-job.js +10 -14
- package/lib/jobs/scala-spark-streaming-job.d.ts +1 -3
- package/lib/jobs/scala-spark-streaming-job.js +10 -14
- package/lib/jobs/spark-job.d.ts +9 -7
- package/lib/jobs/spark-job.js +23 -32
- package/lib/partition-projection.d.ts +36 -47
- package/lib/partition-projection.js +22 -40
- package/lib/s3-table.js +4 -4
- package/lib/schema.js +2 -2
- package/lib/security-configuration.js +4 -4
- package/lib/storage-parameter.js +1 -1
- package/lib/table-base.js +1 -1
- package/lib/triggers/trigger-options.d.ts +102 -42
- package/lib/triggers/trigger-options.js +202 -3
- package/lib/triggers/workflow.d.ts +31 -47
- package/lib/triggers/workflow.js +27 -142
- 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.269.0",
|
|
12
12
|
"constructs": "^10.5.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -3262,6 +3262,19 @@
|
|
|
3262
3262
|
}
|
|
3263
3263
|
}
|
|
3264
3264
|
},
|
|
3265
|
+
"aws-cdk-lib.aws_pricingplanmanager": {
|
|
3266
|
+
"targets": {
|
|
3267
|
+
"dotnet": {
|
|
3268
|
+
"namespace": "Amazon.CDK.AWS.PricingPlanManager"
|
|
3269
|
+
},
|
|
3270
|
+
"java": {
|
|
3271
|
+
"package": "software.amazon.awscdk.services.pricingplanmanager"
|
|
3272
|
+
},
|
|
3273
|
+
"python": {
|
|
3274
|
+
"module": "aws_cdk.aws_pricingplanmanager"
|
|
3275
|
+
}
|
|
3276
|
+
}
|
|
3277
|
+
},
|
|
3265
3278
|
"aws-cdk-lib.aws_proton": {
|
|
3266
3279
|
"targets": {
|
|
3267
3280
|
"dotnet": {
|
|
@@ -8095,6 +8108,22 @@
|
|
|
8095
8108
|
}
|
|
8096
8109
|
}
|
|
8097
8110
|
},
|
|
8111
|
+
"aws-cdk-lib.interfaces.aws_pricingplanmanager": {
|
|
8112
|
+
"targets": {
|
|
8113
|
+
"dotnet": {
|
|
8114
|
+
"namespace": "Amazon.CDK.Interfaces.PricingPlanManager"
|
|
8115
|
+
},
|
|
8116
|
+
"go": {
|
|
8117
|
+
"packageName": "interfacesawspricingplanmanager"
|
|
8118
|
+
},
|
|
8119
|
+
"java": {
|
|
8120
|
+
"package": "software.amazon.awscdk.interfaces.pricingplanmanager"
|
|
8121
|
+
},
|
|
8122
|
+
"python": {
|
|
8123
|
+
"module": "aws_cdk.interfaces.aws_pricingplanmanager"
|
|
8124
|
+
}
|
|
8125
|
+
}
|
|
8126
|
+
},
|
|
8098
8127
|
"aws-cdk-lib.interfaces.aws_proton": {
|
|
8099
8128
|
"targets": {
|
|
8100
8129
|
"dotnet": {
|
|
@@ -9583,7 +9612,7 @@
|
|
|
9583
9612
|
},
|
|
9584
9613
|
"name": "@aws-cdk/aws-glue-alpha",
|
|
9585
9614
|
"readme": {
|
|
9586
|
-
"markdown": "# AWS Glue Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\n## README\n\n[AWS Glue](https://aws.amazon.com/glue/) is a serverless data integration\nservice that makes it easier to discover, prepare, move, and integrate data\nfrom multiple sources for analytics, machine learning (ML), and application\ndevelopment.\n\nThe Glue L2 construct has convenience methods working backwards from common\nuse cases and sets required parameters to defaults that align with recommended\nbest practices for each job type. It also provides customers with a balance\nbetween flexibility via optional parameter overrides, and opinionated\ninterfaces that discouraging anti-patterns, resulting in reduced time to develop\nand deploy new resources.\n\n### References\n\n* [Glue Launch Announcement](https://aws.amazon.com/blogs/aws/launch-aws-glue-now-generally-available/)\n* [Glue Documentation](https://docs.aws.amazon.com/glue/index.html)\n* [Glue L1 (CloudFormation) Constructs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Glue.html)\n* Prior version of the [@aws-cdk/aws-glue-alpha module](https://github.com/aws/aws-cdk/blob/v2.51.1/packages/%40aws-cdk/aws-glue/README.md)\n\n## Create a Glue Job\n\nA Job encapsulates a script that connects to data sources, processes\nthem, and then writes output to a data target. There are four types of Glue\nJobs: Spark (ETL and Streaming), Python Shell, and Flex Jobs. Most\nof the required parameters for these jobs are common across all types,\nbut there are a few differences depending on the languages supported\nand features provided by each type. For all job types, the L2 defaults\nto AWS best practice recommendations, such as:\n\n* Use of Secrets Manager for Connection JDBC strings\n* Glue job autoscaling\n* Default parameter values for Glue job creation\n\nThis iteration of the L2 construct introduces breaking changes to\nthe existing glue-alpha-module, but these changes streamline the developer\nexperience, introduce new constants for defaults, and replacing synth-time\nvalidations with interface contracts for enforcement of the parameter combinations\nthat Glue supports. As an opinionated construct, the Glue L2 construct does\nnot allow developers to create resources that use non-current versions\nof Glue or deprecated language dependencies (e.g. deprecated versions of Python).\nAs always, L1s allow you to specify a wider range of parameters if you need\nor want to use alternative configurations.\n\nOptional and required parameters for each job are enforced via interface\nrather than validation; see [Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html)\nfor more granular details.\n\n### Spark Jobs\n\n#### ETL Jobs\n\nETL jobs support pySpark and Scala languages, for which there are separate but\nsimilar constructors. ETL jobs default to the G1 worker type, but you can\noverride this default with other supported worker type values (G1, G2, G4\nand G8). ETL jobs defaults to Glue version 4.0, which you can override to 3.0.\nThe following ETL features are enabled by default:\n`—enable-metrics, —enable-continuous-cloudwatch-log.`\nThe Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the\n`sparkUI` prop.\nYou can find more details about version, worker type and other features in\n[Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html).\n\nReference the pyspark-etl-jobs.test.ts and scalaspark-etl-jobs.test.ts unit tests\nfor examples of required-only and optional job parameters when creating these\ntypes of jobs.\n\nFor the sake of brevity, examples are shown using the pySpark job variety.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n});\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n jobName: 'PySparkETLJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerConfiguration: {\n workerType: glue.WorkerType.G_2X,\n numberOfWorkers: 2,\n },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n#### Streaming Jobs\n\nStreaming jobs are similar to ETL jobs, except that they perform ETL on data\nstreams using the Apache Spark Structured Streaming framework. Some Spark\njob features are not available to Streaming ETL jobs. They support Scala\nand pySpark languages. PySpark streaming jobs run on Python 3. It\ndefaults to the G1 worker type and Glue 4.0, both of which you can override.\nThe following best practice features are enabled by default:\n`—enable-metrics, —enable-continuous-cloudwatch-log`.\nThe Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the\n`sparkUI` prop.\n\nReference the pyspark-streaming-jobs.test.ts and scalaspark-streaming-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'PySparkStreamingJob', {\n jobName: 'PySparkStreamingJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerConfiguration: {\n workerType: glue.WorkerType.G_2X,\n numberOfWorkers: 2,\n },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n#### Flex Jobs\n\nThe flexible execution class is appropriate for non-urgent jobs such as\npre-production jobs, testing, and one-time data loads. Flexible jobs default\nto Glue version 5.0 and worker type `G_1X`. The following best practice\nfeatures are enabled by default:\n`—enable-metrics, —enable-continuous-cloudwatch-log`\nThe Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the\n`sparkUI` prop.\n\nReference the pyspark-flex-etl-jobs.test.ts and scalaspark-flex-etl-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'pySparkFlexEtlJob', {\n jobName: 'pySparkFlexEtlJob',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerConfiguration: {\n workerType: glue.WorkerType.G_2X,\n numberOfWorkers: 2,\n },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n### Python Shell Jobs\n\nPython shell jobs support a Python version that depends on the AWS Glue\nversion you use. These can be used to schedule and run tasks that don't\nrequire an Apache Spark environment. Python shell jobs default to\nPython 3.9 and a MaxCapacity of `0.0625`. Python 3.9 supports pre-loaded\nanalytics libraries using the `library-set=analytics` flag, which is\nenabled by default.\n\nReference the pyspark-shell-job.test.ts unit tests for examples of\nrequired-only and optional job parameters when creating these types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PythonShellJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\ndeclare const extraPythonFile: glue.Code;\nnew glue.PythonShellJob(stack, 'PythonShellJob', {\n jobName: 'PythonShellJobCustomName',\n description: 'This is a description',\n pythonVersion: glue.PythonVersion.THREE_NINE,\n maxCapacity: glue.MaxCapacity.DPU_1,\n role,\n script,\n extraPythonFiles: [extraPythonFile],\n glueVersion: glue.GlueVersion.V3_0,\n continuousLogging: { enabled: false },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n### Ray Jobs\n\n> **⚠️ DEPRECATED:** AWS Glue for Ray is closed to new customers as of April 30, 2026 and is in maintenance mode.\n> Migrate to [Amazon EKS with KubeRay Operator](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html).\n\nThe `RayJob` construct, `Runtime.RAY_TWO_FOUR`, and `JobType.RAY` are deprecated and will be removed in a future release.\n\n### Metrics Control\n\nBy default, Glue jobs enable CloudWatch metrics (`--enable-metrics`) and observability metrics (`--enable-observability-metrics`) for monitoring and debugging. You can disable these metrics to reduce CloudWatch costs:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Disable both metrics for cost optimization\nnew glue.PySparkEtlJob(stack, 'CostOptimizedJob', {\n role,\n script,\n enableMetrics: false,\n enableObservabilityMetrics: false,\n});\n\n// Selective control - keep observability, disable profiling\nnew glue.PySparkEtlJob(stack, 'SelectiveJob', {\n role,\n script,\n enableMetrics: false,\n // enableObservabilityMetrics defaults to true\n});\n```\n\nThis feature is available for all Spark job types (ETL, Streaming, Flex).\n\n### Enable Job Run Queuing\n\nAWS Glue job queuing monitors your account level quotas and limits. If quotas or limits are insufficient to start a Glue job run, AWS Glue will automatically queue the job and wait for limits to free up. Once limits become available, AWS Glue will retry the job run. Glue jobs will queue for limits like max concurrent job runs per account, max concurrent Data Processing Units (DPU), and resource unavailable due to IP address exhaustion in Amazon Virtual Private Cloud (Amazon VPC).\n\nEnable job run queuing by setting the `jobRunQueuingEnabled` property to `true`.\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n jobRunQueuingEnabled: true\n});\n```\n\n### Uploading scripts from the CDK app repository to S3\n\nSimilar to other L2 constructs, the Glue L2 automates uploading local\nscripts to S3. Use `glue.Code.fromAsset(path)` to point at a script in your\nlocal file structure; it is uploaded to the CDK-managed asset bucket. To\nreference a script that already exists in S3, use\n`glue.Code.fromBucket(bucket, key)`, which performs no upload. A `script` is\nrequired for every job.\n\nReference the unit tests for examples of repo and S3 code target examples.\n\n### Workflow Triggers\n\nYou can use Glue workflows to create and visualize complex\nextract, transform, and load (ETL) activities involving multiple crawlers,\njobs, and triggers. Standalone triggers are an anti-pattern, so you must\ncreate triggers from within a workflow using the L2 construct.\n\nWithin a workflow object, there are functions to create different\ntypes of triggers with actions and predicates. You add triggers to the\nworkflow, and each trigger references the jobs or crawlers it runs as its\nactions.\n\n`startOnCreation` applies to scheduled triggers (and, via\n`ConditionalTriggerOptions`, conditional triggers) only. It defaults to `false`,\nbut you can override it if you prefer for your trigger to start on creation.\n\nReference the workflow-triggers.test.ts unit tests for examples of creating\nworkflows and triggers.\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [{ job }],\n});\n```\n\n#### **1. On-Demand Triggers**\n\nOn-demand triggers can start glue jobs or crawlers. This construct provides\nconvenience functions to create on-demand crawler or job triggers. The constructor\ntakes an optional description parameter, but abstracts the requirement of an\nactions list using the job or crawler objects using conditional types.\n\n#### **2. Scheduled Triggers**\n\nYou can create scheduled triggers using cron expressions. This construct\nprovides daily and weekly convenience functions,\nas well as a custom function that allows you to create your own\ncustom timing using the [existing event Schedule class](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.Schedule.html)\nwithout having to build your own cron expressions. The L2 extracts\nthe expression that Glue requires from the Schedule object. The constructor\ntakes an optional description and a list of jobs or crawlers as actions.\n\n#### **3. Notify Event Triggers**\n\nThere are two types of notify event triggers: batching and non-batching.\nFor batching triggers, you must specify `BatchSize`. For non-batching\ntriggers, `BatchSize` defaults to 1. For both triggers, `BatchWindow`\ndefaults to 900 seconds, but you can override the window to align with\nyour workload's requirements.\n\n#### **4. Conditional Triggers**\n\nConditional triggers have a predicate and actions associated with them.\nThe trigger actions are executed when the predicateCondition is true.\n\n### Connection Properties\n\nA `Connection` allows Glue jobs, crawlers and development endpoints to access\ncertain types of data stores.\n\n* **Secrets Management**\n Manage JDBC connection credentials in Secrets Manager and pass the secret\n to the connection via the `secret` property (see the example below), rather\n than embedding credentials in `properties`.\n\n* **Networking - the CDK determines the best fit subnet for Glue connection\nconfiguration**\n You can specify the exact subnet of the Connection when it's defined, but\n you are not required to. Instead, you can provide a `vpc` and, optionally, a\n `vpcSubnets` selection, and the L2 leverages the existing\n [EC2 Subnet Selection](https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_ec2/SubnetSelection.html)\n library to make the best choice selection for the subnet. A Glue connection\n targets a single subnet, so the first subnet of the selection is used.\n `subnet` and `vpc` are mutually exclusive.\n\nPin the connection to a specific subnet:\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n // The security groups granting AWS Glue inbound access to the data source within the VPC\n securityGroups: [securityGroup],\n // The VPC subnet which contains the data source\n subnet,\n});\n```\n\nOr let the CDK select a subnet from a VPC:\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const vpc: ec2.Vpc;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n securityGroups: [securityGroup],\n vpc,\n // Optional - defaults to private subnets\n vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },\n});\n```\n\nFor RDS `Connection` by JDBC, it is recommended to manage credentials using AWS Secrets Manager. Pass the secret via the `secret` property: Glue reads the credentials at runtime through the connection's `SECRET_ID`, so the secret value never enters the template. Note that in this case, the subnet must have a route to the AWS Secrets Manager VPC endpoint or to the AWS Secrets Manager endpoint through a NAT gateway.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const db: rds.DatabaseCluster;\nnew glue.Connection(this, \"RdsConnection\", {\n type: glue.ConnectionType.JDBC,\n securityGroups: [securityGroup],\n subnet,\n secret: db.secret,\n properties: {\n JDBC_CONNECTION_URL: `jdbc:mysql://${db.clusterEndpoint.socketAddress}/databasename`,\n JDBC_ENFORCE_SSL: \"false\",\n },\n});\n```\n\nPrefer the `secret` property over placing credentials in `properties`. Connection\n`properties` are emitted verbatim into the CloudFormation template, so any\ncredential placed there in plaintext is stored in plaintext in the template,\n`cdk.out`, and source control. If a property key looks like a credential (for\nexample `PASSWORD`, `SECRET`, or `TOKEN`) and holds a plaintext literal, the\nconstruct emits a synthesis-time warning.\n\nIf you need to use a connection type that doesn't exist as a static member on `ConnectionType`, you can instantiate a `ConnectionType` object, e.g: `new glue.ConnectionType('NEW_TYPE')`.\n\nSee [Adding a Connection to Your Data Store](https://docs.aws.amazon.com/glue/latest/dg/populate-add-connection.html) and [Connection Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-connections.html#aws-glue-api-catalog-connections-Connection) documentation for more information on the supported data stores and their configurations.\n\n## SecurityConfiguration\n\nA `SecurityConfiguration` is a set of security properties that can be used by AWS Glue to encrypt data at rest.\n\nEach encryption config is built with a factory that pairs the encryption mode\nwith its key, so illegal combinations (such as an S3-managed encryption carrying\na KMS key) cannot be expressed:\n\n```ts\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: glue.CloudWatchEncryption.kms(),\n jobBookmarksEncryption: glue.JobBookmarksEncryption.clientSideKms(),\n s3Encryption: glue.S3Encryption.kms(),\n});\n```\n\nBy default, a shared KMS key is created for use with the encryption configurations that require one. You can also supply your own key to any factory, for example, for CloudWatch encryption:\n\n```ts\ndeclare const key: kms.Key;\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: glue.CloudWatchEncryption.kms(key),\n});\n```\n\nUse `glue.S3Encryption.s3Managed()` for S3-managed (SSE-S3) encryption, which takes no key.\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html) for more info for Glue encrypting data written by Crawlers, Jobs, and Development Endpoints.\n\n## Catalog\n\nThe Glue Data Catalog is a persistent metadata store for your data assets. Every\naccount has an implicit, account-wide catalog that always exists, and you can also\ncreate additional catalogs as `AWS::Glue::Catalog` resources (for example, to\nfederate to another metastore).\n\nA catalog's encryption is fixed when the catalog is created: a catalog either\ncarries encryption settings or it does not. This keeps its configuration easy to\nreason about — there are no mutation methods that change encryption after the fact.\n\n### The account-wide catalog\n\nUse `Catalog.forAccount(scope)` to obtain the implicit account catalog. It is not\na CloudFormation resource — it always exists. Repeated calls within the same stack\nreturn the same instance:\n\n```ts\nconst catalog = glue.Catalog.forAccount(this);\n```\n\nTo configure Data Catalog encryption for the account, use\n`Catalog.encryptAccount(scope, options)`:\n\n```ts\ndeclare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});\n```\n\nBecause encryption is fixed at construction, `encryptAccount` must be called\n*before* the account catalog is first used in the stack — before any\n`Catalog.forAccount(this)` call, and before any `Database` that uses the account\ncatalog. Calling it after the account catalog has been materialized throws.\n\nThe account catalog's encryption is an account- and region-wide setting, managed\nthrough the singleton `PutDataCatalogEncryptionSettings` API. Configure it in\nexactly one stack. Configuring it from multiple stacks in the same account and\nregion makes those stacks overwrite one another at deploy time, and the result is\norder-dependent. Unlike duplicate settings within a single stack (which\nCloudFormation rejects), this cross-stack conflict is not caught at synthesis\ntime, because each stack synthesizes to its own template.\n\n### Creating a catalog\n\nTo create a new catalog resource, use the `Catalog` constructor. Encryption is\nconfigured through the `encryptionAtRest` and `connectionPasswordEncryption` props:\n\n```ts\nnew glue.Catalog(this, 'MyCatalog', {\n catalogName: 'my-catalog',\n description: 'my catalog description',\n});\n```\n\n### Encryption at rest\n\nConfigure Data Catalog encryption at rest through the `encryptionAtRest` option\n(on `Catalog.encryptAccount` or the `Catalog` constructor).\nIt accepts a `DataCatalogEncryptionAtRest` describing the mode:\n\n```ts\ndeclare const key: kms.Key;\n\n// SSE-KMS with a customer-managed key\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});\n\n// SSE-KMS with an AWS-managed key (omit the key)\nnew glue.Catalog(this, 'ManagedKeyCatalog', {\n catalogName: 'managed-key-catalog',\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(),\n});\n\n// Disable encryption at rest\nnew glue.Catalog(this, 'PlaintextCatalog', {\n catalogName: 'plaintext-catalog',\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.disabled(),\n});\n```\n\nWhen you use `SSE-KMS-WITH-SERVICE-ROLE`, AWS Glue accesses the KMS key through a\nservice role you provide. If you pass a customer-managed key, the role is\nautomatically granted the permissions it needs to encrypt and decrypt catalog data:\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const key: kms.Key;\ndeclare const role: iam.IRole;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kmsWithServiceRole(role, key),\n});\n```\n\nThe customer-managed key, when configured, is exposed on the catalog as\n`encryptionKey` (and the connection-password key as `connectionPasswordKey`), so\nyou can reference it to grant additional access. It is undefined when encryption is\ndisabled or an AWS-managed key is used.\n\n### Connection password encryption\n\nIndependently from encryption at rest, the Data Catalog can encrypt the passwords\nstored in connection properties. Configure it through the\n`connectionPasswordEncryption` option:\n\n```ts\ndeclare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n connectionPasswordEncryption: {\n kmsKey: key,\n // Whether GetConnection/GetConnections return the password encrypted (default: true)\n returnConnectionPasswordEncrypted: true,\n },\n});\n```\n\nThe two encryption blocks are independent: enabling one does not require the other,\nand each may use a different KMS key. The customer-managed key for connection\npasswords is exposed as `connectionPasswordKey`.\n\n### Importing a catalog\n\nYou can import an existing catalog by ARN or by id. An imported catalog is a pure\nidentity handle — it emits no resources and does not manage the catalog's\nencryption:\n\n```ts\nconst byId = glue.Catalog.fromCatalogId(this, 'ById', 'my-catalog-id');\nconst byArn = glue.Catalog.fromCatalogArn(this, 'ByArn', 'arn:aws:glue:us-east-1:123456789012:catalog/my-catalog-id');\n```\n\nTo manage the Data Catalog encryption of a catalog you did not create in this\nstack, add a `CfnDataCatalogEncryptionSettings` resource targeting its id\ndirectly. Do this from exactly one stack: like the account catalog, a catalog has\na single encryption configuration, so two settings resources targeting the same id\nrace to overwrite one another at deploy time. Within a single stack this is caught\nby CloudFormation template validation (E3019, duplicate primary identifiers);\nacross stacks it is not, since each stack synthesizes to its own template.\n\n```ts\nimport { CfnDataCatalogEncryptionSettings } from 'aws-cdk-lib/aws-glue';\n\nnew CfnDataCatalogEncryptionSettings(this, 'Encryption', {\n catalogId: 'my-catalog-id',\n dataCatalogEncryptionSettings: {\n encryptionAtRest: { catalogEncryptionMode: 'SSE-KMS' },\n },\n});\n```\n\n## Database\n\nA `Database` is a logical grouping of `Tables` in the Glue Catalog.\n\n```ts\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n description: 'my_database_description',\n});\n```\n\nBecause a database is a container for tables and their metadata, it is retained\nby default when removed from the stack, to avoid accidental data loss. Set\n`removalPolicy` to `RemovalPolicy.DESTROY` to have it deleted instead:\n\n```ts\nimport { RemovalPolicy } from 'aws-cdk-lib';\n\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n removalPolicy: RemovalPolicy.DESTROY,\n});\n```\n\n## Table\n\nA Glue table describes a table of data in S3: its structure (column names and types), location of data (S3 objects with a common prefix in a S3 bucket), and format for the files (Json, Avro, Parquet, etc.):\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }, {\n name: 'col2',\n type: glue.Schema.array(glue.Schema.STRING),\n comment: 'col2 is an array of strings' // comment is optional\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nBy default, a S3 bucket will be created to store the table's data but you can bring your own with `S3TableStorage.fromBucket` and set an `s3Prefix`:\n\n```ts\ndeclare const myBucket: s3.Bucket;\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.fromBucket(myBucket),\n s3Prefix: 'my-table/',\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can be configured to contain user-defined properties, to describe the physical storage of table data, through the `storageParameters` property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('separatorChar', ',')\n ],\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can also be configured to contain user-defined table properties through the [`parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters) property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n parameters: {\n key1: 'val1',\n key2: 'val2',\n },\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Keys\n\nTo improve query performance, a table can specify `partitionKeys` on which data is stored and queried separately. For example, you might partition a table by `year` and `month` to optimize queries based on a time window:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Indexes\n\nAnother way to improve query performance is to specify partition indexes. If no partition indexes are\npresent on the table, AWS Glue loads all partitions of the table and filters the loaded partitions using\nthe query expression. The query takes more time to run as the number of partitions increase. With an\nindex, the query will try to fetch a subset of the partitions instead of loading all partitions of the\ntable.\n\nThe keys of a partition index must be a subset of the partition keys of the table. You can have a\nmaximum of 3 partition indexes per table. To specify a partition index, you can use the `partitionIndexes`\nproperty:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n partitionIndexes: [{\n indexName: 'my-index', // optional\n keyNames: ['year'],\n }], // supply up to 3 indexes\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nAlternatively, you can call the `addPartitionIndex()` function on a table:\n\n```ts\ndeclare const myTable: glue.S3Table;\nmyTable.addPartitionIndex({\n indexName: 'my-index',\n keyNames: ['year'],\n});\n```\n\n### Partition Filtering\n\nIf you have a table with a large number of partitions that grows over time, consider using AWS Glue partition indexing and filtering.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n enablePartitionFiltering: true,\n});\n```\n\n### Partition Projection\n\nPartition projection allows Athena to automatically add new partitions as new data arrives, without requiring `ALTER TABLE ADD PARTITION` statements. This improves query performance and reduces management overhead by eliminating the need to manually manage partition metadata.\n\nFor more information, see the [AWS documentation on partition projection](https://docs.aws.amazon.com/athena/latest/ug/partition-projection.html).\n\n#### INTEGER Projection\n\nFor partition keys with sequential numeric values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.INTEGER,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n interval: 1, // optional, defaults to 1\n digits: 4, // optional, pads with leading zeros\n }),\n },\n});\n```\n\n#### DATE Projection\n\nFor partition keys with date or timestamp values. Supports both fixed dates and relative dates using `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});\n```\n\nYou can also use relative dates with `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: 'NOW-3YEARS',\n max: 'NOW',\n format: 'yyyy-MM-dd',\n }),\n },\n});\n```\n\n#### ENUM Projection\n\nFor partition keys with a known set of values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'region',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2', 'eu-west-1'],\n }),\n },\n});\n```\n\n#### INJECTED Projection\n\nFor custom partition values injected at query time:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'custom',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n custom: glue.PartitionProjectionConfiguration.injected(),\n },\n});\n```\n\n#### Multiple Partition Projections\n\nYou can configure partition projection for multiple partition keys:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [\n {\n name: 'year',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'month',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'region',\n type: glue.Schema.STRING,\n },\n ],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n }),\n month: glue.PartitionProjectionConfiguration.integer({\n min: 1,\n max: 12,\n digits: 2,\n }),\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2'],\n }),\n },\n});\n```\n\n### Glue Connections\n\nGlue connections allow external data connections to third party databases and data warehouses. However, these connections can also be assigned to Glue Tables, allowing you to query external data sources using the Glue Data Catalog.\n\nWhereas `S3Table` will point to (and if needed, create) a bucket to store the tables' data, `ExternalTable` will point to an existing table in a data source. For example, to create a table in Glue that points to a table in Redshift:\n\n```ts\ndeclare const myConnection: glue.Connection;\ndeclare const myDatabase: glue.Database;\nnew glue.ExternalTable(this, 'MyTable', {\n connection: myConnection,\n externalDataLocation: 'default_db_public_example', // A table in Redshift\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## Data Quality Ruleset\n\nA `DataQualityRuleset` defines a set of data quality rules — authored in Glue's\nData Quality Definition Language (DQDL) — that are evaluated against a table in\nthe Data Catalog.\n\n```ts\ndeclare const database: glue.IDatabase;\nnew glue.DataQualityRuleset(this, 'MyRuleset', {\n rulesetName: 'my_ruleset',\n dqdl: glue.Dqdl.fromString('Rules = [ RowCount > 100, IsComplete \"order_id\" ]'),\n targetTable: glue.DataQualityTargetTable.fromTableName(database, 'my_table'),\n});\n```\n\nBuild the DQDL document with `Dqdl.fromString(...)`. Glue parses and validates the\nDQDL when the ruleset is deployed; see the\n[DQDL reference](https://docs.aws.amazon.com/glue/latest/dg/dqdl.html) for the\nfull rule syntax.\n\n## [Encryption](https://docs.aws.amazon.com/athena/latest/ug/encryption.html)\n\nWhen the table creates its own S3 bucket (`S3TableStorage.managedBucket`, the default), that bucket enforces SSL: a bucket policy denies any request made over plain HTTP. If you bring your own bucket with `S3TableStorage.fromBucket`, enabling `enforceSSL` on it is your responsibility.\n\nServer-side encryption applies only to a bucket the table manages. Choose it with\n`storage: glue.S3TableStorage.managedBucket(...)`:\n\n* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - (default) Server side encryption (`SSE-S3`) with an Amazon S3-managed key.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.s3Managed()),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [Kms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.kms()),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.kms(new kms.Key(this, 'MyKey'))),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [KmsManaged](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`), like `Kms`, except with an AWS KMS Key managed by the AWS Key Management Service.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.kmsManaged()),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nClient-side encryption ([CSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html#client-side-encryption-kms-managed-master-key-intro)) is independent of the bucket's server-side encryption and works with either a managed or an existing bucket. Configure it with `clientSideEncryption`:\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n clientSideEncryption: glue.TableClientSideEncryption.kms(),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n clientSideEncryption: glue.TableClientSideEncryption.kms(new kms.Key(this, 'MyKey')),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nTo store the table's data in an existing bucket, use `glue.S3TableStorage.fromBucket(bucket)`. CDK does not manage that bucket's server-side encryption, so an encryption choice can never be paired with a provided bucket — but client-side encryption still applies.\n\n### Marking table data as encrypted\n\nBoth `S3Table` and `ExternalTable` set the `has_encrypted_data` table parameter, which\nAthena reads when querying client-side (`CSE-KMS`) encrypted datasets. It defaults to `true`.\nSet `hasEncryptedData` to `false` when the underlying data is not encrypted:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n hasEncryptedData: false,\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nDo not set `has_encrypted_data` through the free-form `parameters` map as well - a value\nthere that conflicts with `hasEncryptedData` is rejected at synthesis time.\n\n## Types\n\nA table's schema is a collection of columns, each of which have a `name` and a `type`. Types are recursive structures, consisting of primitive and complex types:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n columns: [{\n name: 'primitive_column',\n type: glue.Schema.STRING,\n }, {\n name: 'array_column',\n type: glue.Schema.array(glue.Schema.INTEGER),\n comment: 'array<integer>',\n }, {\n name: 'map_column',\n type: glue.Schema.map(\n glue.Schema.STRING,\n glue.Schema.TIMESTAMP),\n comment: 'map<string,timestamp>',\n }, {\n name: 'struct_column',\n type: glue.Schema.struct([{\n name: 'nested_column',\n type: glue.Schema.DATE,\n comment: 'nested comment',\n }]),\n comment: \"struct<nested_column:date COMMENT 'nested comment'>\",\n }],\n // ...\n database: myDatabase,\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nFor a type the `Schema` factories don't model, use `glue.Schema.custom('...')`, which takes the raw Glue input string.\n\n## Public FAQ\n\n### What are we launching today?\n\nWe’re launching new features to an AWS CDK Glue L2 Construct to provide\nbest-practice defaults and convenience methods to create Glue Jobs, Connections,\nTriggers, Workflows, and the underlying permissions and configuration.\n\n### Why should I use this Construct?\n\nDevelopers should use this Construct to reduce the amount of boilerplate\ncode and complexity each individual has to navigate, and make it easier to\ncreate best-practice Glue resources.\n\n### What’s not in scope?\n\nGlue Crawlers and other resources that are now managed by the AWS LakeFormation\nteam are not in scope for this effort. Developers should use existing methods\nto create these resources, and the new Glue L2 construct assumes they already\nexist as inputs. While best practice is for application and infrastructure code\nto be as close as possible for teams using fully-implemented DevOps mechanisms,\nin practice these ETL scripts are likely managed by a data science team who\nknow Python or Scala and don’t necessarily own or manage their own\ninfrastructure deployments. We want to meet developers where they are, and not\nassume that all of the code resides in the same repository, Developers can\nautomate this themselves via the CDK, however, if they do own both.\n\nValidating Glue version and feature use per AWS region at synth time is also\nnot in scope. AWS’ intention is for all features to eventually be propagated to\nall Global regions, so the complexity involved in creating and updating region-\nspecific configuration to match shifting feature sets does not out-weigh the\nlikelihood that a developer will use this construct to deploy resources to a\nregion without a particular new feature to a region that doesn’t yet support\nit without researching or manually attempting to use that feature before\ndeveloping it via IaC. The developer will, of course, still get feedback from\nthe underlying Glue APIs as CloudFormation deploys the resources similar to the\ncurrent CDK L1 Glue experience.\n"
|
|
9615
|
+
"markdown": "# AWS Glue Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\n## README\n\n[AWS Glue](https://aws.amazon.com/glue/) is a serverless data integration\nservice that makes it easier to discover, prepare, move, and integrate data\nfrom multiple sources for analytics, machine learning (ML), and application\ndevelopment.\n\nThe Glue L2 construct has convenience methods working backwards from common\nuse cases and sets required parameters to defaults that align with recommended\nbest practices for each job type. It also provides customers with a balance\nbetween flexibility via optional parameter overrides, and opinionated\ninterfaces that discouraging anti-patterns, resulting in reduced time to develop\nand deploy new resources.\n\n### References\n\n* [Glue Launch Announcement](https://aws.amazon.com/blogs/aws/launch-aws-glue-now-generally-available/)\n* [Glue Documentation](https://docs.aws.amazon.com/glue/index.html)\n* [Glue L1 (CloudFormation) Constructs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Glue.html)\n* Prior version of the [@aws-cdk/aws-glue-alpha module](https://github.com/aws/aws-cdk/blob/v2.51.1/packages/%40aws-cdk/aws-glue/README.md)\n\n## Create a Glue Job\n\nA Job encapsulates a script that connects to data sources, processes\nthem, and then writes output to a data target. There are four types of Glue\nJobs: Spark (ETL and Streaming), Python Shell, and Flex Jobs. Most\nof the required parameters for these jobs are common across all types,\nbut there are a few differences depending on the languages supported\nand features provided by each type. For all job types, the L2 defaults\nto AWS best practice recommendations, such as:\n\n* Use of Secrets Manager for Connection JDBC strings\n* Glue job autoscaling\n* Default parameter values for Glue job creation\n\nThis iteration of the L2 construct introduces breaking changes to\nthe existing glue-alpha-module, but these changes streamline the developer\nexperience, introduce new constants for defaults, and replacing synth-time\nvalidations with interface contracts for enforcement of the parameter combinations\nthat Glue supports. As an opinionated construct, the Glue L2 construct does\nnot allow developers to create resources that use non-current versions\nof Glue or deprecated language dependencies (e.g. deprecated versions of Python).\nAs always, L1s allow you to specify a wider range of parameters if you need\nor want to use alternative configurations.\n\nOptional and required parameters for each job are enforced via interface\nrather than validation; see [Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html)\nfor more granular details.\n\n### Spark Jobs\n\n#### ETL Jobs\n\nETL jobs support pySpark and Scala languages, for which there are separate but\nsimilar constructors. ETL jobs default to the G1 worker type, but you can\noverride this default with other supported worker type values (G1, G2, G4\nand G8). ETL jobs defaults to Glue version 4.0, which you can override to 3.0.\nThe following ETL features are enabled by default:\n`—enable-metrics, —enable-continuous-cloudwatch-log.`\nThe Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the\n`sparkUI` prop.\nYou can find more details about version, worker type and other features in\n[Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html).\n\n> **Note on continuous logging and encryption:** Because continuous logging is\n> enabled by default, job driver and executor stdout/stderr are streamed to\n> CloudWatch. Unless you attach a [`SecurityConfiguration`](#securityconfiguration)\n> with `cloudWatchEncryption`, these logs are written to the account-shared,\n> default Glue log group (`/aws-glue/jobs/logs-v2/`), which is **not** encrypted\n> with a customer-managed key. Since job logs can contain sensitive runtime data\n> (SQL statements, row values, error stack traces), attach a `SecurityConfiguration`\n> with `cloudWatchEncryption` for regulated workloads. The construct emits a\n> synthesis-time warning when continuous logging is on and no `SecurityConfiguration`\n> is attached.\n\nReference the pyspark-etl-jobs.test.ts and scalaspark-etl-jobs.test.ts unit tests\nfor examples of required-only and optional job parameters when creating these\ntypes of jobs.\n\nFor the sake of brevity, examples are shown using the pySpark job variety.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n});\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n jobName: 'PySparkETLJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerConfiguration: {\n workerType: glue.WorkerType.G_2X,\n numberOfWorkers: 2,\n },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n#### Streaming Jobs\n\nStreaming jobs are similar to ETL jobs, except that they perform ETL on data\nstreams using the Apache Spark Structured Streaming framework. Some Spark\njob features are not available to Streaming ETL jobs. They support Scala\nand pySpark languages. PySpark streaming jobs run on Python 3. It\ndefaults to the G1 worker type and Glue 4.0, both of which you can override.\nThe following best practice features are enabled by default:\n`—enable-metrics, —enable-continuous-cloudwatch-log`.\nThe Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the\n`sparkUI` prop.\n\nReference the pyspark-streaming-jobs.test.ts and scalaspark-streaming-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'PySparkStreamingJob', {\n jobName: 'PySparkStreamingJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerConfiguration: {\n workerType: glue.WorkerType.G_2X,\n numberOfWorkers: 2,\n },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n#### Flex Jobs\n\nThe flexible execution class is appropriate for non-urgent jobs such as\npre-production jobs, testing, and one-time data loads. Flexible jobs default\nto Glue version 5.0 and worker type `G_1X`. The following best practice\nfeatures are enabled by default:\n`—enable-metrics, —enable-continuous-cloudwatch-log`\nThe Spark UI (`—enable-spark-ui`) is off by default; enable it by setting the\n`sparkUI` prop.\n\nReference the pyspark-flex-etl-jobs.test.ts and scalaspark-flex-etl-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'pySparkFlexEtlJob', {\n jobName: 'pySparkFlexEtlJob',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerConfiguration: {\n workerType: glue.WorkerType.G_2X,\n numberOfWorkers: 2,\n },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n### Python Shell Jobs\n\nPython shell jobs support a Python version that depends on the AWS Glue\nversion you use. These can be used to schedule and run tasks that don't\nrequire an Apache Spark environment. Python shell jobs default to\nPython 3.9 and a MaxCapacity of `0.0625`. Python 3.9 supports pre-loaded\nanalytics libraries, enabled by default (`librarySet: glue.LibrarySet.ANALYTICS`).\nSet `librarySet: glue.LibrarySet.NONE` when your libraries are custom or\nconflict with the pre-installed ones.\n\nReference the pyspark-shell-job.test.ts unit tests for examples of\nrequired-only and optional job parameters when creating these types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PythonShellJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\ndeclare const extraPythonFile: glue.Code;\nnew glue.PythonShellJob(stack, 'PythonShellJob', {\n jobName: 'PythonShellJobCustomName',\n description: 'This is a description',\n pythonVersion: glue.PythonVersion.THREE_NINE,\n maxCapacity: glue.MaxCapacity.DPU_1,\n role,\n script,\n extraPythonFiles: [extraPythonFile],\n glueVersion: glue.GlueVersion.V3_0,\n continuousLogging: { enabled: false },\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n maxRetries: 2,\n});\n```\n\n### Ray Jobs\n\n> **⚠️ DEPRECATED:** AWS Glue for Ray is closed to new customers as of April 30, 2026 and is in maintenance mode.\n> Migrate to [Amazon EKS with KubeRay Operator](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html).\n\nThe `RayJob` construct, `Runtime.RAY_TWO_FOUR`, and `JobType.RAY` are deprecated and will be removed in a future release.\n\n### Metrics Control\n\nBy default, Glue jobs enable CloudWatch metrics (`--enable-metrics`) and observability metrics (`--enable-observability-metrics`) for monitoring and debugging. You can disable these metrics to reduce CloudWatch costs:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Disable both metrics for cost optimization\nnew glue.PySparkEtlJob(stack, 'CostOptimizedJob', {\n role,\n script,\n enableMetrics: false,\n enableObservabilityMetrics: false,\n});\n\n// Selective control - keep observability, disable profiling\nnew glue.PySparkEtlJob(stack, 'SelectiveJob', {\n role,\n script,\n enableMetrics: false,\n // enableObservabilityMetrics defaults to true\n});\n```\n\nThis feature is available for all Spark job types (ETL, Streaming, Flex).\n\n### Job Arguments\n\nGlue jobs are configured through a map of name-value arguments (`DefaultArguments`). This construct\nmanages several of these arguments on your behalf and exposes each one through a dedicated,\nstrongly-typed prop:\n\n| Managed argument(s) | Prop |\n|--------------------------------------------------------------------------|-----------------------------------------------------------------|\n| `--enable-continuous-cloudwatch-log`, `--continuous-log-*` | `continuousLogging` |\n| `--enable-metrics` | `enableMetrics` |\n| `--enable-observability-metrics` | `enableObservabilityMetrics` |\n| `--enable-spark-ui`, `--spark-event-logs-path` | `sparkUI` |\n| `--job-language`, `--class` | job class / `className` |\n| `--extra-jars`, `--user-jars-first`, `--extra-py-files`, `--extra-files` | `extraJars`, `extraJarsFirst`, `extraPythonFiles`, `extraFiles` |\n| `library-set` | `librarySet` (Python Shell) |\n\nThe `defaultArguments` prop is the escape hatch for arguments this construct does **not** model.\nUse it for any argument without a dedicated prop:\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\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n defaultArguments: {\n // an argument this construct does not manage\n '--enable-glue-datacatalog': 'true',\n },\n});\n```\n\nTo keep a single, unambiguous way to express each intent, setting a **construct-managed** argument\n(any argument in the table above) or a **Glue-reserved** argument (`--debug`, `--mode`,\n`--JOB_NAME`, `--endpoint`) through `defaultArguments` throws at synthesis time. This holds even\nwhen the feature is turned off — for example, `enableMetrics: false` combined with\n`defaultArguments: { '--enable-metrics': '' }` throws rather than silently re-enabling metrics.\nConfigure managed arguments through their dedicated prop instead — for example, use\n`continuousLogging: { enabled: false }` rather than\n`defaultArguments: { '--enable-continuous-cloudwatch-log': 'false' }`.\n\n### Enable Job Run Queuing\n\nAWS Glue job queuing monitors your account level quotas and limits. If quotas or limits are insufficient to start a Glue job run, AWS Glue will automatically queue the job and wait for limits to free up. Once limits become available, AWS Glue will retry the job run. Glue jobs will queue for limits like max concurrent job runs per account, max concurrent Data Processing Units (DPU), and resource unavailable due to IP address exhaustion in Amazon Virtual Private Cloud (Amazon VPC).\n\nEnable job run queuing by setting the `jobRunQueuingEnabled` property to `true`.\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n jobRunQueuingEnabled: true\n});\n```\n\n### Uploading scripts from the CDK app repository to S3\n\nSimilar to other L2 constructs, the Glue L2 automates uploading local\nscripts to S3. Use `glue.Code.fromAsset(path)` to point at a script in your\nlocal file structure; it is uploaded to the CDK-managed asset bucket. To\nreference a script that already exists in S3, use\n`glue.Code.fromBucket(bucket, key)`, which performs no upload. A `script` is\nrequired for every job.\n\nReference the unit tests for examples of repo and S3 code target examples.\n\n### Workflow Triggers\n\nYou can use Glue workflows to create and visualize complex\nextract, transform, and load (ETL) activities involving multiple crawlers,\njobs, and triggers. Standalone triggers are an anti-pattern, so you must\ncreate triggers from within a workflow using the L2 construct.\n\nWithin a workflow object, there are functions to create different\ntypes of triggers with actions and predicates. You add triggers to the\nworkflow, and each trigger references the jobs or crawlers it runs as its\nactions.\n\n`startOnCreation` applies to scheduled triggers (and, via\n`ConditionalTriggerOptions`, conditional triggers) only. It defaults to `false`,\nbut you can override it if you prefer for your trigger to start on creation.\n\nReference the workflow-triggers.test.ts unit tests for examples of creating\nworkflows and triggers.\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [glue.Action.job(job)],\n});\n```\n\n#### **1. On-Demand Triggers**\n\nOn-demand triggers can start glue jobs or crawlers. This construct provides\nconvenience functions to create on-demand crawler or job triggers. The constructor\ntakes an optional description parameter, but abstracts the requirement of an\nactions list using the job or crawler objects using conditional types.\n\n#### **2. Scheduled Triggers**\n\nUse `addScheduledTrigger` with a `TriggerSchedule` to fire on a cron schedule.\n`TriggerSchedule.daily()` and `TriggerSchedule.weekly()` are convenience\nfactories; `TriggerSchedule.cron(...)` lets you build any schedule from the\n[existing event Schedule class](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.Schedule.html)\nwithout writing raw cron expressions. The L2 extracts the expression that Glue\nrequires from the `TriggerSchedule`.\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;\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\nconst workflow = new glue.Workflow(stack, 'Workflow');\n\nworkflow.addScheduledTrigger('WeeklyTrigger', {\n actions: [glue.Action.job(job)],\n schedule: glue.TriggerSchedule.weekly(),\n});\n```\n\n#### **3. Event Triggers**\n\nUse `addEventTrigger` for EventBridge event-based triggers. There are two types:\nbatching and non-batching. For batching triggers, you must specify `batchSize`.\nFor non-batching triggers, `batchSize` defaults to 1. For both, `batchWindow`\ndefaults to 900 seconds, but you can override the window to align with your\nworkload's requirements.\n\n#### **4. Conditional Triggers**\n\nConditional triggers have a predicate and actions associated with them.\nThe trigger actions are executed when the predicateCondition is true.\n\n### Connection Properties\n\nA `Connection` allows Glue jobs, crawlers and development endpoints to access\ncertain types of data stores.\n\n* **Secrets Management**\n Manage JDBC connection credentials in Secrets Manager and pass the secret\n to the connection via the `secret` property (see the example below), rather\n than embedding credentials in `properties`.\n\n* **Networking - the CDK determines the best fit subnet for Glue connection\nconfiguration**\n Configure VPC placement through the `network` property, built with\n `ConnectionNetwork.subnet(subnet)` to pin a specific subnet, or\n `ConnectionNetwork.vpc(vpc, vpcSubnets?)` to let the L2 select one via the\n existing\n [EC2 Subnet Selection](https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_ec2/SubnetSelection.html)\n library. A Glue connection targets a single subnet, so the first subnet of\n the selection is used. The two factories are mutually exclusive, so a subnet\n and a VPC can never be combined.\n\nPin the connection to a specific subnet:\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n // The security groups granting AWS Glue inbound access to the data source within the VPC\n securityGroups: [securityGroup],\n // The VPC subnet which contains the data source\n network: glue.ConnectionNetwork.subnet(subnet),\n});\n```\n\nOr let the CDK select a subnet from a VPC:\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const vpc: ec2.Vpc;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n securityGroups: [securityGroup],\n // vpcSubnets is optional - defaults to private subnets\n network: glue.ConnectionNetwork.vpc(vpc, { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }),\n});\n```\n\nFor RDS `Connection` by JDBC, it is recommended to manage credentials using AWS Secrets Manager. Pass the secret via the `secret` property: Glue reads the credentials at runtime through the connection's `SECRET_ID`, so the secret value never enters the template. Note that in this case, the subnet must have a route to the AWS Secrets Manager VPC endpoint or to the AWS Secrets Manager endpoint through a NAT gateway.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const db: rds.DatabaseCluster;\nnew glue.Connection(this, \"RdsConnection\", {\n type: glue.ConnectionType.JDBC,\n securityGroups: [securityGroup],\n network: glue.ConnectionNetwork.subnet(subnet),\n secret: db.secret,\n properties: {\n JDBC_CONNECTION_URL: `jdbc:mysql://${db.clusterEndpoint.socketAddress}/databasename`,\n JDBC_ENFORCE_SSL: \"false\",\n },\n});\n```\n\nPrefer the `secret` property over placing credentials in `properties`. Connection\n`properties` are emitted verbatim into the CloudFormation template, so any\ncredential placed there in plaintext is stored in plaintext in the template,\n`cdk.out`, and source control. If a property key looks like a credential (for\nexample `PASSWORD`, `SECRET`, or `TOKEN`) and holds a plaintext literal, the\nconstruct emits a synthesis-time warning.\n\nIf you need to use a connection type that doesn't exist as a static member on `ConnectionType`, you can instantiate a `ConnectionType` object, e.g: `new glue.ConnectionType('NEW_TYPE')`.\n\nSee [Adding a Connection to Your Data Store](https://docs.aws.amazon.com/glue/latest/dg/populate-add-connection.html) and [Connection Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-connections.html#aws-glue-api-catalog-connections-Connection) documentation for more information on the supported data stores and their configurations.\n\n## SecurityConfiguration\n\nA `SecurityConfiguration` is a set of security properties that can be used by AWS Glue to encrypt data at rest.\n\nEach encryption config is built with a factory that pairs the encryption mode\nwith its key, so illegal combinations (such as an S3-managed encryption carrying\na KMS key) cannot be expressed:\n\n```ts\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: glue.CloudWatchEncryption.kms(),\n jobBookmarksEncryption: glue.JobBookmarksEncryption.clientSideKms(),\n s3Encryption: glue.S3Encryption.kms(),\n});\n```\n\nBy default, a shared KMS key is created for use with the encryption configurations that require one. You can also supply your own key to any factory, for example, for CloudWatch encryption:\n\n```ts\ndeclare const key: kms.Key;\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: glue.CloudWatchEncryption.kms(key),\n});\n```\n\nUse `glue.S3Encryption.s3Managed()` for S3-managed (SSE-S3) encryption, which takes no key.\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html) for more info for Glue encrypting data written by Crawlers, Jobs, and Development Endpoints.\n\n## Catalog\n\nThe Glue Data Catalog is a persistent metadata store for your data assets. Every\naccount has an implicit, account-wide catalog that always exists, and you can also\ncreate additional catalogs as `AWS::Glue::Catalog` resources (for example, to\nfederate to another metastore).\n\nA catalog's encryption is fixed when the catalog is created: a catalog either\ncarries encryption settings or it does not. This keeps its configuration easy to\nreason about — there are no mutation methods that change encryption after the fact.\n\n### The account-wide catalog\n\nUse `Catalog.forAccount(scope)` to obtain the implicit account catalog. It is not\na CloudFormation resource — it always exists. Repeated calls within the same stack\nreturn the same instance:\n\n```ts\nconst catalog = glue.Catalog.forAccount(this);\n```\n\nTo configure Data Catalog encryption for the account, use\n`Catalog.encryptAccount(scope, options)`:\n\n```ts\ndeclare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});\n```\n\nBecause encryption is fixed at construction, `encryptAccount` must be called\n*before* the account catalog is first used in the stack — before any\n`Catalog.forAccount(this)` call, and before any `Database` that uses the account\ncatalog. Calling it after the account catalog has been materialized throws.\n\nThe account catalog's encryption is an account- and region-wide setting, managed\nthrough the singleton `PutDataCatalogEncryptionSettings` API. Configure it in\nexactly one stack. Configuring it from multiple stacks in the same account and\nregion makes those stacks overwrite one another at deploy time, and the result is\norder-dependent. Unlike duplicate settings within a single stack (which\nCloudFormation rejects), this cross-stack conflict is not caught at synthesis\ntime, because each stack synthesizes to its own template.\n\n### Creating a catalog\n\nTo create a new catalog resource, use the `Catalog` constructor. Encryption is\nconfigured through the `encryptionAtRest` and `connectionPasswordEncryption` props:\n\n```ts\nnew glue.Catalog(this, 'MyCatalog', {\n catalogName: 'my-catalog',\n description: 'my catalog description',\n});\n```\n\n### Encryption at rest\n\nConfigure Data Catalog encryption at rest through the `encryptionAtRest` option\n(on `Catalog.encryptAccount` or the `Catalog` constructor).\nIt accepts a `DataCatalogEncryptionAtRest` describing the mode:\n\n```ts\ndeclare const key: kms.Key;\n\n// SSE-KMS with a customer-managed key\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});\n\n// SSE-KMS with an AWS-managed key (omit the key)\nnew glue.Catalog(this, 'ManagedKeyCatalog', {\n catalogName: 'managed-key-catalog',\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(),\n});\n\n// Disable encryption at rest\nnew glue.Catalog(this, 'PlaintextCatalog', {\n catalogName: 'plaintext-catalog',\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.disabled(),\n});\n```\n\nWhen you use `SSE-KMS-WITH-SERVICE-ROLE`, AWS Glue accesses the KMS key through a\nservice role you provide. If you pass a customer-managed key, the role is\nautomatically granted the permissions it needs to encrypt and decrypt catalog data:\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const key: kms.Key;\ndeclare const role: iam.IRole;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kmsWithServiceRole(role, key),\n});\n```\n\nThe customer-managed key, when configured, is exposed on the catalog as\n`encryptionKey` (and the connection-password key as `connectionPasswordKey`), so\nyou can reference it to grant additional access. It is undefined when encryption is\ndisabled or an AWS-managed key is used.\n\n### Connection password encryption\n\nIndependently from encryption at rest, the Data Catalog can encrypt the passwords\nstored in connection properties. Configure it through the\n`connectionPasswordEncryption` option:\n\n```ts\ndeclare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n connectionPasswordEncryption: {\n kmsKey: key,\n // Whether GetConnection/GetConnections return the password encrypted (default: true)\n returnConnectionPasswordEncrypted: true,\n },\n});\n```\n\nThe two encryption blocks are independent: enabling one does not require the other,\nand each may use a different KMS key. The customer-managed key for connection\npasswords is exposed as `connectionPasswordKey`.\n\n### Importing a catalog\n\nYou can import an existing catalog by ARN or by id. An imported catalog is a pure\nidentity handle — it emits no resources and does not manage the catalog's\nencryption:\n\n```ts\nconst byId = glue.Catalog.fromCatalogId(this, 'ById', 'my-catalog-id');\nconst byArn = glue.Catalog.fromCatalogArn(this, 'ByArn', 'arn:aws:glue:us-east-1:123456789012:catalog/my-catalog-id');\n```\n\nTo manage the Data Catalog encryption of a catalog you did not create in this\nstack, add a `CfnDataCatalogEncryptionSettings` resource targeting its id\ndirectly. Do this from exactly one stack: like the account catalog, a catalog has\na single encryption configuration, so two settings resources targeting the same id\nrace to overwrite one another at deploy time. Within a single stack this is caught\nby CloudFormation template validation (E3019, duplicate primary identifiers);\nacross stacks it is not, since each stack synthesizes to its own template.\n\n```ts\nimport { CfnDataCatalogEncryptionSettings } from 'aws-cdk-lib/aws-glue';\n\nnew CfnDataCatalogEncryptionSettings(this, 'Encryption', {\n catalogId: 'my-catalog-id',\n dataCatalogEncryptionSettings: {\n encryptionAtRest: { catalogEncryptionMode: 'SSE-KMS' },\n },\n});\n```\n\n## Database\n\nA `Database` is a logical grouping of `Tables` in the Glue Catalog.\n\n```ts\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n description: 'my_database_description',\n});\n```\n\nBecause a database is a container for tables and their metadata, it is retained\nby default when removed from the stack, to avoid accidental data loss. Set\n`removalPolicy` to `RemovalPolicy.DESTROY` to have it deleted instead:\n\n```ts\nimport { RemovalPolicy } from 'aws-cdk-lib';\n\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n removalPolicy: RemovalPolicy.DESTROY,\n});\n```\n\n## Table\n\nA Glue table describes a table of data in S3: its structure (column names and types), location of data (S3 objects with a common prefix in a S3 bucket), and format for the files (Json, Avro, Parquet, etc.):\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }, {\n name: 'col2',\n type: glue.Schema.array(glue.Schema.STRING),\n comment: 'col2 is an array of strings' // comment is optional\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nBy default, a S3 bucket will be created to store the table's data but you can bring your own with `S3TableStorage.fromBucket` and set an `s3Prefix`:\n\n```ts\ndeclare const myBucket: s3.Bucket;\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.fromBucket(myBucket),\n s3Prefix: 'my-table/',\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can be configured to contain user-defined properties, to describe the physical storage of table data, through the `storageParameters` property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('separatorChar', ',')\n ],\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can also be configured to contain user-defined table properties through the [`parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters) property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n parameters: {\n key1: 'val1',\n key2: 'val2',\n },\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Keys\n\nTo improve query performance, a table can specify `partitionKeys` on which data is stored and queried separately. For example, you might partition a table by `year` and `month` to optimize queries based on a time window:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Indexes\n\nAnother way to improve query performance is to specify partition indexes. If no partition indexes are\npresent on the table, AWS Glue loads all partitions of the table and filters the loaded partitions using\nthe query expression. The query takes more time to run as the number of partitions increase. With an\nindex, the query will try to fetch a subset of the partitions instead of loading all partitions of the\ntable.\n\nThe keys of a partition index must be a subset of the partition keys of the table. You can have a\nmaximum of 3 partition indexes per table. To specify a partition index, you can use the `partitionIndexes`\nproperty:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n partitionIndexes: [{\n indexName: 'my-index', // optional\n keyNames: ['year'],\n }], // supply up to 3 indexes\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nAlternatively, you can call the `addPartitionIndex()` function on a table:\n\n```ts\ndeclare const myTable: glue.S3Table;\nmyTable.addPartitionIndex({\n indexName: 'my-index',\n keyNames: ['year'],\n});\n```\n\n### Partition Filtering\n\nIf you have a table with a large number of partitions that grows over time, consider using AWS Glue partition indexing and filtering.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n enablePartitionFiltering: true,\n});\n```\n\n### Partition Projection\n\nPartition projection allows Athena to automatically add new partitions as new data arrives, without requiring `ALTER TABLE ADD PARTITION` statements. This improves query performance and reduces management overhead by eliminating the need to manually manage partition metadata.\n\nFor more information, see the [AWS documentation on partition projection](https://docs.aws.amazon.com/athena/latest/ug/partition-projection.html).\n\n#### INTEGER Projection\n\nFor partition keys with sequential numeric values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.INTEGER,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n interval: 1, // optional, defaults to 1\n digits: 4, // optional, pads with leading zeros\n }),\n },\n});\n```\n\n#### DATE Projection\n\nFor partition keys with date or timestamp values. Supports both fixed dates and relative dates using `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n // `step` bundles interval + unit (supply both or neither). Optional at day\n // precision or coarser; required when the format is sub-day (e.g. hours).\n step: { interval: 1, intervalUnit: glue.DateIntervalUnit.DAYS },\n }),\n },\n});\n```\n\nYou can also use relative dates with `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: 'NOW-3YEARS',\n max: 'NOW',\n format: 'yyyy-MM-dd',\n }),\n },\n});\n```\n\n#### ENUM Projection\n\nFor partition keys with a known set of values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'region',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2', 'eu-west-1'],\n }),\n },\n});\n```\n\n#### INJECTED Projection\n\nFor custom partition values injected at query time:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'custom',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n custom: glue.PartitionProjectionConfiguration.injected(),\n },\n});\n```\n\n#### Multiple Partition Projections\n\nYou can configure partition projection for multiple partition keys:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [\n {\n name: 'year',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'month',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'region',\n type: glue.Schema.STRING,\n },\n ],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n }),\n month: glue.PartitionProjectionConfiguration.integer({\n min: 1,\n max: 12,\n digits: 2,\n }),\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2'],\n }),\n },\n});\n```\n\n### Glue Connections\n\nGlue connections allow external data connections to third party databases and data warehouses. However, these connections can also be assigned to Glue Tables, allowing you to query external data sources using the Glue Data Catalog.\n\nWhereas `S3Table` will point to (and if needed, create) a bucket to store the tables' data, `ExternalTable` will point to an existing table in a data source. For example, to create a table in Glue that points to a table in Redshift:\n\n```ts\ndeclare const myConnection: glue.Connection;\ndeclare const myDatabase: glue.Database;\nnew glue.ExternalTable(this, 'MyTable', {\n connection: myConnection,\n externalDataLocation: 'default_db_public_example', // A table in Redshift\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## Data Quality Ruleset\n\nA `DataQualityRuleset` defines a set of data quality rules — authored in Glue's\nData Quality Definition Language (DQDL) — that are evaluated against a table in\nthe Data Catalog.\n\n```ts\ndeclare const database: glue.IDatabase;\nnew glue.DataQualityRuleset(this, 'MyRuleset', {\n rulesetName: 'my_ruleset',\n dqdl: glue.Dqdl.fromString('Rules = [ RowCount > 100, IsComplete \"order_id\" ]'),\n targetTable: glue.DataQualityTargetTable.fromTableName(database, 'my_table'),\n});\n```\n\nBuild the DQDL document with `Dqdl.fromString(...)`. Glue parses and validates the\nDQDL when the ruleset is deployed; see the\n[DQDL reference](https://docs.aws.amazon.com/glue/latest/dg/dqdl.html) for the\nfull rule syntax.\n\n## [Encryption](https://docs.aws.amazon.com/athena/latest/ug/encryption.html)\n\nWhen the table creates its own S3 bucket (`S3TableStorage.managedBucket`, the default), that bucket enforces SSL: a bucket policy denies any request made over plain HTTP. If you bring your own bucket with `S3TableStorage.fromBucket`, enabling `enforceSSL` on it is your responsibility.\n\nServer-side encryption applies only to a bucket the table manages. Choose it with\n`storage: glue.S3TableStorage.managedBucket(...)`:\n\n* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - (default) Server side encryption (`SSE-S3`) with an Amazon S3-managed key.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.s3Managed()),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [Kms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.kms()),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.kms(new kms.Key(this, 'MyKey'))),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [KmsManaged](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`), like `Kms`, except with an AWS KMS Key managed by the AWS Key Management Service.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storage: glue.S3TableStorage.managedBucket(glue.S3TableEncryption.kmsManaged()),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nClient-side encryption ([CSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html#client-side-encryption-kms-managed-master-key-intro)) is independent of the bucket's server-side encryption and works with either a managed or an existing bucket. Configure it with `clientSideEncryption`:\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n clientSideEncryption: glue.TableClientSideEncryption.kms(),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n clientSideEncryption: glue.TableClientSideEncryption.kms(new kms.Key(this, 'MyKey')),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nTo store the table's data in an existing bucket, use `glue.S3TableStorage.fromBucket(bucket)`. CDK does not manage that bucket's server-side encryption, so an encryption choice can never be paired with a provided bucket — but client-side encryption still applies.\n\n### Marking table data as encrypted\n\nBoth `S3Table` and `ExternalTable` set the `has_encrypted_data` table parameter, which\nAthena reads when querying client-side (`CSE-KMS`) encrypted datasets. It defaults to `true`.\nSet `hasEncryptedData` to `false` when the underlying data is not encrypted:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n hasEncryptedData: false,\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nDo not set `has_encrypted_data` through the free-form `parameters` map as well - a value\nthere that conflicts with `hasEncryptedData` is rejected at synthesis time.\n\n## Types\n\nA table's schema is a collection of columns, each of which have a `name` and a `type`. Types are recursive structures, consisting of primitive and complex types:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n columns: [{\n name: 'primitive_column',\n type: glue.Schema.STRING,\n }, {\n name: 'array_column',\n type: glue.Schema.array(glue.Schema.INTEGER),\n comment: 'array<integer>',\n }, {\n name: 'map_column',\n type: glue.Schema.map(\n glue.Schema.STRING,\n glue.Schema.TIMESTAMP),\n comment: 'map<string,timestamp>',\n }, {\n name: 'struct_column',\n type: glue.Schema.struct([{\n name: 'nested_column',\n type: glue.Schema.DATE,\n comment: 'nested comment',\n }]),\n comment: \"struct<nested_column:date COMMENT 'nested comment'>\",\n }],\n // ...\n database: myDatabase,\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nFor a type the `Schema` factories don't model, use `glue.Schema.custom('...')`, which takes the raw Glue input string.\n\n## Public FAQ\n\n### What are we launching today?\n\nWe’re launching new features to an AWS CDK Glue L2 Construct to provide\nbest-practice defaults and convenience methods to create Glue Jobs, Connections,\nTriggers, Workflows, and the underlying permissions and configuration.\n\n### Why should I use this Construct?\n\nDevelopers should use this Construct to reduce the amount of boilerplate\ncode and complexity each individual has to navigate, and make it easier to\ncreate best-practice Glue resources.\n\n### What’s not in scope?\n\nGlue Crawlers and other resources that are now managed by the AWS LakeFormation\nteam are not in scope for this effort. Developers should use existing methods\nto create these resources, and the new Glue L2 construct assumes they already\nexist as inputs. While best practice is for application and infrastructure code\nto be as close as possible for teams using fully-implemented DevOps mechanisms,\nin practice these ETL scripts are likely managed by a data science team who\nknow Python or Scala and don’t necessarily own or manage their own\ninfrastructure deployments. We want to meet developers where they are, and not\nassume that all of the code resides in the same repository, Developers can\nautomate this themselves via the CDK, however, if they do own both.\n\nValidating Glue version and feature use per AWS region at synth time is also\nnot in scope. AWS’ intention is for all features to eventually be propagated to\nall Global regions, so the complexity involved in creating and updating region-\nspecific configuration to match shifting feature sets does not out-weigh the\nlikelihood that a developer will use this construct to deploy resources to a\nregion without a particular new feature to a region that doesn’t yet support\nit without researching or manually attempting to use that feature before\ndeveloping it via IaC. The developer will, of course, still get feedback from\nthe underlying Glue APIs as CloudFormation deploys the resources similar to the\ncurrent CDK L1 Glue experience.\n"
|
|
9587
9616
|
},
|
|
9588
9617
|
"repository": {
|
|
9589
9618
|
"directory": "packages/@aws-cdk/aws-glue-alpha",
|
|
@@ -9622,121 +9651,107 @@
|
|
|
9622
9651
|
},
|
|
9623
9652
|
"types": {
|
|
9624
9653
|
"@aws-cdk/aws-glue-alpha.Action": {
|
|
9654
|
+
"abstract": true,
|
|
9625
9655
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
9626
|
-
"datatype": true,
|
|
9627
9656
|
"docs": {
|
|
9657
|
+
"remarks": "An action runs exactly one target: use {@link Action.job} to run a job or\n{@link Action.crawler} to run a crawler. Because these are separate factory\nmethods, an action can never target both or neither.",
|
|
9628
9658
|
"stability": "experimental",
|
|
9629
|
-
"summary": "
|
|
9630
|
-
"example": "
|
|
9659
|
+
"summary": "An action initiated by a trigger.",
|
|
9660
|
+
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [glue.Action.job(job)],\n});",
|
|
9631
9661
|
"custom": {
|
|
9632
|
-
"exampleMetadata": "
|
|
9662
|
+
"exampleMetadata": "infused"
|
|
9633
9663
|
}
|
|
9634
9664
|
},
|
|
9635
9665
|
"fqn": "@aws-cdk/aws-glue-alpha.Action",
|
|
9636
|
-
"
|
|
9666
|
+
"initializer": {
|
|
9667
|
+
"docs": {
|
|
9668
|
+
"stability": "experimental"
|
|
9669
|
+
}
|
|
9670
|
+
},
|
|
9671
|
+
"kind": "class",
|
|
9637
9672
|
"locationInModule": {
|
|
9638
9673
|
"filename": "lib/triggers/trigger-options.ts",
|
|
9639
|
-
"line":
|
|
9674
|
+
"line": 67
|
|
9640
9675
|
},
|
|
9641
|
-
"
|
|
9642
|
-
"properties": [
|
|
9676
|
+
"methods": [
|
|
9643
9677
|
{
|
|
9644
|
-
"abstract": true,
|
|
9645
9678
|
"docs": {
|
|
9646
|
-
"default": "- no arguments are passed to the job",
|
|
9647
9679
|
"stability": "experimental",
|
|
9648
|
-
"summary": "
|
|
9680
|
+
"summary": "Create an action that runs a crawler."
|
|
9649
9681
|
},
|
|
9650
|
-
"immutable": true,
|
|
9651
9682
|
"locationInModule": {
|
|
9652
9683
|
"filename": "lib/triggers/trigger-options.ts",
|
|
9653
|
-
"line":
|
|
9684
|
+
"line": 84
|
|
9654
9685
|
},
|
|
9655
|
-
"name": "
|
|
9656
|
-
"
|
|
9657
|
-
|
|
9658
|
-
|
|
9659
|
-
|
|
9660
|
-
"primitive": "string"
|
|
9686
|
+
"name": "crawler",
|
|
9687
|
+
"parameters": [
|
|
9688
|
+
{
|
|
9689
|
+
"docs": {
|
|
9690
|
+
"summary": "the crawler to run when the trigger fires."
|
|
9661
9691
|
},
|
|
9662
|
-
"
|
|
9692
|
+
"name": "crawler",
|
|
9693
|
+
"type": {
|
|
9694
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.ICrawlerRef"
|
|
9695
|
+
}
|
|
9696
|
+
},
|
|
9697
|
+
{
|
|
9698
|
+
"docs": {
|
|
9699
|
+
"summary": "additional options for the action."
|
|
9700
|
+
},
|
|
9701
|
+
"name": "options",
|
|
9702
|
+
"optional": true,
|
|
9703
|
+
"type": {
|
|
9704
|
+
"fqn": "@aws-cdk/aws-glue-alpha.CrawlerActionOptions"
|
|
9705
|
+
}
|
|
9706
|
+
}
|
|
9707
|
+
],
|
|
9708
|
+
"returns": {
|
|
9709
|
+
"type": {
|
|
9710
|
+
"fqn": "@aws-cdk/aws-glue-alpha.Action"
|
|
9663
9711
|
}
|
|
9664
|
-
}
|
|
9665
|
-
},
|
|
9666
|
-
{
|
|
9667
|
-
"abstract": true,
|
|
9668
|
-
"docs": {
|
|
9669
|
-
"default": "- no crawler is used",
|
|
9670
|
-
"stability": "experimental",
|
|
9671
|
-
"summary": "The name of the crawler to be used with this action."
|
|
9672
|
-
},
|
|
9673
|
-
"immutable": true,
|
|
9674
|
-
"locationInModule": {
|
|
9675
|
-
"filename": "lib/triggers/trigger-options.ts",
|
|
9676
|
-
"line": 45
|
|
9677
9712
|
},
|
|
9678
|
-
"
|
|
9679
|
-
"optional": true,
|
|
9680
|
-
"type": {
|
|
9681
|
-
"fqn": "aws-cdk-lib.aws_glue.CfnCrawler"
|
|
9682
|
-
}
|
|
9713
|
+
"static": true
|
|
9683
9714
|
},
|
|
9684
9715
|
{
|
|
9685
|
-
"abstract": true,
|
|
9686
9716
|
"docs": {
|
|
9687
|
-
"default": "- no job is executed",
|
|
9688
9717
|
"stability": "experimental",
|
|
9689
|
-
"summary": "
|
|
9718
|
+
"summary": "Create an action that runs a job."
|
|
9690
9719
|
},
|
|
9691
|
-
"immutable": true,
|
|
9692
9720
|
"locationInModule": {
|
|
9693
9721
|
"filename": "lib/triggers/trigger-options.ts",
|
|
9694
|
-
"line":
|
|
9722
|
+
"line": 74
|
|
9695
9723
|
},
|
|
9696
9724
|
"name": "job",
|
|
9697
|
-
"
|
|
9698
|
-
|
|
9699
|
-
|
|
9700
|
-
|
|
9701
|
-
|
|
9702
|
-
|
|
9703
|
-
|
|
9704
|
-
|
|
9705
|
-
|
|
9706
|
-
|
|
9707
|
-
|
|
9708
|
-
|
|
9709
|
-
|
|
9710
|
-
|
|
9711
|
-
|
|
9712
|
-
|
|
9713
|
-
|
|
9714
|
-
|
|
9715
|
-
|
|
9716
|
-
|
|
9717
|
-
|
|
9718
|
-
|
|
9719
|
-
|
|
9720
|
-
|
|
9721
|
-
|
|
9722
|
-
"docs": {
|
|
9723
|
-
"default": "- the default timeout value set in the job definition",
|
|
9724
|
-
"remarks": "This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status.",
|
|
9725
|
-
"stability": "experimental",
|
|
9726
|
-
"summary": "The job run timeout."
|
|
9727
|
-
},
|
|
9728
|
-
"immutable": true,
|
|
9729
|
-
"locationInModule": {
|
|
9730
|
-
"filename": "lib/triggers/trigger-options.ts",
|
|
9731
|
-
"line": 31
|
|
9725
|
+
"parameters": [
|
|
9726
|
+
{
|
|
9727
|
+
"docs": {
|
|
9728
|
+
"summary": "the job to run when the trigger fires."
|
|
9729
|
+
},
|
|
9730
|
+
"name": "job",
|
|
9731
|
+
"type": {
|
|
9732
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.IJobRef"
|
|
9733
|
+
}
|
|
9734
|
+
},
|
|
9735
|
+
{
|
|
9736
|
+
"docs": {
|
|
9737
|
+
"summary": "additional options for the action."
|
|
9738
|
+
},
|
|
9739
|
+
"name": "options",
|
|
9740
|
+
"optional": true,
|
|
9741
|
+
"type": {
|
|
9742
|
+
"fqn": "@aws-cdk/aws-glue-alpha.JobActionOptions"
|
|
9743
|
+
}
|
|
9744
|
+
}
|
|
9745
|
+
],
|
|
9746
|
+
"returns": {
|
|
9747
|
+
"type": {
|
|
9748
|
+
"fqn": "@aws-cdk/aws-glue-alpha.Action"
|
|
9749
|
+
}
|
|
9732
9750
|
},
|
|
9733
|
-
"
|
|
9734
|
-
"optional": true,
|
|
9735
|
-
"type": {
|
|
9736
|
-
"fqn": "aws-cdk-lib.Duration"
|
|
9737
|
-
}
|
|
9751
|
+
"static": true
|
|
9738
9752
|
}
|
|
9739
9753
|
],
|
|
9754
|
+
"name": "Action",
|
|
9740
9755
|
"symbolId": "lib/triggers/trigger-options:Action"
|
|
9741
9756
|
},
|
|
9742
9757
|
"@aws-cdk/aws-glue-alpha.AssetCode": {
|
|
@@ -10588,7 +10603,7 @@
|
|
|
10588
10603
|
"docs": {
|
|
10589
10604
|
"stability": "experimental",
|
|
10590
10605
|
"summary": "Represents a Glue Job's Code assets (an asset can be a scripts, a jar, a python file or any other file).",
|
|
10591
|
-
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [
|
|
10606
|
+
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [glue.Action.job(job)],\n});",
|
|
10592
10607
|
"custom": {
|
|
10593
10608
|
"exampleMetadata": "infused"
|
|
10594
10609
|
}
|
|
@@ -10920,78 +10935,170 @@
|
|
|
10920
10935
|
"symbolId": "lib/storage-parameter:CompressionType"
|
|
10921
10936
|
},
|
|
10922
10937
|
"@aws-cdk/aws-glue-alpha.Condition": {
|
|
10938
|
+
"abstract": true,
|
|
10923
10939
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
10924
|
-
"datatype": true,
|
|
10925
10940
|
"docs": {
|
|
10941
|
+
"remarks": "A condition watches exactly one target in exactly one state: use\n{@link Condition.job} to watch a job or {@link Condition.crawler} to watch a\ncrawler. Because the state is a required argument of each factory, a condition\ncan never reference a target without its state, or both a job and a crawler.",
|
|
10926
10942
|
"stability": "experimental",
|
|
10927
|
-
"summary": "
|
|
10928
|
-
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\n\ndeclare const
|
|
10943
|
+
"summary": "A condition that determines when a conditional trigger fires.",
|
|
10944
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport { aws_glue as interfaces_glue } from 'aws-cdk-lib/interfaces';\n\ndeclare const crawlerRef: interfaces_glue.ICrawlerRef;\nconst condition = glue_alpha.Condition.crawler(crawlerRef, glue_alpha.CrawlerState.RUNNING, /* all optional props */ {\n logicalOperator: glue_alpha.ConditionLogicalOperator.EQUALS,\n});",
|
|
10929
10945
|
"custom": {
|
|
10930
10946
|
"exampleMetadata": "fixture=_generated"
|
|
10931
10947
|
}
|
|
10932
10948
|
},
|
|
10933
10949
|
"fqn": "@aws-cdk/aws-glue-alpha.Condition",
|
|
10934
|
-
"
|
|
10950
|
+
"initializer": {
|
|
10951
|
+
"docs": {
|
|
10952
|
+
"stability": "experimental"
|
|
10953
|
+
}
|
|
10954
|
+
},
|
|
10955
|
+
"kind": "class",
|
|
10935
10956
|
"locationInModule": {
|
|
10936
10957
|
"filename": "lib/triggers/trigger-options.ts",
|
|
10937
|
-
"line":
|
|
10958
|
+
"line": 219
|
|
10938
10959
|
},
|
|
10939
|
-
"
|
|
10940
|
-
"properties": [
|
|
10960
|
+
"methods": [
|
|
10941
10961
|
{
|
|
10942
|
-
"abstract": true,
|
|
10943
10962
|
"docs": {
|
|
10944
|
-
"default": "- no crawler is specified",
|
|
10945
10963
|
"stability": "experimental",
|
|
10946
|
-
"summary": "
|
|
10964
|
+
"summary": "Create a condition on the state of a crawler."
|
|
10947
10965
|
},
|
|
10948
|
-
"immutable": true,
|
|
10949
10966
|
"locationInModule": {
|
|
10950
10967
|
"filename": "lib/triggers/trigger-options.ts",
|
|
10951
|
-
"line":
|
|
10968
|
+
"line": 238
|
|
10952
10969
|
},
|
|
10953
|
-
"name": "
|
|
10954
|
-
"
|
|
10955
|
-
|
|
10956
|
-
|
|
10957
|
-
|
|
10970
|
+
"name": "crawler",
|
|
10971
|
+
"parameters": [
|
|
10972
|
+
{
|
|
10973
|
+
"docs": {
|
|
10974
|
+
"summary": "the crawler to watch."
|
|
10975
|
+
},
|
|
10976
|
+
"name": "crawler",
|
|
10977
|
+
"type": {
|
|
10978
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.ICrawlerRef"
|
|
10979
|
+
}
|
|
10980
|
+
},
|
|
10981
|
+
{
|
|
10982
|
+
"docs": {
|
|
10983
|
+
"summary": "the crawler state that satisfies the condition."
|
|
10984
|
+
},
|
|
10985
|
+
"name": "crawlState",
|
|
10986
|
+
"type": {
|
|
10987
|
+
"fqn": "@aws-cdk/aws-glue-alpha.CrawlerState"
|
|
10988
|
+
}
|
|
10989
|
+
},
|
|
10990
|
+
{
|
|
10991
|
+
"docs": {
|
|
10992
|
+
"summary": "additional options for the condition."
|
|
10993
|
+
},
|
|
10994
|
+
"name": "options",
|
|
10995
|
+
"optional": true,
|
|
10996
|
+
"type": {
|
|
10997
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ConditionOptions"
|
|
10998
|
+
}
|
|
10999
|
+
}
|
|
11000
|
+
],
|
|
11001
|
+
"returns": {
|
|
11002
|
+
"type": {
|
|
11003
|
+
"fqn": "@aws-cdk/aws-glue-alpha.Condition"
|
|
11004
|
+
}
|
|
11005
|
+
},
|
|
11006
|
+
"static": true
|
|
10958
11007
|
},
|
|
10959
11008
|
{
|
|
10960
|
-
"abstract": true,
|
|
10961
11009
|
"docs": {
|
|
10962
|
-
"default": "- no crawler state is specified",
|
|
10963
11010
|
"stability": "experimental",
|
|
10964
|
-
"summary": "
|
|
11011
|
+
"summary": "Create a condition on the state of a job."
|
|
10965
11012
|
},
|
|
10966
|
-
"immutable": true,
|
|
10967
11013
|
"locationInModule": {
|
|
10968
11014
|
"filename": "lib/triggers/trigger-options.ts",
|
|
10969
|
-
"line":
|
|
11015
|
+
"line": 227
|
|
10970
11016
|
},
|
|
10971
|
-
"name": "
|
|
10972
|
-
"
|
|
10973
|
-
|
|
10974
|
-
|
|
10975
|
-
|
|
10976
|
-
|
|
11017
|
+
"name": "job",
|
|
11018
|
+
"parameters": [
|
|
11019
|
+
{
|
|
11020
|
+
"docs": {
|
|
11021
|
+
"summary": "the job to watch."
|
|
11022
|
+
},
|
|
11023
|
+
"name": "job",
|
|
11024
|
+
"type": {
|
|
11025
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.IJobRef"
|
|
11026
|
+
}
|
|
11027
|
+
},
|
|
11028
|
+
{
|
|
11029
|
+
"docs": {
|
|
11030
|
+
"summary": "the job state that satisfies the condition."
|
|
11031
|
+
},
|
|
11032
|
+
"name": "state",
|
|
11033
|
+
"type": {
|
|
11034
|
+
"fqn": "@aws-cdk/aws-glue-alpha.JobState"
|
|
11035
|
+
}
|
|
11036
|
+
},
|
|
11037
|
+
{
|
|
11038
|
+
"docs": {
|
|
11039
|
+
"summary": "additional options for the condition."
|
|
11040
|
+
},
|
|
11041
|
+
"name": "options",
|
|
11042
|
+
"optional": true,
|
|
11043
|
+
"type": {
|
|
11044
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ConditionOptions"
|
|
11045
|
+
}
|
|
11046
|
+
}
|
|
11047
|
+
],
|
|
11048
|
+
"returns": {
|
|
11049
|
+
"type": {
|
|
11050
|
+
"fqn": "@aws-cdk/aws-glue-alpha.Condition"
|
|
11051
|
+
}
|
|
11052
|
+
},
|
|
11053
|
+
"static": true
|
|
11054
|
+
}
|
|
11055
|
+
],
|
|
11056
|
+
"name": "Condition",
|
|
11057
|
+
"symbolId": "lib/triggers/trigger-options:Condition"
|
|
11058
|
+
},
|
|
11059
|
+
"@aws-cdk/aws-glue-alpha.ConditionLogicalOperator": {
|
|
11060
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
11061
|
+
"docs": {
|
|
11062
|
+
"stability": "experimental",
|
|
11063
|
+
"summary": "Represents the logical operator for evaluating a single condition in the Glue Trigger API."
|
|
11064
|
+
},
|
|
11065
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ConditionLogicalOperator",
|
|
11066
|
+
"kind": "enum",
|
|
11067
|
+
"locationInModule": {
|
|
11068
|
+
"filename": "lib/constants.ts",
|
|
11069
|
+
"line": 360
|
|
11070
|
+
},
|
|
11071
|
+
"members": [
|
|
10977
11072
|
{
|
|
10978
|
-
"abstract": true,
|
|
10979
11073
|
"docs": {
|
|
10980
|
-
"default": "- no job is specified",
|
|
10981
11074
|
"stability": "experimental",
|
|
10982
|
-
"summary": "The
|
|
10983
|
-
},
|
|
10984
|
-
"immutable": true,
|
|
10985
|
-
"locationInModule": {
|
|
10986
|
-
"filename": "lib/triggers/trigger-options.ts",
|
|
10987
|
-
"line": 113
|
|
11075
|
+
"summary": "The condition is true if the values are equal."
|
|
10988
11076
|
},
|
|
10989
|
-
"name": "
|
|
10990
|
-
|
|
10991
|
-
|
|
10992
|
-
|
|
10993
|
-
|
|
10994
|
-
|
|
11077
|
+
"name": "EQUALS"
|
|
11078
|
+
}
|
|
11079
|
+
],
|
|
11080
|
+
"name": "ConditionLogicalOperator",
|
|
11081
|
+
"symbolId": "lib/constants:ConditionLogicalOperator"
|
|
11082
|
+
},
|
|
11083
|
+
"@aws-cdk/aws-glue-alpha.ConditionOptions": {
|
|
11084
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
11085
|
+
"datatype": true,
|
|
11086
|
+
"docs": {
|
|
11087
|
+
"stability": "experimental",
|
|
11088
|
+
"summary": "Options shared by all trigger conditions.",
|
|
11089
|
+
"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 conditionOptions: glue_alpha.ConditionOptions = {\n logicalOperator: glue_alpha.ConditionLogicalOperator.EQUALS,\n};",
|
|
11090
|
+
"custom": {
|
|
11091
|
+
"exampleMetadata": "fixture=_generated"
|
|
11092
|
+
}
|
|
11093
|
+
},
|
|
11094
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ConditionOptions",
|
|
11095
|
+
"kind": "interface",
|
|
11096
|
+
"locationInModule": {
|
|
11097
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
11098
|
+
"line": 202
|
|
11099
|
+
},
|
|
11100
|
+
"name": "ConditionOptions",
|
|
11101
|
+
"properties": [
|
|
10995
11102
|
{
|
|
10996
11103
|
"abstract": true,
|
|
10997
11104
|
"docs": {
|
|
@@ -11002,58 +11109,16 @@
|
|
|
11002
11109
|
"immutable": true,
|
|
11003
11110
|
"locationInModule": {
|
|
11004
11111
|
"filename": "lib/triggers/trigger-options.ts",
|
|
11005
|
-
"line":
|
|
11112
|
+
"line": 208
|
|
11006
11113
|
},
|
|
11007
11114
|
"name": "logicalOperator",
|
|
11008
11115
|
"optional": true,
|
|
11009
11116
|
"type": {
|
|
11010
11117
|
"fqn": "@aws-cdk/aws-glue-alpha.ConditionLogicalOperator"
|
|
11011
11118
|
}
|
|
11012
|
-
},
|
|
11013
|
-
{
|
|
11014
|
-
"abstract": true,
|
|
11015
|
-
"docs": {
|
|
11016
|
-
"default": "- no job state is specified",
|
|
11017
|
-
"stability": "experimental",
|
|
11018
|
-
"summary": "The condition job state."
|
|
11019
|
-
},
|
|
11020
|
-
"immutable": true,
|
|
11021
|
-
"locationInModule": {
|
|
11022
|
-
"filename": "lib/triggers/trigger-options.ts",
|
|
11023
|
-
"line": 120
|
|
11024
|
-
},
|
|
11025
|
-
"name": "state",
|
|
11026
|
-
"optional": true,
|
|
11027
|
-
"type": {
|
|
11028
|
-
"fqn": "@aws-cdk/aws-glue-alpha.JobState"
|
|
11029
|
-
}
|
|
11030
|
-
}
|
|
11031
|
-
],
|
|
11032
|
-
"symbolId": "lib/triggers/trigger-options:Condition"
|
|
11033
|
-
},
|
|
11034
|
-
"@aws-cdk/aws-glue-alpha.ConditionLogicalOperator": {
|
|
11035
|
-
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
11036
|
-
"docs": {
|
|
11037
|
-
"stability": "experimental",
|
|
11038
|
-
"summary": "Represents the logical operator for evaluating a single condition in the Glue Trigger API."
|
|
11039
|
-
},
|
|
11040
|
-
"fqn": "@aws-cdk/aws-glue-alpha.ConditionLogicalOperator",
|
|
11041
|
-
"kind": "enum",
|
|
11042
|
-
"locationInModule": {
|
|
11043
|
-
"filename": "lib/constants.ts",
|
|
11044
|
-
"line": 341
|
|
11045
|
-
},
|
|
11046
|
-
"members": [
|
|
11047
|
-
{
|
|
11048
|
-
"docs": {
|
|
11049
|
-
"stability": "experimental",
|
|
11050
|
-
"summary": "The condition is true if the values are equal."
|
|
11051
|
-
},
|
|
11052
|
-
"name": "EQUALS"
|
|
11053
11119
|
}
|
|
11054
11120
|
],
|
|
11055
|
-
"
|
|
11056
|
-
"symbolId": "lib/constants:ConditionLogicalOperator"
|
|
11121
|
+
"symbolId": "lib/triggers/trigger-options:ConditionOptions"
|
|
11057
11122
|
},
|
|
11058
11123
|
"@aws-cdk/aws-glue-alpha.ConditionalTriggerOptions": {
|
|
11059
11124
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
@@ -11061,19 +11126,19 @@
|
|
|
11061
11126
|
"docs": {
|
|
11062
11127
|
"stability": "experimental",
|
|
11063
11128
|
"summary": "Properties for configuring a Condition (Predicate) based Glue Trigger.",
|
|
11064
|
-
"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';\
|
|
11129
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\n\ndeclare const action: glue_alpha.Action;\ndeclare const condition: glue_alpha.Condition;\nconst conditionalTriggerOptions: glue_alpha.ConditionalTriggerOptions = {\n actions: [action],\n predicate: {\n conditions: [condition],\n logical: glue_alpha.PredicateLogical.AND,\n },\n\n // the properties below are optional\n description: 'description',\n name: 'name',\n startOnCreation: false,\n};",
|
|
11065
11130
|
"custom": {
|
|
11066
11131
|
"exampleMetadata": "fixture=_generated"
|
|
11067
11132
|
}
|
|
11068
11133
|
},
|
|
11069
11134
|
"fqn": "@aws-cdk/aws-glue-alpha.ConditionalTriggerOptions",
|
|
11070
11135
|
"interfaces": [
|
|
11071
|
-
"@aws-cdk/aws-glue-alpha.
|
|
11136
|
+
"@aws-cdk/aws-glue-alpha.StartableTriggerOptions"
|
|
11072
11137
|
],
|
|
11073
11138
|
"kind": "interface",
|
|
11074
11139
|
"locationInModule": {
|
|
11075
11140
|
"filename": "lib/triggers/trigger-options.ts",
|
|
11076
|
-
"line":
|
|
11141
|
+
"line": 378
|
|
11077
11142
|
},
|
|
11078
11143
|
"name": "ConditionalTriggerOptions",
|
|
11079
11144
|
"properties": [
|
|
@@ -11086,7 +11151,7 @@
|
|
|
11086
11151
|
"immutable": true,
|
|
11087
11152
|
"locationInModule": {
|
|
11088
11153
|
"filename": "lib/triggers/trigger-options.ts",
|
|
11089
|
-
"line":
|
|
11154
|
+
"line": 382
|
|
11090
11155
|
},
|
|
11091
11156
|
"name": "predicate",
|
|
11092
11157
|
"type": {
|
|
@@ -11114,7 +11179,7 @@
|
|
|
11114
11179
|
},
|
|
11115
11180
|
"locationInModule": {
|
|
11116
11181
|
"filename": "lib/connection.ts",
|
|
11117
|
-
"line":
|
|
11182
|
+
"line": 441
|
|
11118
11183
|
},
|
|
11119
11184
|
"parameters": [
|
|
11120
11185
|
{
|
|
@@ -11143,7 +11208,7 @@
|
|
|
11143
11208
|
"kind": "class",
|
|
11144
11209
|
"locationInModule": {
|
|
11145
11210
|
"filename": "lib/connection.ts",
|
|
11146
|
-
"line":
|
|
11211
|
+
"line": 393
|
|
11147
11212
|
},
|
|
11148
11213
|
"methods": [
|
|
11149
11214
|
{
|
|
@@ -11153,7 +11218,7 @@
|
|
|
11153
11218
|
},
|
|
11154
11219
|
"locationInModule": {
|
|
11155
11220
|
"filename": "lib/connection.ts",
|
|
11156
|
-
"line":
|
|
11221
|
+
"line": 405
|
|
11157
11222
|
},
|
|
11158
11223
|
"name": "fromConnectionArn",
|
|
11159
11224
|
"parameters": [
|
|
@@ -11199,7 +11264,7 @@
|
|
|
11199
11264
|
},
|
|
11200
11265
|
"locationInModule": {
|
|
11201
11266
|
"filename": "lib/connection.ts",
|
|
11202
|
-
"line":
|
|
11267
|
+
"line": 421
|
|
11203
11268
|
},
|
|
11204
11269
|
"name": "fromConnectionName",
|
|
11205
11270
|
"parameters": [
|
|
@@ -11245,7 +11310,7 @@
|
|
|
11245
11310
|
},
|
|
11246
11311
|
"locationInModule": {
|
|
11247
11312
|
"filename": "lib/connection.ts",
|
|
11248
|
-
"line":
|
|
11313
|
+
"line": 516
|
|
11249
11314
|
},
|
|
11250
11315
|
"name": "addProperty",
|
|
11251
11316
|
"parameters": [
|
|
@@ -11281,7 +11346,7 @@
|
|
|
11281
11346
|
"immutable": true,
|
|
11282
11347
|
"locationInModule": {
|
|
11283
11348
|
"filename": "lib/connection.ts",
|
|
11284
|
-
"line":
|
|
11349
|
+
"line": 396
|
|
11285
11350
|
},
|
|
11286
11351
|
"name": "PROPERTY_INJECTION_ID",
|
|
11287
11352
|
"static": true,
|
|
@@ -11297,7 +11362,7 @@
|
|
|
11297
11362
|
"immutable": true,
|
|
11298
11363
|
"locationInModule": {
|
|
11299
11364
|
"filename": "lib/connection.ts",
|
|
11300
|
-
"line":
|
|
11365
|
+
"line": 506
|
|
11301
11366
|
},
|
|
11302
11367
|
"name": "connectionArn",
|
|
11303
11368
|
"overrides": "@aws-cdk/aws-glue-alpha.IConnection",
|
|
@@ -11313,7 +11378,7 @@
|
|
|
11313
11378
|
"immutable": true,
|
|
11314
11379
|
"locationInModule": {
|
|
11315
11380
|
"filename": "lib/connection.ts",
|
|
11316
|
-
"line":
|
|
11381
|
+
"line": 498
|
|
11317
11382
|
},
|
|
11318
11383
|
"name": "connectionName",
|
|
11319
11384
|
"overrides": "@aws-cdk/aws-glue-alpha.IConnection",
|
|
@@ -11324,13 +11389,103 @@
|
|
|
11324
11389
|
],
|
|
11325
11390
|
"symbolId": "lib/connection:Connection"
|
|
11326
11391
|
},
|
|
11392
|
+
"@aws-cdk/aws-glue-alpha.ConnectionNetwork": {
|
|
11393
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
11394
|
+
"docs": {
|
|
11395
|
+
"remarks": "A Glue connection targets a single subnet. Choose the placement with one of\nthe mutually-exclusive factories — an explicit subnet, or a VPC to select one\nfrom — so a subnet paired with a VPC, or a subnet selection without a VPC,\ncannot be expressed.",
|
|
11396
|
+
"stability": "experimental",
|
|
11397
|
+
"summary": "VPC network placement for a Glue `Connection`.",
|
|
11398
|
+
"example": "declare const securityGroup: ec2.SecurityGroup;\ndeclare const vpc: ec2.Vpc;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n securityGroups: [securityGroup],\n // vpcSubnets is optional - defaults to private subnets\n network: glue.ConnectionNetwork.vpc(vpc, { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }),\n});",
|
|
11399
|
+
"custom": {
|
|
11400
|
+
"exampleMetadata": "infused"
|
|
11401
|
+
}
|
|
11402
|
+
},
|
|
11403
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ConnectionNetwork",
|
|
11404
|
+
"kind": "class",
|
|
11405
|
+
"locationInModule": {
|
|
11406
|
+
"filename": "lib/connection.ts",
|
|
11407
|
+
"line": 264
|
|
11408
|
+
},
|
|
11409
|
+
"methods": [
|
|
11410
|
+
{
|
|
11411
|
+
"docs": {
|
|
11412
|
+
"stability": "experimental",
|
|
11413
|
+
"summary": "Pin the connection to a specific subnet."
|
|
11414
|
+
},
|
|
11415
|
+
"locationInModule": {
|
|
11416
|
+
"filename": "lib/connection.ts",
|
|
11417
|
+
"line": 270
|
|
11418
|
+
},
|
|
11419
|
+
"name": "subnet",
|
|
11420
|
+
"parameters": [
|
|
11421
|
+
{
|
|
11422
|
+
"docs": {
|
|
11423
|
+
"summary": "the subnet the connection targets."
|
|
11424
|
+
},
|
|
11425
|
+
"name": "subnet",
|
|
11426
|
+
"type": {
|
|
11427
|
+
"fqn": "aws-cdk-lib.aws_ec2.ISubnet"
|
|
11428
|
+
}
|
|
11429
|
+
}
|
|
11430
|
+
],
|
|
11431
|
+
"returns": {
|
|
11432
|
+
"type": {
|
|
11433
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ConnectionNetwork"
|
|
11434
|
+
}
|
|
11435
|
+
},
|
|
11436
|
+
"static": true
|
|
11437
|
+
},
|
|
11438
|
+
{
|
|
11439
|
+
"docs": {
|
|
11440
|
+
"default": "vpcSubnets - private subnets",
|
|
11441
|
+
"remarks": "Since a Glue connection targets\na single subnet, the first subnet of the selection is used.",
|
|
11442
|
+
"stability": "experimental",
|
|
11443
|
+
"summary": "Select the connection's subnet from a VPC."
|
|
11444
|
+
},
|
|
11445
|
+
"locationInModule": {
|
|
11446
|
+
"filename": "lib/connection.ts",
|
|
11447
|
+
"line": 282
|
|
11448
|
+
},
|
|
11449
|
+
"name": "vpc",
|
|
11450
|
+
"parameters": [
|
|
11451
|
+
{
|
|
11452
|
+
"docs": {
|
|
11453
|
+
"summary": "the VPC to select a subnet from."
|
|
11454
|
+
},
|
|
11455
|
+
"name": "vpc",
|
|
11456
|
+
"type": {
|
|
11457
|
+
"fqn": "aws-cdk-lib.aws_ec2.IVpc"
|
|
11458
|
+
}
|
|
11459
|
+
},
|
|
11460
|
+
{
|
|
11461
|
+
"docs": {
|
|
11462
|
+
"summary": "which subnets to select from."
|
|
11463
|
+
},
|
|
11464
|
+
"name": "vpcSubnets",
|
|
11465
|
+
"optional": true,
|
|
11466
|
+
"type": {
|
|
11467
|
+
"fqn": "aws-cdk-lib.aws_ec2.SubnetSelection"
|
|
11468
|
+
}
|
|
11469
|
+
}
|
|
11470
|
+
],
|
|
11471
|
+
"returns": {
|
|
11472
|
+
"type": {
|
|
11473
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ConnectionNetwork"
|
|
11474
|
+
}
|
|
11475
|
+
},
|
|
11476
|
+
"static": true
|
|
11477
|
+
}
|
|
11478
|
+
],
|
|
11479
|
+
"name": "ConnectionNetwork",
|
|
11480
|
+
"symbolId": "lib/connection:ConnectionNetwork"
|
|
11481
|
+
},
|
|
11327
11482
|
"@aws-cdk/aws-glue-alpha.ConnectionOptions": {
|
|
11328
11483
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
11329
11484
|
"datatype": true,
|
|
11330
11485
|
"docs": {
|
|
11331
11486
|
"stability": "experimental",
|
|
11332
11487
|
"summary": "Base Connection Options.",
|
|
11333
|
-
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport { aws_ec2 as ec2 } from 'aws-cdk-lib';\nimport { aws_secretsmanager as interfaces_secretsmanager } from 'aws-cdk-lib/interfaces';\n\ndeclare const
|
|
11488
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport { aws_ec2 as ec2 } from 'aws-cdk-lib';\nimport { aws_secretsmanager as interfaces_secretsmanager } from 'aws-cdk-lib/interfaces';\n\ndeclare const connectionNetwork: glue_alpha.ConnectionNetwork;\ndeclare const secretRef: interfaces_secretsmanager.ISecretRef;\ndeclare const securityGroup: ec2.SecurityGroup;\nconst connectionOptions: glue_alpha.ConnectionOptions = {\n connectionName: 'connectionName',\n description: 'description',\n matchCriteria: ['matchCriteria'],\n network: connectionNetwork,\n properties: {\n propertiesKey: 'properties',\n },\n secret: secretRef,\n securityGroups: [securityGroup],\n};",
|
|
11334
11489
|
"custom": {
|
|
11335
11490
|
"exampleMetadata": "fixture=_generated"
|
|
11336
11491
|
}
|
|
@@ -11339,7 +11494,7 @@
|
|
|
11339
11494
|
"kind": "interface",
|
|
11340
11495
|
"locationInModule": {
|
|
11341
11496
|
"filename": "lib/connection.ts",
|
|
11342
|
-
"line":
|
|
11497
|
+
"line": 323
|
|
11343
11498
|
},
|
|
11344
11499
|
"name": "ConnectionOptions",
|
|
11345
11500
|
"properties": [
|
|
@@ -11353,7 +11508,7 @@
|
|
|
11353
11508
|
"immutable": true,
|
|
11354
11509
|
"locationInModule": {
|
|
11355
11510
|
"filename": "lib/connection.ts",
|
|
11356
|
-
"line":
|
|
11511
|
+
"line": 328
|
|
11357
11512
|
},
|
|
11358
11513
|
"name": "connectionName",
|
|
11359
11514
|
"optional": true,
|
|
@@ -11371,7 +11526,7 @@
|
|
|
11371
11526
|
"immutable": true,
|
|
11372
11527
|
"locationInModule": {
|
|
11373
11528
|
"filename": "lib/connection.ts",
|
|
11374
|
-
"line":
|
|
11529
|
+
"line": 334
|
|
11375
11530
|
},
|
|
11376
11531
|
"name": "description",
|
|
11377
11532
|
"optional": true,
|
|
@@ -11390,7 +11545,7 @@
|
|
|
11390
11545
|
"immutable": true,
|
|
11391
11546
|
"locationInModule": {
|
|
11392
11547
|
"filename": "lib/connection.ts",
|
|
11393
|
-
"line":
|
|
11548
|
+
"line": 360
|
|
11394
11549
|
},
|
|
11395
11550
|
"name": "matchCriteria",
|
|
11396
11551
|
"optional": true,
|
|
@@ -11403,6 +11558,25 @@
|
|
|
11403
11558
|
}
|
|
11404
11559
|
}
|
|
11405
11560
|
},
|
|
11561
|
+
{
|
|
11562
|
+
"abstract": true,
|
|
11563
|
+
"docs": {
|
|
11564
|
+
"default": "- no VPC network placement",
|
|
11565
|
+
"remarks": "Build it with `ConnectionNetwork.subnet(subnet)` to pin a specific subnet,\nor `ConnectionNetwork.vpc(vpc, vpcSubnets?)` to let the CDK select one.",
|
|
11566
|
+
"stability": "experimental",
|
|
11567
|
+
"summary": "The VPC network placement for this connection, so it can reach resources inside a VPC. See more at https://docs.aws.amazon.com/glue/latest/dg/start-connecting.html."
|
|
11568
|
+
},
|
|
11569
|
+
"immutable": true,
|
|
11570
|
+
"locationInModule": {
|
|
11571
|
+
"filename": "lib/connection.ts",
|
|
11572
|
+
"line": 377
|
|
11573
|
+
},
|
|
11574
|
+
"name": "network",
|
|
11575
|
+
"optional": true,
|
|
11576
|
+
"type": {
|
|
11577
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ConnectionNetwork"
|
|
11578
|
+
}
|
|
11579
|
+
},
|
|
11406
11580
|
{
|
|
11407
11581
|
"abstract": true,
|
|
11408
11582
|
"docs": {
|
|
@@ -11414,7 +11588,7 @@
|
|
|
11414
11588
|
"immutable": true,
|
|
11415
11589
|
"locationInModule": {
|
|
11416
11590
|
"filename": "lib/connection.ts",
|
|
11417
|
-
"line":
|
|
11591
|
+
"line": 341
|
|
11418
11592
|
},
|
|
11419
11593
|
"name": "properties",
|
|
11420
11594
|
"optional": true,
|
|
@@ -11438,7 +11612,7 @@
|
|
|
11438
11612
|
"immutable": true,
|
|
11439
11613
|
"locationInModule": {
|
|
11440
11614
|
"filename": "lib/connection.ts",
|
|
11441
|
-
"line":
|
|
11615
|
+
"line": 353
|
|
11442
11616
|
},
|
|
11443
11617
|
"name": "secret",
|
|
11444
11618
|
"optional": true,
|
|
@@ -11456,7 +11630,7 @@
|
|
|
11456
11630
|
"immutable": true,
|
|
11457
11631
|
"locationInModule": {
|
|
11458
11632
|
"filename": "lib/connection.ts",
|
|
11459
|
-
"line":
|
|
11633
|
+
"line": 366
|
|
11460
11634
|
},
|
|
11461
11635
|
"name": "securityGroups",
|
|
11462
11636
|
"optional": true,
|
|
@@ -11468,63 +11642,6 @@
|
|
|
11468
11642
|
"kind": "array"
|
|
11469
11643
|
}
|
|
11470
11644
|
}
|
|
11471
|
-
},
|
|
11472
|
-
{
|
|
11473
|
-
"abstract": true,
|
|
11474
|
-
"docs": {
|
|
11475
|
-
"default": "- no subnet, unless `vpc` is provided",
|
|
11476
|
-
"remarks": "Mutually exclusive with `vpc`: provide `subnet` to pin the connection to a\nspecific subnet, or provide `vpc` (optionally with `vpcSubnets`) to let the\nCDK select one for you.",
|
|
11477
|
-
"stability": "experimental",
|
|
11478
|
-
"summary": "The VPC subnet to connect to resources within a VPC. See more at https://docs.aws.amazon.com/glue/latest/dg/start-connecting.html."
|
|
11479
|
-
},
|
|
11480
|
-
"immutable": true,
|
|
11481
|
-
"locationInModule": {
|
|
11482
|
-
"filename": "lib/connection.ts",
|
|
11483
|
-
"line": 313
|
|
11484
|
-
},
|
|
11485
|
-
"name": "subnet",
|
|
11486
|
-
"optional": true,
|
|
11487
|
-
"type": {
|
|
11488
|
-
"fqn": "aws-cdk-lib.aws_ec2.ISubnet"
|
|
11489
|
-
}
|
|
11490
|
-
},
|
|
11491
|
-
{
|
|
11492
|
-
"abstract": true,
|
|
11493
|
-
"docs": {
|
|
11494
|
-
"default": "- no VPC, the subnet is taken from `subnet` if provided",
|
|
11495
|
-
"remarks": "When provided, the CDK selects a\nsubnet from this VPC using `vpcSubnets`. A Glue connection targets a single\nsubnet, so the first subnet of the selection is used.\n\nMutually exclusive with `subnet`.",
|
|
11496
|
-
"stability": "experimental",
|
|
11497
|
-
"summary": "The VPC to connect to resources within."
|
|
11498
|
-
},
|
|
11499
|
-
"immutable": true,
|
|
11500
|
-
"locationInModule": {
|
|
11501
|
-
"filename": "lib/connection.ts",
|
|
11502
|
-
"line": 324
|
|
11503
|
-
},
|
|
11504
|
-
"name": "vpc",
|
|
11505
|
-
"optional": true,
|
|
11506
|
-
"type": {
|
|
11507
|
-
"fqn": "aws-cdk-lib.aws_ec2.IVpc"
|
|
11508
|
-
}
|
|
11509
|
-
},
|
|
11510
|
-
{
|
|
11511
|
-
"abstract": true,
|
|
11512
|
-
"docs": {
|
|
11513
|
-
"default": "- private subnets",
|
|
11514
|
-
"remarks": "Only used when\n`vpc` is provided. Since a Glue connection targets a single subnet, the\nfirst subnet of the selection is used.",
|
|
11515
|
-
"stability": "experimental",
|
|
11516
|
-
"summary": "Which subnets of `vpc` to select the connection subnet from."
|
|
11517
|
-
},
|
|
11518
|
-
"immutable": true,
|
|
11519
|
-
"locationInModule": {
|
|
11520
|
-
"filename": "lib/connection.ts",
|
|
11521
|
-
"line": 333
|
|
11522
|
-
},
|
|
11523
|
-
"name": "vpcSubnets",
|
|
11524
|
-
"optional": true,
|
|
11525
|
-
"type": {
|
|
11526
|
-
"fqn": "aws-cdk-lib.aws_ec2.SubnetSelection"
|
|
11527
|
-
}
|
|
11528
11645
|
}
|
|
11529
11646
|
],
|
|
11530
11647
|
"symbolId": "lib/connection:ConnectionOptions"
|
|
@@ -11596,7 +11713,7 @@
|
|
|
11596
11713
|
"docs": {
|
|
11597
11714
|
"stability": "experimental",
|
|
11598
11715
|
"summary": "Construction properties for `Connection`.",
|
|
11599
|
-
"example": "declare const securityGroup: ec2.SecurityGroup;\ndeclare const vpc: ec2.Vpc;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n securityGroups: [securityGroup],\n
|
|
11716
|
+
"example": "declare const securityGroup: ec2.SecurityGroup;\ndeclare const vpc: ec2.Vpc;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n securityGroups: [securityGroup],\n // vpcSubnets is optional - defaults to private subnets\n network: glue.ConnectionNetwork.vpc(vpc, { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }),\n});",
|
|
11600
11717
|
"custom": {
|
|
11601
11718
|
"exampleMetadata": "infused"
|
|
11602
11719
|
}
|
|
@@ -11608,7 +11725,7 @@
|
|
|
11608
11725
|
"kind": "interface",
|
|
11609
11726
|
"locationInModule": {
|
|
11610
11727
|
"filename": "lib/connection.ts",
|
|
11611
|
-
"line":
|
|
11728
|
+
"line": 383
|
|
11612
11729
|
},
|
|
11613
11730
|
"name": "ConnectionProps",
|
|
11614
11731
|
"properties": [
|
|
@@ -11621,7 +11738,7 @@
|
|
|
11621
11738
|
"immutable": true,
|
|
11622
11739
|
"locationInModule": {
|
|
11623
11740
|
"filename": "lib/connection.ts",
|
|
11624
|
-
"line":
|
|
11741
|
+
"line": 387
|
|
11625
11742
|
},
|
|
11626
11743
|
"name": "type",
|
|
11627
11744
|
"type": {
|
|
@@ -11638,7 +11755,7 @@
|
|
|
11638
11755
|
"see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-connectiontype",
|
|
11639
11756
|
"stability": "experimental",
|
|
11640
11757
|
"summary": "The type of the glue connection.",
|
|
11641
|
-
"example": "declare const securityGroup: ec2.SecurityGroup;\ndeclare const vpc: ec2.Vpc;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n securityGroups: [securityGroup],\n
|
|
11758
|
+
"example": "declare const securityGroup: ec2.SecurityGroup;\ndeclare const vpc: ec2.Vpc;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n securityGroups: [securityGroup],\n // vpcSubnets is optional - defaults to private subnets\n network: glue.ConnectionNetwork.vpc(vpc, { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }),\n});",
|
|
11642
11759
|
"custom": {
|
|
11643
11760
|
"exampleMetadata": "infused"
|
|
11644
11761
|
}
|
|
@@ -12400,7 +12517,7 @@
|
|
|
12400
12517
|
"kind": "interface",
|
|
12401
12518
|
"locationInModule": {
|
|
12402
12519
|
"filename": "lib/jobs/job.ts",
|
|
12403
|
-
"line":
|
|
12520
|
+
"line": 93
|
|
12404
12521
|
},
|
|
12405
12522
|
"name": "ContinuousLoggingProps",
|
|
12406
12523
|
"properties": [
|
|
@@ -12413,7 +12530,7 @@
|
|
|
12413
12530
|
"immutable": true,
|
|
12414
12531
|
"locationInModule": {
|
|
12415
12532
|
"filename": "lib/jobs/job.ts",
|
|
12416
|
-
"line":
|
|
12533
|
+
"line": 97
|
|
12417
12534
|
},
|
|
12418
12535
|
"name": "enabled",
|
|
12419
12536
|
"type": {
|
|
@@ -12431,7 +12548,7 @@
|
|
|
12431
12548
|
"immutable": true,
|
|
12432
12549
|
"locationInModule": {
|
|
12433
12550
|
"filename": "lib/jobs/job.ts",
|
|
12434
|
-
"line":
|
|
12551
|
+
"line": 127
|
|
12435
12552
|
},
|
|
12436
12553
|
"name": "conversionPattern",
|
|
12437
12554
|
"optional": true,
|
|
@@ -12449,7 +12566,7 @@
|
|
|
12449
12566
|
"immutable": true,
|
|
12450
12567
|
"locationInModule": {
|
|
12451
12568
|
"filename": "lib/jobs/job.ts",
|
|
12452
|
-
"line":
|
|
12569
|
+
"line": 104
|
|
12453
12570
|
},
|
|
12454
12571
|
"name": "logGroup",
|
|
12455
12572
|
"optional": true,
|
|
@@ -12467,7 +12584,7 @@
|
|
|
12467
12584
|
"immutable": true,
|
|
12468
12585
|
"locationInModule": {
|
|
12469
12586
|
"filename": "lib/jobs/job.ts",
|
|
12470
|
-
"line":
|
|
12587
|
+
"line": 111
|
|
12471
12588
|
},
|
|
12472
12589
|
"name": "logStreamPrefix",
|
|
12473
12590
|
"optional": true,
|
|
@@ -12485,7 +12602,7 @@
|
|
|
12485
12602
|
"immutable": true,
|
|
12486
12603
|
"locationInModule": {
|
|
12487
12604
|
"filename": "lib/jobs/job.ts",
|
|
12488
|
-
"line":
|
|
12605
|
+
"line": 118
|
|
12489
12606
|
},
|
|
12490
12607
|
"name": "quiet",
|
|
12491
12608
|
"optional": true,
|
|
@@ -12496,6 +12613,88 @@
|
|
|
12496
12613
|
],
|
|
12497
12614
|
"symbolId": "lib/jobs/job:ContinuousLoggingProps"
|
|
12498
12615
|
},
|
|
12616
|
+
"@aws-cdk/aws-glue-alpha.CrawlerActionOptions": {
|
|
12617
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
12618
|
+
"datatype": true,
|
|
12619
|
+
"docs": {
|
|
12620
|
+
"stability": "experimental",
|
|
12621
|
+
"summary": "Options for the execution of a crawler.",
|
|
12622
|
+
"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';\n\ndeclare const securityConfiguration: glue_alpha.SecurityConfiguration;\nconst crawlerActionOptions: glue_alpha.CrawlerActionOptions = {\n arguments: {\n argumentsKey: 'arguments',\n },\n securityConfiguration: securityConfiguration,\n timeout: cdk.Duration.minutes(30),\n};",
|
|
12623
|
+
"custom": {
|
|
12624
|
+
"exampleMetadata": "fixture=_generated"
|
|
12625
|
+
}
|
|
12626
|
+
},
|
|
12627
|
+
"fqn": "@aws-cdk/aws-glue-alpha.CrawlerActionOptions",
|
|
12628
|
+
"kind": "interface",
|
|
12629
|
+
"locationInModule": {
|
|
12630
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
12631
|
+
"line": 11
|
|
12632
|
+
},
|
|
12633
|
+
"name": "CrawlerActionOptions",
|
|
12634
|
+
"properties": [
|
|
12635
|
+
{
|
|
12636
|
+
"abstract": true,
|
|
12637
|
+
"docs": {
|
|
12638
|
+
"default": "- no arguments are passed to the job",
|
|
12639
|
+
"stability": "experimental",
|
|
12640
|
+
"summary": "The arguments used when this trigger fires."
|
|
12641
|
+
},
|
|
12642
|
+
"immutable": true,
|
|
12643
|
+
"locationInModule": {
|
|
12644
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
12645
|
+
"line": 17
|
|
12646
|
+
},
|
|
12647
|
+
"name": "arguments",
|
|
12648
|
+
"optional": true,
|
|
12649
|
+
"type": {
|
|
12650
|
+
"collection": {
|
|
12651
|
+
"elementtype": {
|
|
12652
|
+
"primitive": "string"
|
|
12653
|
+
},
|
|
12654
|
+
"kind": "map"
|
|
12655
|
+
}
|
|
12656
|
+
}
|
|
12657
|
+
},
|
|
12658
|
+
{
|
|
12659
|
+
"abstract": true,
|
|
12660
|
+
"docs": {
|
|
12661
|
+
"default": "- no security configuration is used",
|
|
12662
|
+
"stability": "experimental",
|
|
12663
|
+
"summary": "The `SecurityConfiguration` to be used with this action."
|
|
12664
|
+
},
|
|
12665
|
+
"immutable": true,
|
|
12666
|
+
"locationInModule": {
|
|
12667
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
12668
|
+
"line": 31
|
|
12669
|
+
},
|
|
12670
|
+
"name": "securityConfiguration",
|
|
12671
|
+
"optional": true,
|
|
12672
|
+
"type": {
|
|
12673
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ISecurityConfiguration"
|
|
12674
|
+
}
|
|
12675
|
+
},
|
|
12676
|
+
{
|
|
12677
|
+
"abstract": true,
|
|
12678
|
+
"docs": {
|
|
12679
|
+
"default": "- the default timeout value set in the job definition",
|
|
12680
|
+
"remarks": "This is the maximum time that a run can consume resources before it is terminated and enters TIMEOUT status.",
|
|
12681
|
+
"stability": "experimental",
|
|
12682
|
+
"summary": "The run timeout."
|
|
12683
|
+
},
|
|
12684
|
+
"immutable": true,
|
|
12685
|
+
"locationInModule": {
|
|
12686
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
12687
|
+
"line": 24
|
|
12688
|
+
},
|
|
12689
|
+
"name": "timeout",
|
|
12690
|
+
"optional": true,
|
|
12691
|
+
"type": {
|
|
12692
|
+
"fqn": "aws-cdk-lib.Duration"
|
|
12693
|
+
}
|
|
12694
|
+
}
|
|
12695
|
+
],
|
|
12696
|
+
"symbolId": "lib/triggers/trigger-options:CrawlerActionOptions"
|
|
12697
|
+
},
|
|
12499
12698
|
"@aws-cdk/aws-glue-alpha.CrawlerState": {
|
|
12500
12699
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
12501
12700
|
"docs": {
|
|
@@ -12506,7 +12705,7 @@
|
|
|
12506
12705
|
"kind": "enum",
|
|
12507
12706
|
"locationInModule": {
|
|
12508
12707
|
"filename": "lib/constants.ts",
|
|
12509
|
-
"line":
|
|
12708
|
+
"line": 368
|
|
12510
12709
|
},
|
|
12511
12710
|
"members": [
|
|
12512
12711
|
{
|
|
@@ -12555,90 +12754,6 @@
|
|
|
12555
12754
|
"name": "CrawlerState",
|
|
12556
12755
|
"symbolId": "lib/constants:CrawlerState"
|
|
12557
12756
|
},
|
|
12558
|
-
"@aws-cdk/aws-glue-alpha.CustomScheduledTriggerOptions": {
|
|
12559
|
-
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
12560
|
-
"datatype": true,
|
|
12561
|
-
"docs": {
|
|
12562
|
-
"stability": "experimental",
|
|
12563
|
-
"summary": "Properties for configuring a custom-scheduled Glue Trigger.",
|
|
12564
|
-
"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;\ndeclare const triggerSchedule: glue_alpha.TriggerSchedule;\nconst customScheduledTriggerOptions: glue_alpha.CustomScheduledTriggerOptions = {\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 schedule: triggerSchedule,\n\n // the properties below are optional\n description: 'description',\n name: 'name',\n startOnCreation: false,\n};",
|
|
12565
|
-
"custom": {
|
|
12566
|
-
"exampleMetadata": "fixture=_generated"
|
|
12567
|
-
}
|
|
12568
|
-
},
|
|
12569
|
-
"fqn": "@aws-cdk/aws-glue-alpha.CustomScheduledTriggerOptions",
|
|
12570
|
-
"interfaces": [
|
|
12571
|
-
"@aws-cdk/aws-glue-alpha.WeeklyScheduleTriggerOptions"
|
|
12572
|
-
],
|
|
12573
|
-
"kind": "interface",
|
|
12574
|
-
"locationInModule": {
|
|
12575
|
-
"filename": "lib/triggers/trigger-options.ts",
|
|
12576
|
-
"line": 203
|
|
12577
|
-
},
|
|
12578
|
-
"name": "CustomScheduledTriggerOptions",
|
|
12579
|
-
"properties": [
|
|
12580
|
-
{
|
|
12581
|
-
"abstract": true,
|
|
12582
|
-
"docs": {
|
|
12583
|
-
"stability": "experimental",
|
|
12584
|
-
"summary": "The custom schedule for the trigger."
|
|
12585
|
-
},
|
|
12586
|
-
"immutable": true,
|
|
12587
|
-
"locationInModule": {
|
|
12588
|
-
"filename": "lib/triggers/trigger-options.ts",
|
|
12589
|
-
"line": 207
|
|
12590
|
-
},
|
|
12591
|
-
"name": "schedule",
|
|
12592
|
-
"type": {
|
|
12593
|
-
"fqn": "@aws-cdk/aws-glue-alpha.TriggerSchedule"
|
|
12594
|
-
}
|
|
12595
|
-
}
|
|
12596
|
-
],
|
|
12597
|
-
"symbolId": "lib/triggers/trigger-options:CustomScheduledTriggerOptions"
|
|
12598
|
-
},
|
|
12599
|
-
"@aws-cdk/aws-glue-alpha.DailyScheduleTriggerOptions": {
|
|
12600
|
-
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
12601
|
-
"datatype": true,
|
|
12602
|
-
"docs": {
|
|
12603
|
-
"stability": "experimental",
|
|
12604
|
-
"summary": "Properties for configuring a daily-scheduled Glue Trigger.",
|
|
12605
|
-
"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};",
|
|
12606
|
-
"custom": {
|
|
12607
|
-
"exampleMetadata": "fixture=_generated"
|
|
12608
|
-
}
|
|
12609
|
-
},
|
|
12610
|
-
"fqn": "@aws-cdk/aws-glue-alpha.DailyScheduleTriggerOptions",
|
|
12611
|
-
"interfaces": [
|
|
12612
|
-
"@aws-cdk/aws-glue-alpha.TriggerOptions"
|
|
12613
|
-
],
|
|
12614
|
-
"kind": "interface",
|
|
12615
|
-
"locationInModule": {
|
|
12616
|
-
"filename": "lib/triggers/trigger-options.ts",
|
|
12617
|
-
"line": 186
|
|
12618
|
-
},
|
|
12619
|
-
"name": "DailyScheduleTriggerOptions",
|
|
12620
|
-
"properties": [
|
|
12621
|
-
{
|
|
12622
|
-
"abstract": true,
|
|
12623
|
-
"docs": {
|
|
12624
|
-
"default": "- false",
|
|
12625
|
-
"stability": "experimental",
|
|
12626
|
-
"summary": "Whether to start the trigger on creation or not."
|
|
12627
|
-
},
|
|
12628
|
-
"immutable": true,
|
|
12629
|
-
"locationInModule": {
|
|
12630
|
-
"filename": "lib/triggers/trigger-options.ts",
|
|
12631
|
-
"line": 192
|
|
12632
|
-
},
|
|
12633
|
-
"name": "startOnCreation",
|
|
12634
|
-
"optional": true,
|
|
12635
|
-
"type": {
|
|
12636
|
-
"primitive": "boolean"
|
|
12637
|
-
}
|
|
12638
|
-
}
|
|
12639
|
-
],
|
|
12640
|
-
"symbolId": "lib/triggers/trigger-options:DailyScheduleTriggerOptions"
|
|
12641
|
-
},
|
|
12642
12757
|
"@aws-cdk/aws-glue-alpha.DataCatalogEncryptionAtRest": {
|
|
12643
12758
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
12644
12759
|
"docs": {
|
|
@@ -12803,7 +12918,7 @@
|
|
|
12803
12918
|
"docs": {
|
|
12804
12919
|
"stability": "experimental",
|
|
12805
12920
|
"summary": "Defines the input/output formats and ser/de for a single DataFormat.",
|
|
12806
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '
|
|
12921
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: 'NOW-3YEARS',\n max: 'NOW',\n format: 'yyyy-MM-dd',\n }),\n },\n});",
|
|
12807
12922
|
"custom": {
|
|
12808
12923
|
"exampleMetadata": "infused"
|
|
12809
12924
|
}
|
|
@@ -13899,7 +14014,7 @@
|
|
|
13899
14014
|
"see": "https://docs.aws.amazon.com/athena/latest/ug/partition-projection-supported-types.html#partition-projection-date-type",
|
|
13900
14015
|
"stability": "experimental",
|
|
13901
14016
|
"summary": "Date interval unit for partition projection.",
|
|
13902
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval
|
|
14017
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n // `step` bundles interval + unit (supply both or neither). Optional at day\n // precision or coarser; required when the format is sub-day (e.g. hours).\n step: { interval: 1, intervalUnit: glue.DateIntervalUnit.DAYS },\n }),\n },\n});",
|
|
13903
14018
|
"custom": {
|
|
13904
14019
|
"exampleMetadata": "infused"
|
|
13905
14020
|
}
|
|
@@ -13970,7 +14085,7 @@
|
|
|
13970
14085
|
"docs": {
|
|
13971
14086
|
"stability": "experimental",
|
|
13972
14087
|
"summary": "Properties for DATE partition projection configuration.",
|
|
13973
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval
|
|
14088
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n // `step` bundles interval + unit (supply both or neither). Optional at day\n // precision or coarser; required when the format is sub-day (e.g. hours).\n step: { interval: 1, intervalUnit: glue.DateIntervalUnit.DAYS },\n }),\n },\n});",
|
|
13974
14089
|
"custom": {
|
|
13975
14090
|
"exampleMetadata": "infused"
|
|
13976
14091
|
}
|
|
@@ -13979,7 +14094,7 @@
|
|
|
13979
14094
|
"kind": "interface",
|
|
13980
14095
|
"locationInModule": {
|
|
13981
14096
|
"filename": "lib/partition-projection.ts",
|
|
13982
|
-
"line":
|
|
14097
|
+
"line": 127
|
|
13983
14098
|
},
|
|
13984
14099
|
"name": "DatePartitionProjectionConfigurationProps",
|
|
13985
14100
|
"properties": [
|
|
@@ -13994,7 +14109,7 @@
|
|
|
13994
14109
|
"immutable": true,
|
|
13995
14110
|
"locationInModule": {
|
|
13996
14111
|
"filename": "lib/partition-projection.ts",
|
|
13997
|
-
"line":
|
|
14112
|
+
"line": 159
|
|
13998
14113
|
},
|
|
13999
14114
|
"name": "format",
|
|
14000
14115
|
"type": {
|
|
@@ -14011,7 +14126,7 @@
|
|
|
14011
14126
|
"immutable": true,
|
|
14012
14127
|
"locationInModule": {
|
|
14013
14128
|
"filename": "lib/partition-projection.ts",
|
|
14014
|
-
"line":
|
|
14129
|
+
"line": 150
|
|
14015
14130
|
},
|
|
14016
14131
|
"name": "max",
|
|
14017
14132
|
"type": {
|
|
@@ -14029,7 +14144,7 @@
|
|
|
14029
14144
|
"immutable": true,
|
|
14030
14145
|
"locationInModule": {
|
|
14031
14146
|
"filename": "lib/partition-projection.ts",
|
|
14032
|
-
"line":
|
|
14147
|
+
"line": 139
|
|
14033
14148
|
},
|
|
14034
14149
|
"name": "min",
|
|
14035
14150
|
"type": {
|
|
@@ -14040,17 +14155,56 @@
|
|
|
14040
14155
|
"abstract": true,
|
|
14041
14156
|
"docs": {
|
|
14042
14157
|
"default": "- Athena's default step for the format's precision; required when `format` is sub-day precision",
|
|
14043
|
-
"remarks": "
|
|
14158
|
+
"remarks": "The two are supplied together, so a partial step cannot be expressed.\nRequired when `format` carries sub-day precision — a field finer than a\nday, such as hours or AM/PM; at day or coarser precision Athena defaults\nthe step, so it may be omitted.",
|
|
14159
|
+
"stability": "experimental",
|
|
14160
|
+
"summary": "Interval step (`interval` + `intervalUnit`) between partition values."
|
|
14161
|
+
},
|
|
14162
|
+
"immutable": true,
|
|
14163
|
+
"locationInModule": {
|
|
14164
|
+
"filename": "lib/partition-projection.ts",
|
|
14165
|
+
"line": 171
|
|
14166
|
+
},
|
|
14167
|
+
"name": "step",
|
|
14168
|
+
"optional": true,
|
|
14169
|
+
"type": {
|
|
14170
|
+
"fqn": "@aws-cdk/aws-glue-alpha.DateProjectionStep"
|
|
14171
|
+
}
|
|
14172
|
+
}
|
|
14173
|
+
],
|
|
14174
|
+
"symbolId": "lib/partition-projection:DatePartitionProjectionConfigurationProps"
|
|
14175
|
+
},
|
|
14176
|
+
"@aws-cdk/aws-glue-alpha.DateProjectionStep": {
|
|
14177
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
14178
|
+
"datatype": true,
|
|
14179
|
+
"docs": {
|
|
14180
|
+
"remarks": "Bundling `interval` and `intervalUnit` into one value makes a partial step\n(one without the other) unrepresentable.",
|
|
14181
|
+
"stability": "experimental",
|
|
14182
|
+
"summary": "A required-together interval step for DATE partition projection.",
|
|
14183
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n // `step` bundles interval + unit (supply both or neither). Optional at day\n // precision or coarser; required when the format is sub-day (e.g. hours).\n step: { interval: 1, intervalUnit: glue.DateIntervalUnit.DAYS },\n }),\n },\n});",
|
|
14184
|
+
"custom": {
|
|
14185
|
+
"exampleMetadata": "infused"
|
|
14186
|
+
}
|
|
14187
|
+
},
|
|
14188
|
+
"fqn": "@aws-cdk/aws-glue-alpha.DateProjectionStep",
|
|
14189
|
+
"kind": "interface",
|
|
14190
|
+
"locationInModule": {
|
|
14191
|
+
"filename": "lib/partition-projection.ts",
|
|
14192
|
+
"line": 112
|
|
14193
|
+
},
|
|
14194
|
+
"name": "DateProjectionStep",
|
|
14195
|
+
"properties": [
|
|
14196
|
+
{
|
|
14197
|
+
"abstract": true,
|
|
14198
|
+
"docs": {
|
|
14044
14199
|
"stability": "experimental",
|
|
14045
14200
|
"summary": "Interval between partition values."
|
|
14046
14201
|
},
|
|
14047
14202
|
"immutable": true,
|
|
14048
14203
|
"locationInModule": {
|
|
14049
14204
|
"filename": "lib/partition-projection.ts",
|
|
14050
|
-
"line":
|
|
14205
|
+
"line": 116
|
|
14051
14206
|
},
|
|
14052
14207
|
"name": "interval",
|
|
14053
|
-
"optional": true,
|
|
14054
14208
|
"type": {
|
|
14055
14209
|
"primitive": "number"
|
|
14056
14210
|
}
|
|
@@ -14058,24 +14212,21 @@
|
|
|
14058
14212
|
{
|
|
14059
14213
|
"abstract": true,
|
|
14060
14214
|
"docs": {
|
|
14061
|
-
"default": "- Athena's default unit for the format's precision; required when `format` is sub-day precision",
|
|
14062
|
-
"remarks": "Required (together with `interval`) when `format` carries sub-day\nprecision — i.e. a field finer than a day, such as hours or AM/PM. At day\nor coarser precision Athena defaults the step, so it is optional.",
|
|
14063
14215
|
"stability": "experimental",
|
|
14064
14216
|
"summary": "Unit for the interval."
|
|
14065
14217
|
},
|
|
14066
14218
|
"immutable": true,
|
|
14067
14219
|
"locationInModule": {
|
|
14068
14220
|
"filename": "lib/partition-projection.ts",
|
|
14069
|
-
"line":
|
|
14221
|
+
"line": 121
|
|
14070
14222
|
},
|
|
14071
14223
|
"name": "intervalUnit",
|
|
14072
|
-
"optional": true,
|
|
14073
14224
|
"type": {
|
|
14074
14225
|
"fqn": "@aws-cdk/aws-glue-alpha.DateIntervalUnit"
|
|
14075
14226
|
}
|
|
14076
14227
|
}
|
|
14077
14228
|
],
|
|
14078
|
-
"symbolId": "lib/partition-projection:
|
|
14229
|
+
"symbolId": "lib/partition-projection:DateProjectionStep"
|
|
14079
14230
|
},
|
|
14080
14231
|
"@aws-cdk/aws-glue-alpha.Dqdl": {
|
|
14081
14232
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
@@ -14143,7 +14294,7 @@
|
|
|
14143
14294
|
"kind": "interface",
|
|
14144
14295
|
"locationInModule": {
|
|
14145
14296
|
"filename": "lib/partition-projection.ts",
|
|
14146
|
-
"line":
|
|
14297
|
+
"line": 177
|
|
14147
14298
|
},
|
|
14148
14299
|
"name": "EnumPartitionProjectionConfigurationProps",
|
|
14149
14300
|
"properties": [
|
|
@@ -14157,7 +14308,7 @@
|
|
|
14157
14308
|
"immutable": true,
|
|
14158
14309
|
"locationInModule": {
|
|
14159
14310
|
"filename": "lib/partition-projection.ts",
|
|
14160
|
-
"line":
|
|
14311
|
+
"line": 183
|
|
14161
14312
|
},
|
|
14162
14313
|
"name": "values",
|
|
14163
14314
|
"type": {
|
|
@@ -14187,7 +14338,7 @@
|
|
|
14187
14338
|
"kind": "interface",
|
|
14188
14339
|
"locationInModule": {
|
|
14189
14340
|
"filename": "lib/triggers/trigger-options.ts",
|
|
14190
|
-
"line":
|
|
14341
|
+
"line": 295
|
|
14191
14342
|
},
|
|
14192
14343
|
"name": "EventBatchingCondition",
|
|
14193
14344
|
"properties": [
|
|
@@ -14200,7 +14351,7 @@
|
|
|
14200
14351
|
"immutable": true,
|
|
14201
14352
|
"locationInModule": {
|
|
14202
14353
|
"filename": "lib/triggers/trigger-options.ts",
|
|
14203
|
-
"line":
|
|
14354
|
+
"line": 299
|
|
14204
14355
|
},
|
|
14205
14356
|
"name": "batchSize",
|
|
14206
14357
|
"type": {
|
|
@@ -14217,7 +14368,7 @@
|
|
|
14217
14368
|
"immutable": true,
|
|
14218
14369
|
"locationInModule": {
|
|
14219
14370
|
"filename": "lib/triggers/trigger-options.ts",
|
|
14220
|
-
"line":
|
|
14371
|
+
"line": 306
|
|
14221
14372
|
},
|
|
14222
14373
|
"name": "batchWindow",
|
|
14223
14374
|
"optional": true,
|
|
@@ -14228,6 +14379,49 @@
|
|
|
14228
14379
|
],
|
|
14229
14380
|
"symbolId": "lib/triggers/trigger-options:EventBatchingCondition"
|
|
14230
14381
|
},
|
|
14382
|
+
"@aws-cdk/aws-glue-alpha.EventTriggerOptions": {
|
|
14383
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
14384
|
+
"datatype": true,
|
|
14385
|
+
"docs": {
|
|
14386
|
+
"stability": "experimental",
|
|
14387
|
+
"summary": "Properties for configuring an Event Bridge based Glue Trigger.",
|
|
14388
|
+
"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';\n\ndeclare const action: glue_alpha.Action;\nconst eventTriggerOptions: glue_alpha.EventTriggerOptions = {\n actions: [action],\n\n // the properties below are optional\n description: 'description',\n eventBatchingCondition: {\n batchSize: 123,\n\n // the properties below are optional\n batchWindow: cdk.Duration.minutes(30),\n },\n name: 'name',\n};",
|
|
14389
|
+
"custom": {
|
|
14390
|
+
"exampleMetadata": "fixture=_generated"
|
|
14391
|
+
}
|
|
14392
|
+
},
|
|
14393
|
+
"fqn": "@aws-cdk/aws-glue-alpha.EventTriggerOptions",
|
|
14394
|
+
"interfaces": [
|
|
14395
|
+
"@aws-cdk/aws-glue-alpha.TriggerOptions"
|
|
14396
|
+
],
|
|
14397
|
+
"kind": "interface",
|
|
14398
|
+
"locationInModule": {
|
|
14399
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
14400
|
+
"line": 366
|
|
14401
|
+
},
|
|
14402
|
+
"name": "EventTriggerOptions",
|
|
14403
|
+
"properties": [
|
|
14404
|
+
{
|
|
14405
|
+
"abstract": true,
|
|
14406
|
+
"docs": {
|
|
14407
|
+
"default": "- no batch condition",
|
|
14408
|
+
"stability": "experimental",
|
|
14409
|
+
"summary": "Batch condition for the trigger."
|
|
14410
|
+
},
|
|
14411
|
+
"immutable": true,
|
|
14412
|
+
"locationInModule": {
|
|
14413
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
14414
|
+
"line": 372
|
|
14415
|
+
},
|
|
14416
|
+
"name": "eventBatchingCondition",
|
|
14417
|
+
"optional": true,
|
|
14418
|
+
"type": {
|
|
14419
|
+
"fqn": "@aws-cdk/aws-glue-alpha.EventBatchingCondition"
|
|
14420
|
+
}
|
|
14421
|
+
}
|
|
14422
|
+
],
|
|
14423
|
+
"symbolId": "lib/triggers/trigger-options:EventTriggerOptions"
|
|
14424
|
+
},
|
|
14231
14425
|
"@aws-cdk/aws-glue-alpha.ExecutionClass": {
|
|
14232
14426
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
14233
14427
|
"docs": {
|
|
@@ -14923,12 +15117,13 @@
|
|
|
14923
15117
|
"fqn": "@aws-cdk/aws-glue-alpha.IJob",
|
|
14924
15118
|
"interfaces": [
|
|
14925
15119
|
"aws-cdk-lib.IResource",
|
|
14926
|
-
"aws-cdk-lib.aws_iam.IGrantable"
|
|
15120
|
+
"aws-cdk-lib.aws_iam.IGrantable",
|
|
15121
|
+
"aws-cdk-lib.interfaces.aws_glue.IJobRef"
|
|
14927
15122
|
],
|
|
14928
15123
|
"kind": "interface",
|
|
14929
15124
|
"locationInModule": {
|
|
14930
15125
|
"filename": "lib/jobs/job.ts",
|
|
14931
|
-
"line":
|
|
15126
|
+
"line": 19
|
|
14932
15127
|
},
|
|
14933
15128
|
"methods": [
|
|
14934
15129
|
{
|
|
@@ -14940,7 +15135,7 @@
|
|
|
14940
15135
|
},
|
|
14941
15136
|
"locationInModule": {
|
|
14942
15137
|
"filename": "lib/jobs/job.ts",
|
|
14943
|
-
"line":
|
|
15138
|
+
"line": 69
|
|
14944
15139
|
},
|
|
14945
15140
|
"name": "metric",
|
|
14946
15141
|
"parameters": [
|
|
@@ -14987,7 +15182,7 @@
|
|
|
14987
15182
|
},
|
|
14988
15183
|
"locationInModule": {
|
|
14989
15184
|
"filename": "lib/jobs/job.ts",
|
|
14990
|
-
"line":
|
|
15185
|
+
"line": 79
|
|
14991
15186
|
},
|
|
14992
15187
|
"name": "metricFailure",
|
|
14993
15188
|
"parameters": [
|
|
@@ -15013,7 +15208,7 @@
|
|
|
15013
15208
|
},
|
|
15014
15209
|
"locationInModule": {
|
|
15015
15210
|
"filename": "lib/jobs/job.ts",
|
|
15016
|
-
"line":
|
|
15211
|
+
"line": 74
|
|
15017
15212
|
},
|
|
15018
15213
|
"name": "metricSuccess",
|
|
15019
15214
|
"parameters": [
|
|
@@ -15039,7 +15234,7 @@
|
|
|
15039
15234
|
},
|
|
15040
15235
|
"locationInModule": {
|
|
15041
15236
|
"filename": "lib/jobs/job.ts",
|
|
15042
|
-
"line":
|
|
15237
|
+
"line": 84
|
|
15043
15238
|
},
|
|
15044
15239
|
"name": "metricTimeout",
|
|
15045
15240
|
"parameters": [
|
|
@@ -15066,7 +15261,7 @@
|
|
|
15066
15261
|
},
|
|
15067
15262
|
"locationInModule": {
|
|
15068
15263
|
"filename": "lib/jobs/job.ts",
|
|
15069
|
-
"line":
|
|
15264
|
+
"line": 37
|
|
15070
15265
|
},
|
|
15071
15266
|
"name": "onEvent",
|
|
15072
15267
|
"parameters": [
|
|
@@ -15099,7 +15294,7 @@
|
|
|
15099
15294
|
},
|
|
15100
15295
|
"locationInModule": {
|
|
15101
15296
|
"filename": "lib/jobs/job.ts",
|
|
15102
|
-
"line":
|
|
15297
|
+
"line": 51
|
|
15103
15298
|
},
|
|
15104
15299
|
"name": "onFailure",
|
|
15105
15300
|
"parameters": [
|
|
@@ -15132,7 +15327,7 @@
|
|
|
15132
15327
|
},
|
|
15133
15328
|
"locationInModule": {
|
|
15134
15329
|
"filename": "lib/jobs/job.ts",
|
|
15135
|
-
"line":
|
|
15330
|
+
"line": 44
|
|
15136
15331
|
},
|
|
15137
15332
|
"name": "onSuccess",
|
|
15138
15333
|
"parameters": [
|
|
@@ -15165,7 +15360,7 @@
|
|
|
15165
15360
|
},
|
|
15166
15361
|
"locationInModule": {
|
|
15167
15362
|
"filename": "lib/jobs/job.ts",
|
|
15168
|
-
"line":
|
|
15363
|
+
"line": 58
|
|
15169
15364
|
},
|
|
15170
15365
|
"name": "onTimeout",
|
|
15171
15366
|
"parameters": [
|
|
@@ -15204,7 +15399,7 @@
|
|
|
15204
15399
|
"immutable": true,
|
|
15205
15400
|
"locationInModule": {
|
|
15206
15401
|
"filename": "lib/jobs/job.ts",
|
|
15207
|
-
"line":
|
|
15402
|
+
"line": 30
|
|
15208
15403
|
},
|
|
15209
15404
|
"name": "jobArn",
|
|
15210
15405
|
"type": {
|
|
@@ -15223,7 +15418,7 @@
|
|
|
15223
15418
|
"immutable": true,
|
|
15224
15419
|
"locationInModule": {
|
|
15225
15420
|
"filename": "lib/jobs/job.ts",
|
|
15226
|
-
"line":
|
|
15421
|
+
"line": 24
|
|
15227
15422
|
},
|
|
15228
15423
|
"name": "jobName",
|
|
15229
15424
|
"type": {
|
|
@@ -15341,20 +15536,21 @@
|
|
|
15341
15536
|
"kind": "interface",
|
|
15342
15537
|
"locationInModule": {
|
|
15343
15538
|
"filename": "lib/triggers/workflow.ts",
|
|
15344
|
-
"line":
|
|
15539
|
+
"line": 24
|
|
15345
15540
|
},
|
|
15346
15541
|
"methods": [
|
|
15347
15542
|
{
|
|
15348
15543
|
"abstract": true,
|
|
15349
15544
|
"docs": {
|
|
15545
|
+
"returns": "a reference to the created trigger.",
|
|
15350
15546
|
"stability": "experimental",
|
|
15351
|
-
"summary": "Add
|
|
15547
|
+
"summary": "Add a conditional (predicate-based) trigger to the workflow."
|
|
15352
15548
|
},
|
|
15353
15549
|
"locationInModule": {
|
|
15354
15550
|
"filename": "lib/triggers/workflow.ts",
|
|
15355
|
-
"line":
|
|
15551
|
+
"line": 63
|
|
15356
15552
|
},
|
|
15357
|
-
"name": "
|
|
15553
|
+
"name": "addConditionalTrigger",
|
|
15358
15554
|
"parameters": [
|
|
15359
15555
|
{
|
|
15360
15556
|
"name": "id",
|
|
@@ -15365,27 +15561,28 @@
|
|
|
15365
15561
|
{
|
|
15366
15562
|
"name": "options",
|
|
15367
15563
|
"type": {
|
|
15368
|
-
"fqn": "@aws-cdk/aws-glue-alpha.
|
|
15564
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ConditionalTriggerOptions"
|
|
15369
15565
|
}
|
|
15370
15566
|
}
|
|
15371
15567
|
],
|
|
15372
15568
|
"returns": {
|
|
15373
15569
|
"type": {
|
|
15374
|
-
"fqn": "aws-cdk-lib.aws_glue.
|
|
15570
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.ITriggerRef"
|
|
15375
15571
|
}
|
|
15376
15572
|
}
|
|
15377
15573
|
},
|
|
15378
15574
|
{
|
|
15379
15575
|
"abstract": true,
|
|
15380
15576
|
"docs": {
|
|
15577
|
+
"returns": "a reference to the created trigger.",
|
|
15381
15578
|
"stability": "experimental",
|
|
15382
|
-
"summary": "Add an
|
|
15579
|
+
"summary": "Add an EventBridge event-based trigger to the workflow."
|
|
15383
15580
|
},
|
|
15384
15581
|
"locationInModule": {
|
|
15385
15582
|
"filename": "lib/triggers/workflow.ts",
|
|
15386
|
-
"line":
|
|
15583
|
+
"line": 56
|
|
15387
15584
|
},
|
|
15388
|
-
"name": "
|
|
15585
|
+
"name": "addEventTrigger",
|
|
15389
15586
|
"parameters": [
|
|
15390
15587
|
{
|
|
15391
15588
|
"name": "id",
|
|
@@ -15396,25 +15593,26 @@
|
|
|
15396
15593
|
{
|
|
15397
15594
|
"name": "options",
|
|
15398
15595
|
"type": {
|
|
15399
|
-
"fqn": "@aws-cdk/aws-glue-alpha.
|
|
15596
|
+
"fqn": "@aws-cdk/aws-glue-alpha.EventTriggerOptions"
|
|
15400
15597
|
}
|
|
15401
15598
|
}
|
|
15402
15599
|
],
|
|
15403
15600
|
"returns": {
|
|
15404
15601
|
"type": {
|
|
15405
|
-
"fqn": "aws-cdk-lib.aws_glue.
|
|
15602
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.ITriggerRef"
|
|
15406
15603
|
}
|
|
15407
15604
|
}
|
|
15408
15605
|
},
|
|
15409
15606
|
{
|
|
15410
15607
|
"abstract": true,
|
|
15411
15608
|
"docs": {
|
|
15609
|
+
"returns": "a reference to the created trigger.",
|
|
15412
15610
|
"stability": "experimental",
|
|
15413
15611
|
"summary": "Add an on-demand trigger to the workflow."
|
|
15414
15612
|
},
|
|
15415
15613
|
"locationInModule": {
|
|
15416
15614
|
"filename": "lib/triggers/workflow.ts",
|
|
15417
|
-
"line":
|
|
15615
|
+
"line": 42
|
|
15418
15616
|
},
|
|
15419
15617
|
"name": "addOnDemandTrigger",
|
|
15420
15618
|
"parameters": [
|
|
@@ -15433,21 +15631,22 @@
|
|
|
15433
15631
|
],
|
|
15434
15632
|
"returns": {
|
|
15435
15633
|
"type": {
|
|
15436
|
-
"fqn": "aws-cdk-lib.aws_glue.
|
|
15634
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.ITriggerRef"
|
|
15437
15635
|
}
|
|
15438
15636
|
}
|
|
15439
15637
|
},
|
|
15440
15638
|
{
|
|
15441
15639
|
"abstract": true,
|
|
15442
15640
|
"docs": {
|
|
15641
|
+
"returns": "a reference to the created trigger.",
|
|
15443
15642
|
"stability": "experimental",
|
|
15444
|
-
"summary": "Add
|
|
15643
|
+
"summary": "Add a scheduled trigger to the workflow."
|
|
15445
15644
|
},
|
|
15446
15645
|
"locationInModule": {
|
|
15447
15646
|
"filename": "lib/triggers/workflow.ts",
|
|
15448
|
-
"line":
|
|
15647
|
+
"line": 49
|
|
15449
15648
|
},
|
|
15450
|
-
"name": "
|
|
15649
|
+
"name": "addScheduledTrigger",
|
|
15451
15650
|
"parameters": [
|
|
15452
15651
|
{
|
|
15453
15652
|
"name": "id",
|
|
@@ -15458,13 +15657,13 @@
|
|
|
15458
15657
|
{
|
|
15459
15658
|
"name": "options",
|
|
15460
15659
|
"type": {
|
|
15461
|
-
"fqn": "@aws-cdk/aws-glue-alpha.
|
|
15660
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ScheduledTriggerOptions"
|
|
15462
15661
|
}
|
|
15463
15662
|
}
|
|
15464
15663
|
],
|
|
15465
15664
|
"returns": {
|
|
15466
15665
|
"type": {
|
|
15467
|
-
"fqn": "aws-cdk-lib.aws_glue.
|
|
15666
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.ITriggerRef"
|
|
15468
15667
|
}
|
|
15469
15668
|
}
|
|
15470
15669
|
}
|
|
@@ -15483,7 +15682,7 @@
|
|
|
15483
15682
|
"immutable": true,
|
|
15484
15683
|
"locationInModule": {
|
|
15485
15684
|
"filename": "lib/triggers/workflow.ts",
|
|
15486
|
-
"line":
|
|
15685
|
+
"line": 35
|
|
15487
15686
|
},
|
|
15488
15687
|
"name": "workflowArn",
|
|
15489
15688
|
"type": {
|
|
@@ -15502,7 +15701,7 @@
|
|
|
15502
15701
|
"immutable": true,
|
|
15503
15702
|
"locationInModule": {
|
|
15504
15703
|
"filename": "lib/triggers/workflow.ts",
|
|
15505
|
-
"line":
|
|
15704
|
+
"line": 29
|
|
15506
15705
|
},
|
|
15507
15706
|
"name": "workflowName",
|
|
15508
15707
|
"type": {
|
|
@@ -15846,7 +16045,7 @@
|
|
|
15846
16045
|
"kind": "class",
|
|
15847
16046
|
"locationInModule": {
|
|
15848
16047
|
"filename": "lib/jobs/job.ts",
|
|
15849
|
-
"line":
|
|
16048
|
+
"line": 456
|
|
15850
16049
|
},
|
|
15851
16050
|
"methods": [
|
|
15852
16051
|
{
|
|
@@ -15856,7 +16055,7 @@
|
|
|
15856
16055
|
},
|
|
15857
16056
|
"locationInModule": {
|
|
15858
16057
|
"filename": "lib/jobs/job.ts",
|
|
15859
|
-
"line":
|
|
16058
|
+
"line": 465
|
|
15860
16059
|
},
|
|
15861
16060
|
"name": "fromJobAttributes",
|
|
15862
16061
|
"parameters": [
|
|
@@ -15897,17 +16096,45 @@
|
|
|
15897
16096
|
},
|
|
15898
16097
|
{
|
|
15899
16098
|
"docs": {
|
|
16099
|
+
"stability": "experimental"
|
|
16100
|
+
},
|
|
16101
|
+
"locationInModule": {
|
|
16102
|
+
"filename": "lib/jobs/job.ts",
|
|
16103
|
+
"line": 626
|
|
16104
|
+
},
|
|
16105
|
+
"name": "codeS3ObjectUrl",
|
|
16106
|
+
"parameters": [
|
|
16107
|
+
{
|
|
16108
|
+
"name": "code",
|
|
16109
|
+
"type": {
|
|
16110
|
+
"fqn": "@aws-cdk/aws-glue-alpha.Code"
|
|
16111
|
+
}
|
|
16112
|
+
}
|
|
16113
|
+
],
|
|
16114
|
+
"protected": true,
|
|
16115
|
+
"returns": {
|
|
16116
|
+
"type": {
|
|
16117
|
+
"primitive": "string"
|
|
16118
|
+
}
|
|
16119
|
+
}
|
|
16120
|
+
},
|
|
16121
|
+
{
|
|
16122
|
+
"docs": {
|
|
16123
|
+
"remarks": "The construct owns every argument it emits — whether the value comes from a dedicated typed\nprop (e.g. `continuousLogging`, `enableMetrics`, `sparkUI`) or from the job class itself\n(e.g. `--job-language`). Those arguments, plus the arguments Glue reserves for its own use,\nMUST be configured through their dedicated props rather than the untyped `defaultArguments`\nmap, so there is exactly one way to express each intent. Passing such a key through\n`defaultArguments` therefore throws instead of silently winning or being silently dropped.\n\nA managed key whose supplied value is identical to the construct's value is not contradictory,\nso it is allowed rather than rejected (auto-correcting config is preferred over errors).\nGlue-reserved keys are never emitted by the construct, so there is no value to reconcile and\nthey always throw.\n\nThe reserved set is `_managedArgumentKeys` — every key the construct declared through\n{@link setManagedArgument}, whether or not a value was emitted for it. It is deliberately NOT\nderived from the keys that carry a value: a typed prop that turns a feature *off* (e.g.\n`enableMetrics: false`) emits no value but still reserves its key, so `defaultArguments` cannot\nsilently re-enable it.\n\nConflict detection relies on string equality of the argument keys, which cannot see through\nunresolved tokens (e.g. a key produced by `CfnJson` that only resolves at deploy time). If a\nkey is a token, the check is skipped for that key and a synthesis-time warning is emitted, so\nthe (rare) case where a token key resolves to a managed argument at deploy time — in which the\nconstruct-managed value would silently take precedence — is surfaced rather than hidden.",
|
|
15900
16124
|
"see": "https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html",
|
|
15901
16125
|
"stability": "experimental",
|
|
15902
|
-
"summary": "
|
|
16126
|
+
"summary": "Merge the customer-supplied `defaultArguments` with the arguments this construct manages."
|
|
15903
16127
|
},
|
|
15904
16128
|
"locationInModule": {
|
|
15905
16129
|
"filename": "lib/jobs/job.ts",
|
|
15906
|
-
"line":
|
|
16130
|
+
"line": 556
|
|
15907
16131
|
},
|
|
15908
|
-
"name": "
|
|
16132
|
+
"name": "mergeDefaultArguments",
|
|
15909
16133
|
"parameters": [
|
|
15910
16134
|
{
|
|
16135
|
+
"docs": {
|
|
16136
|
+
"summary": "the caller-supplied escape-hatch arguments, if any."
|
|
16137
|
+
},
|
|
15911
16138
|
"name": "defaultArguments",
|
|
15912
16139
|
"optional": true,
|
|
15913
16140
|
"type": {
|
|
@@ -15922,7 +16149,6 @@
|
|
|
15922
16149
|
],
|
|
15923
16150
|
"protected": true,
|
|
15924
16151
|
"returns": {
|
|
15925
|
-
"optional": true,
|
|
15926
16152
|
"type": {
|
|
15927
16153
|
"collection": {
|
|
15928
16154
|
"elementtype": {
|
|
@@ -15935,43 +16161,53 @@
|
|
|
15935
16161
|
},
|
|
15936
16162
|
{
|
|
15937
16163
|
"docs": {
|
|
15938
|
-
"
|
|
16164
|
+
"remarks": "This is the single sink for every argument a job construct derives from its typed props (or\nfrom the job class itself). Call it once per managed key, passing `undefined` as the value when\nthe corresponding feature is turned off or unset — the key is still reserved from\n`defaultArguments` either way, so a disabled feature cannot be re-enabled through the escape\nhatch. There is deliberately no other way for a subclass to emit a managed argument, so the\nreserved set can never drift from what is emitted.",
|
|
16165
|
+
"stability": "experimental",
|
|
16166
|
+
"summary": "Declare `key` as construct-managed and, when `value` is defined, emit it into the job's arguments."
|
|
15939
16167
|
},
|
|
15940
16168
|
"locationInModule": {
|
|
15941
16169
|
"filename": "lib/jobs/job.ts",
|
|
15942
|
-
"line":
|
|
16170
|
+
"line": 519
|
|
15943
16171
|
},
|
|
15944
|
-
"name": "
|
|
16172
|
+
"name": "setManagedArgument",
|
|
15945
16173
|
"parameters": [
|
|
15946
16174
|
{
|
|
15947
|
-
"
|
|
16175
|
+
"docs": {
|
|
16176
|
+
"summary": "the Glue argument key, e.g. `--enable-metrics`."
|
|
16177
|
+
},
|
|
16178
|
+
"name": "key",
|
|
15948
16179
|
"type": {
|
|
15949
|
-
"
|
|
16180
|
+
"primitive": "string"
|
|
16181
|
+
}
|
|
16182
|
+
},
|
|
16183
|
+
{
|
|
16184
|
+
"docs": {
|
|
16185
|
+
"summary": "the value to emit, or `undefined` to reserve the key without emitting it."
|
|
16186
|
+
},
|
|
16187
|
+
"name": "value",
|
|
16188
|
+
"optional": true,
|
|
16189
|
+
"type": {
|
|
16190
|
+
"primitive": "string"
|
|
15950
16191
|
}
|
|
15951
16192
|
}
|
|
15952
16193
|
],
|
|
15953
|
-
"protected": true
|
|
15954
|
-
"returns": {
|
|
15955
|
-
"type": {
|
|
15956
|
-
"primitive": "string"
|
|
15957
|
-
}
|
|
15958
|
-
}
|
|
16194
|
+
"protected": true
|
|
15959
16195
|
},
|
|
15960
16196
|
{
|
|
15961
16197
|
"docs": {
|
|
15962
|
-
"
|
|
16198
|
+
"remarks": "All five continuous-logging keys are reserved on every job type regardless of configuration:\nthey are always registered through {@link setManagedArgument}, and carry a value only when\nlogging is enabled. This keeps `defaultArguments` from re-enabling logging a user turned off.",
|
|
15963
16199
|
"stability": "experimental",
|
|
15964
|
-
"summary": "
|
|
16200
|
+
"summary": "Register (and, when enabled, emit) the continuous-logging arguments this job manages."
|
|
15965
16201
|
},
|
|
15966
16202
|
"locationInModule": {
|
|
15967
16203
|
"filename": "lib/jobs/job.ts",
|
|
15968
|
-
"line":
|
|
16204
|
+
"line": 599
|
|
15969
16205
|
},
|
|
15970
16206
|
"name": "setupContinuousLogging",
|
|
15971
16207
|
"parameters": [
|
|
15972
16208
|
{
|
|
15973
16209
|
"docs": {
|
|
15974
|
-
"summary": "The IAM role to
|
|
16210
|
+
"summary": "The IAM role to grant write access to a custom log group, if one is provided."
|
|
15975
16211
|
},
|
|
15976
16212
|
"name": "role",
|
|
15977
16213
|
"type": {
|
|
@@ -15987,14 +16223,19 @@
|
|
|
15987
16223
|
"type": {
|
|
15988
16224
|
"fqn": "@aws-cdk/aws-glue-alpha.ContinuousLoggingProps"
|
|
15989
16225
|
}
|
|
16226
|
+
},
|
|
16227
|
+
{
|
|
16228
|
+
"docs": {
|
|
16229
|
+
"summary": "The security configuration attached to the job, if any."
|
|
16230
|
+
},
|
|
16231
|
+
"name": "securityConfiguration",
|
|
16232
|
+
"optional": true,
|
|
16233
|
+
"type": {
|
|
16234
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ISecurityConfiguration"
|
|
16235
|
+
}
|
|
15990
16236
|
}
|
|
15991
16237
|
],
|
|
15992
|
-
"protected": true
|
|
15993
|
-
"returns": {
|
|
15994
|
-
"type": {
|
|
15995
|
-
"primitive": "any"
|
|
15996
|
-
}
|
|
15997
|
-
}
|
|
16238
|
+
"protected": true
|
|
15998
16239
|
}
|
|
15999
16240
|
],
|
|
16000
16241
|
"name": "Job",
|
|
@@ -16008,7 +16249,7 @@
|
|
|
16008
16249
|
"immutable": true,
|
|
16009
16250
|
"locationInModule": {
|
|
16010
16251
|
"filename": "lib/jobs/job.ts",
|
|
16011
|
-
"line":
|
|
16252
|
+
"line": 487
|
|
16012
16253
|
},
|
|
16013
16254
|
"name": "role",
|
|
16014
16255
|
"type": {
|
|
@@ -16018,6 +16259,88 @@
|
|
|
16018
16259
|
],
|
|
16019
16260
|
"symbolId": "lib/jobs/job:Job"
|
|
16020
16261
|
},
|
|
16262
|
+
"@aws-cdk/aws-glue-alpha.JobActionOptions": {
|
|
16263
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
16264
|
+
"datatype": true,
|
|
16265
|
+
"docs": {
|
|
16266
|
+
"stability": "experimental",
|
|
16267
|
+
"summary": "Options for the execution of a job.",
|
|
16268
|
+
"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';\n\ndeclare const securityConfiguration: glue_alpha.SecurityConfiguration;\nconst jobActionOptions: glue_alpha.JobActionOptions = {\n arguments: {\n argumentsKey: 'arguments',\n },\n securityConfiguration: securityConfiguration,\n timeout: cdk.Duration.minutes(30),\n};",
|
|
16269
|
+
"custom": {
|
|
16270
|
+
"exampleMetadata": "fixture=_generated"
|
|
16271
|
+
}
|
|
16272
|
+
},
|
|
16273
|
+
"fqn": "@aws-cdk/aws-glue-alpha.JobActionOptions",
|
|
16274
|
+
"kind": "interface",
|
|
16275
|
+
"locationInModule": {
|
|
16276
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
16277
|
+
"line": 37
|
|
16278
|
+
},
|
|
16279
|
+
"name": "JobActionOptions",
|
|
16280
|
+
"properties": [
|
|
16281
|
+
{
|
|
16282
|
+
"abstract": true,
|
|
16283
|
+
"docs": {
|
|
16284
|
+
"default": "- no arguments are passed to the job",
|
|
16285
|
+
"stability": "experimental",
|
|
16286
|
+
"summary": "The arguments used when this trigger fires."
|
|
16287
|
+
},
|
|
16288
|
+
"immutable": true,
|
|
16289
|
+
"locationInModule": {
|
|
16290
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
16291
|
+
"line": 43
|
|
16292
|
+
},
|
|
16293
|
+
"name": "arguments",
|
|
16294
|
+
"optional": true,
|
|
16295
|
+
"type": {
|
|
16296
|
+
"collection": {
|
|
16297
|
+
"elementtype": {
|
|
16298
|
+
"primitive": "string"
|
|
16299
|
+
},
|
|
16300
|
+
"kind": "map"
|
|
16301
|
+
}
|
|
16302
|
+
}
|
|
16303
|
+
},
|
|
16304
|
+
{
|
|
16305
|
+
"abstract": true,
|
|
16306
|
+
"docs": {
|
|
16307
|
+
"default": "- no security configuration is used",
|
|
16308
|
+
"stability": "experimental",
|
|
16309
|
+
"summary": "The `SecurityConfiguration` to be used with this action."
|
|
16310
|
+
},
|
|
16311
|
+
"immutable": true,
|
|
16312
|
+
"locationInModule": {
|
|
16313
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
16314
|
+
"line": 57
|
|
16315
|
+
},
|
|
16316
|
+
"name": "securityConfiguration",
|
|
16317
|
+
"optional": true,
|
|
16318
|
+
"type": {
|
|
16319
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ISecurityConfiguration"
|
|
16320
|
+
}
|
|
16321
|
+
},
|
|
16322
|
+
{
|
|
16323
|
+
"abstract": true,
|
|
16324
|
+
"docs": {
|
|
16325
|
+
"default": "- the default timeout value set in the job definition",
|
|
16326
|
+
"remarks": "This is the maximum time that a run can consume resources before it is terminated and enters TIMEOUT status.",
|
|
16327
|
+
"stability": "experimental",
|
|
16328
|
+
"summary": "The run timeout."
|
|
16329
|
+
},
|
|
16330
|
+
"immutable": true,
|
|
16331
|
+
"locationInModule": {
|
|
16332
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
16333
|
+
"line": 50
|
|
16334
|
+
},
|
|
16335
|
+
"name": "timeout",
|
|
16336
|
+
"optional": true,
|
|
16337
|
+
"type": {
|
|
16338
|
+
"fqn": "aws-cdk-lib.Duration"
|
|
16339
|
+
}
|
|
16340
|
+
}
|
|
16341
|
+
],
|
|
16342
|
+
"symbolId": "lib/triggers/trigger-options:JobActionOptions"
|
|
16343
|
+
},
|
|
16021
16344
|
"@aws-cdk/aws-glue-alpha.JobAttributes": {
|
|
16022
16345
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
16023
16346
|
"datatype": true,
|
|
@@ -16034,7 +16357,7 @@
|
|
|
16034
16357
|
"kind": "interface",
|
|
16035
16358
|
"locationInModule": {
|
|
16036
16359
|
"filename": "lib/jobs/job.ts",
|
|
16037
|
-
"line":
|
|
16360
|
+
"line": 299
|
|
16038
16361
|
},
|
|
16039
16362
|
"name": "JobAttributes",
|
|
16040
16363
|
"properties": [
|
|
@@ -16047,7 +16370,7 @@
|
|
|
16047
16370
|
"immutable": true,
|
|
16048
16371
|
"locationInModule": {
|
|
16049
16372
|
"filename": "lib/jobs/job.ts",
|
|
16050
|
-
"line":
|
|
16373
|
+
"line": 303
|
|
16051
16374
|
},
|
|
16052
16375
|
"name": "jobName",
|
|
16053
16376
|
"type": {
|
|
@@ -16064,7 +16387,7 @@
|
|
|
16064
16387
|
"immutable": true,
|
|
16065
16388
|
"locationInModule": {
|
|
16066
16389
|
"filename": "lib/jobs/job.ts",
|
|
16067
|
-
"line":
|
|
16390
|
+
"line": 310
|
|
16068
16391
|
},
|
|
16069
16392
|
"name": "role",
|
|
16070
16393
|
"optional": true,
|
|
@@ -16121,7 +16444,7 @@
|
|
|
16121
16444
|
"kind": "class",
|
|
16122
16445
|
"locationInModule": {
|
|
16123
16446
|
"filename": "lib/jobs/job.ts",
|
|
16124
|
-
"line":
|
|
16447
|
+
"line": 137
|
|
16125
16448
|
},
|
|
16126
16449
|
"methods": [
|
|
16127
16450
|
{
|
|
@@ -16131,7 +16454,7 @@
|
|
|
16131
16454
|
},
|
|
16132
16455
|
"locationInModule": {
|
|
16133
16456
|
"filename": "lib/jobs/job.ts",
|
|
16134
|
-
"line":
|
|
16457
|
+
"line": 285
|
|
16135
16458
|
},
|
|
16136
16459
|
"name": "buildJobArn",
|
|
16137
16460
|
"parameters": [
|
|
@@ -16163,7 +16486,7 @@
|
|
|
16163
16486
|
},
|
|
16164
16487
|
"locationInModule": {
|
|
16165
16488
|
"filename": "lib/jobs/job.ts",
|
|
16166
|
-
"line":
|
|
16489
|
+
"line": 232
|
|
16167
16490
|
},
|
|
16168
16491
|
"name": "metric",
|
|
16169
16492
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16211,7 +16534,7 @@
|
|
|
16211
16534
|
},
|
|
16212
16535
|
"locationInModule": {
|
|
16213
16536
|
"filename": "lib/jobs/job.ts",
|
|
16214
|
-
"line":
|
|
16537
|
+
"line": 259
|
|
16215
16538
|
},
|
|
16216
16539
|
"name": "metricFailure",
|
|
16217
16540
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16238,7 +16561,7 @@
|
|
|
16238
16561
|
},
|
|
16239
16562
|
"locationInModule": {
|
|
16240
16563
|
"filename": "lib/jobs/job.ts",
|
|
16241
|
-
"line":
|
|
16564
|
+
"line": 250
|
|
16242
16565
|
},
|
|
16243
16566
|
"name": "metricSuccess",
|
|
16244
16567
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16265,7 +16588,7 @@
|
|
|
16265
16588
|
},
|
|
16266
16589
|
"locationInModule": {
|
|
16267
16590
|
"filename": "lib/jobs/job.ts",
|
|
16268
|
-
"line":
|
|
16591
|
+
"line": 268
|
|
16269
16592
|
},
|
|
16270
16593
|
"name": "metricTimeout",
|
|
16271
16594
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16292,7 +16615,7 @@
|
|
|
16292
16615
|
},
|
|
16293
16616
|
"locationInModule": {
|
|
16294
16617
|
"filename": "lib/jobs/job.ts",
|
|
16295
|
-
"line":
|
|
16618
|
+
"line": 160
|
|
16296
16619
|
},
|
|
16297
16620
|
"name": "onEvent",
|
|
16298
16621
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16331,7 +16654,7 @@
|
|
|
16331
16654
|
},
|
|
16332
16655
|
"locationInModule": {
|
|
16333
16656
|
"filename": "lib/jobs/job.ts",
|
|
16334
|
-
"line":
|
|
16657
|
+
"line": 209
|
|
16335
16658
|
},
|
|
16336
16659
|
"name": "onFailure",
|
|
16337
16660
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16370,7 +16693,7 @@
|
|
|
16370
16693
|
},
|
|
16371
16694
|
"locationInModule": {
|
|
16372
16695
|
"filename": "lib/jobs/job.ts",
|
|
16373
|
-
"line":
|
|
16696
|
+
"line": 180
|
|
16374
16697
|
},
|
|
16375
16698
|
"name": "onStateChange",
|
|
16376
16699
|
"parameters": [
|
|
@@ -16417,7 +16740,7 @@
|
|
|
16417
16740
|
},
|
|
16418
16741
|
"locationInModule": {
|
|
16419
16742
|
"filename": "lib/jobs/job.ts",
|
|
16420
|
-
"line":
|
|
16743
|
+
"line": 199
|
|
16421
16744
|
},
|
|
16422
16745
|
"name": "onSuccess",
|
|
16423
16746
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16456,7 +16779,7 @@
|
|
|
16456
16779
|
},
|
|
16457
16780
|
"locationInModule": {
|
|
16458
16781
|
"filename": "lib/jobs/job.ts",
|
|
16459
|
-
"line":
|
|
16782
|
+
"line": 219
|
|
16460
16783
|
},
|
|
16461
16784
|
"name": "onTimeout",
|
|
16462
16785
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16500,7 +16823,7 @@
|
|
|
16500
16823
|
"immutable": true,
|
|
16501
16824
|
"locationInModule": {
|
|
16502
16825
|
"filename": "lib/jobs/job.ts",
|
|
16503
|
-
"line":
|
|
16826
|
+
"line": 140
|
|
16504
16827
|
},
|
|
16505
16828
|
"name": "grantPrincipal",
|
|
16506
16829
|
"overrides": "aws-cdk-lib.aws_iam.IGrantable",
|
|
@@ -16517,7 +16840,7 @@
|
|
|
16517
16840
|
"immutable": true,
|
|
16518
16841
|
"locationInModule": {
|
|
16519
16842
|
"filename": "lib/jobs/job.ts",
|
|
16520
|
-
"line":
|
|
16843
|
+
"line": 138
|
|
16521
16844
|
},
|
|
16522
16845
|
"name": "jobArn",
|
|
16523
16846
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16534,13 +16857,29 @@
|
|
|
16534
16857
|
"immutable": true,
|
|
16535
16858
|
"locationInModule": {
|
|
16536
16859
|
"filename": "lib/jobs/job.ts",
|
|
16537
|
-
"line":
|
|
16860
|
+
"line": 139
|
|
16538
16861
|
},
|
|
16539
16862
|
"name": "jobName",
|
|
16540
16863
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
16541
16864
|
"type": {
|
|
16542
16865
|
"primitive": "string"
|
|
16543
16866
|
}
|
|
16867
|
+
},
|
|
16868
|
+
{
|
|
16869
|
+
"docs": {
|
|
16870
|
+
"stability": "experimental",
|
|
16871
|
+
"summary": "A reference to this Job resource, for use with the generated L1 ref interface."
|
|
16872
|
+
},
|
|
16873
|
+
"immutable": true,
|
|
16874
|
+
"locationInModule": {
|
|
16875
|
+
"filename": "lib/jobs/job.ts",
|
|
16876
|
+
"line": 145
|
|
16877
|
+
},
|
|
16878
|
+
"name": "jobRef",
|
|
16879
|
+
"overrides": "aws-cdk-lib.interfaces.aws_glue.IJobRef",
|
|
16880
|
+
"type": {
|
|
16881
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.JobReference"
|
|
16882
|
+
}
|
|
16544
16883
|
}
|
|
16545
16884
|
],
|
|
16546
16885
|
"symbolId": "lib/jobs/job:JobBase"
|
|
@@ -16644,7 +16983,7 @@
|
|
|
16644
16983
|
"kind": "interface",
|
|
16645
16984
|
"locationInModule": {
|
|
16646
16985
|
"filename": "lib/jobs/job.ts",
|
|
16647
|
-
"line":
|
|
16986
|
+
"line": 317
|
|
16648
16987
|
},
|
|
16649
16988
|
"name": "JobProps",
|
|
16650
16989
|
"properties": [
|
|
@@ -16658,7 +16997,7 @@
|
|
|
16658
16997
|
"immutable": true,
|
|
16659
16998
|
"locationInModule": {
|
|
16660
16999
|
"filename": "lib/jobs/job.ts",
|
|
16661
|
-
"line":
|
|
17000
|
+
"line": 336
|
|
16662
17001
|
},
|
|
16663
17002
|
"name": "role",
|
|
16664
17003
|
"type": {
|
|
@@ -16675,7 +17014,7 @@
|
|
|
16675
17014
|
"immutable": true,
|
|
16676
17015
|
"locationInModule": {
|
|
16677
17016
|
"filename": "lib/jobs/job.ts",
|
|
16678
|
-
"line":
|
|
17017
|
+
"line": 324
|
|
16679
17018
|
},
|
|
16680
17019
|
"name": "script",
|
|
16681
17020
|
"type": {
|
|
@@ -16692,7 +17031,7 @@
|
|
|
16692
17031
|
"immutable": true,
|
|
16693
17032
|
"locationInModule": {
|
|
16694
17033
|
"filename": "lib/jobs/job.ts",
|
|
16695
|
-
"line":
|
|
17034
|
+
"line": 397
|
|
16696
17035
|
},
|
|
16697
17036
|
"name": "connections",
|
|
16698
17037
|
"optional": true,
|
|
@@ -16716,7 +17055,7 @@
|
|
|
16716
17055
|
"immutable": true,
|
|
16717
17056
|
"locationInModule": {
|
|
16718
17057
|
"filename": "lib/jobs/job.ts",
|
|
16719
|
-
"line":
|
|
17058
|
+
"line": 449
|
|
16720
17059
|
},
|
|
16721
17060
|
"name": "continuousLogging",
|
|
16722
17061
|
"optional": true,
|
|
@@ -16728,7 +17067,7 @@
|
|
|
16728
17067
|
"abstract": true,
|
|
16729
17068
|
"docs": {
|
|
16730
17069
|
"default": "- no arguments",
|
|
16731
|
-
"remarks": "
|
|
17070
|
+
"remarks": "This map is the escape hatch for Glue job arguments that this construct does not model. It\nMUST NOT be used to set arguments that already have a dedicated prop — configure those through\nthe corresponding prop instead (`continuousLogging`, `enableMetrics`,\n`enableObservabilityMetrics`, `sparkUI`, `className`, `extraJars`, `extraJarsFirst`,\n`extraPythonFiles`, `extraFiles`). Passing a construct-managed argument (e.g.\n`--enable-continuous-cloudwatch-log`, `--enable-metrics`, `--enable-spark-ui`,\n`--job-language`) or a Glue-reserved argument (`--debug`, `--mode`, `--JOB_NAME`, `--endpoint`)\nhere throws at synthesis time, so there is exactly one way to express each intent.\n\nAlso note that these are emitted verbatim into the CloudFormation template, so avoid\nplacing secrets here in plaintext. Pass secrets to the job at runtime\nthrough AWS Secrets Manager instead. A synthesis-time warning is emitted\nwhen an argument key looks like a credential and holds a plaintext literal.",
|
|
16732
17071
|
"see": "https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html\nfor a list of reserved parameters",
|
|
16733
17072
|
"stability": "experimental",
|
|
16734
17073
|
"summary": "Default Arguments (optional) The default arguments for every run of this Glue job, specified as name-value pairs."
|
|
@@ -16736,7 +17075,7 @@
|
|
|
16736
17075
|
"immutable": true,
|
|
16737
17076
|
"locationInModule": {
|
|
16738
17077
|
"filename": "lib/jobs/job.ts",
|
|
16739
|
-
"line":
|
|
17078
|
+
"line": 388
|
|
16740
17079
|
},
|
|
16741
17080
|
"name": "defaultArguments",
|
|
16742
17081
|
"optional": true,
|
|
@@ -16759,7 +17098,7 @@
|
|
|
16759
17098
|
"immutable": true,
|
|
16760
17099
|
"locationInModule": {
|
|
16761
17100
|
"filename": "lib/jobs/job.ts",
|
|
16762
|
-
"line":
|
|
17101
|
+
"line": 352
|
|
16763
17102
|
},
|
|
16764
17103
|
"name": "description",
|
|
16765
17104
|
"optional": true,
|
|
@@ -16777,7 +17116,7 @@
|
|
|
16777
17116
|
"immutable": true,
|
|
16778
17117
|
"locationInModule": {
|
|
16779
17118
|
"filename": "lib/jobs/job.ts",
|
|
16780
|
-
"line":
|
|
17119
|
+
"line": 439
|
|
16781
17120
|
},
|
|
16782
17121
|
"name": "glueVersion",
|
|
16783
17122
|
"optional": true,
|
|
@@ -16795,7 +17134,7 @@
|
|
|
16795
17134
|
"immutable": true,
|
|
16796
17135
|
"locationInModule": {
|
|
16797
17136
|
"filename": "lib/jobs/job.ts",
|
|
16798
|
-
"line":
|
|
17137
|
+
"line": 344
|
|
16799
17138
|
},
|
|
16800
17139
|
"name": "jobName",
|
|
16801
17140
|
"optional": true,
|
|
@@ -16814,7 +17153,7 @@
|
|
|
16814
17153
|
"immutable": true,
|
|
16815
17154
|
"locationInModule": {
|
|
16816
17155
|
"filename": "lib/jobs/job.ts",
|
|
16817
|
-
"line":
|
|
17156
|
+
"line": 363
|
|
16818
17157
|
},
|
|
16819
17158
|
"name": "maxConcurrentRuns",
|
|
16820
17159
|
"optional": true,
|
|
@@ -16832,7 +17171,7 @@
|
|
|
16832
17171
|
"immutable": true,
|
|
16833
17172
|
"locationInModule": {
|
|
16834
17173
|
"filename": "lib/jobs/job.ts",
|
|
16835
|
-
"line":
|
|
17174
|
+
"line": 405
|
|
16836
17175
|
},
|
|
16837
17176
|
"name": "maxRetries",
|
|
16838
17177
|
"optional": true,
|
|
@@ -16850,7 +17189,7 @@
|
|
|
16850
17189
|
"immutable": true,
|
|
16851
17190
|
"locationInModule": {
|
|
16852
17191
|
"filename": "lib/jobs/job.ts",
|
|
16853
|
-
"line":
|
|
17192
|
+
"line": 423
|
|
16854
17193
|
},
|
|
16855
17194
|
"name": "securityConfiguration",
|
|
16856
17195
|
"optional": true,
|
|
@@ -16868,7 +17207,7 @@
|
|
|
16868
17207
|
"immutable": true,
|
|
16869
17208
|
"locationInModule": {
|
|
16870
17209
|
"filename": "lib/jobs/job.ts",
|
|
16871
|
-
"line":
|
|
17210
|
+
"line": 431
|
|
16872
17211
|
},
|
|
16873
17212
|
"name": "tags",
|
|
16874
17213
|
"optional": true,
|
|
@@ -16892,7 +17231,7 @@
|
|
|
16892
17231
|
"immutable": true,
|
|
16893
17232
|
"locationInModule": {
|
|
16894
17233
|
"filename": "lib/jobs/job.ts",
|
|
16895
|
-
"line":
|
|
17234
|
+
"line": 415
|
|
16896
17235
|
},
|
|
16897
17236
|
"name": "timeout",
|
|
16898
17237
|
"optional": true,
|
|
@@ -16980,7 +17319,7 @@
|
|
|
16980
17319
|
"kind": "enum",
|
|
16981
17320
|
"locationInModule": {
|
|
16982
17321
|
"filename": "lib/constants.ts",
|
|
16983
|
-
"line":
|
|
17322
|
+
"line": 300
|
|
16984
17323
|
},
|
|
16985
17324
|
"members": [
|
|
16986
17325
|
{
|
|
@@ -17016,6 +17355,39 @@
|
|
|
17016
17355
|
"name": "JobType",
|
|
17017
17356
|
"symbolId": "lib/constants:JobType"
|
|
17018
17357
|
},
|
|
17358
|
+
"@aws-cdk/aws-glue-alpha.LibrarySet": {
|
|
17359
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
17360
|
+
"docs": {
|
|
17361
|
+
"see": "https://docs.aws.amazon.com/glue/latest/dg/add-job-python.html#python-shell-supported-library",
|
|
17362
|
+
"stability": "experimental",
|
|
17363
|
+
"summary": "The set of pre-installed Python libraries available to a Python shell job running Python 3.9."
|
|
17364
|
+
},
|
|
17365
|
+
"fqn": "@aws-cdk/aws-glue-alpha.LibrarySet",
|
|
17366
|
+
"kind": "enum",
|
|
17367
|
+
"locationInModule": {
|
|
17368
|
+
"filename": "lib/constants.ts",
|
|
17369
|
+
"line": 269
|
|
17370
|
+
},
|
|
17371
|
+
"members": [
|
|
17372
|
+
{
|
|
17373
|
+
"docs": {
|
|
17374
|
+
"stability": "experimental",
|
|
17375
|
+
"summary": "Include the common analytics libraries for Python 3.9 (e.g. pandas, numpy, scikit-learn, awswrangler)."
|
|
17376
|
+
},
|
|
17377
|
+
"name": "ANALYTICS"
|
|
17378
|
+
},
|
|
17379
|
+
{
|
|
17380
|
+
"docs": {
|
|
17381
|
+
"remarks": "Use this when your libraries are custom or conflict\nwith the pre-installed ones.",
|
|
17382
|
+
"stability": "experimental",
|
|
17383
|
+
"summary": "Do not install the common library set."
|
|
17384
|
+
},
|
|
17385
|
+
"name": "NONE"
|
|
17386
|
+
}
|
|
17387
|
+
],
|
|
17388
|
+
"name": "LibrarySet",
|
|
17389
|
+
"symbolId": "lib/constants:LibrarySet"
|
|
17390
|
+
},
|
|
17019
17391
|
"@aws-cdk/aws-glue-alpha.MaxCapacity": {
|
|
17020
17392
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
17021
17393
|
"docs": {
|
|
@@ -17031,7 +17403,7 @@
|
|
|
17031
17403
|
"kind": "enum",
|
|
17032
17404
|
"locationInModule": {
|
|
17033
17405
|
"filename": "lib/constants.ts",
|
|
17034
|
-
"line":
|
|
17406
|
+
"line": 330
|
|
17035
17407
|
},
|
|
17036
17408
|
"members": [
|
|
17037
17409
|
{
|
|
@@ -17084,49 +17456,6 @@
|
|
|
17084
17456
|
"name": "MetricType",
|
|
17085
17457
|
"symbolId": "lib/constants:MetricType"
|
|
17086
17458
|
},
|
|
17087
|
-
"@aws-cdk/aws-glue-alpha.NotifyEventTriggerOptions": {
|
|
17088
|
-
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
17089
|
-
"datatype": true,
|
|
17090
|
-
"docs": {
|
|
17091
|
-
"stability": "experimental",
|
|
17092
|
-
"summary": "Properties for configuring an Event Bridge based Glue Trigger.",
|
|
17093
|
-
"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 notifyEventTriggerOptions: glue_alpha.NotifyEventTriggerOptions = {\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 eventBatchingCondition: {\n batchSize: 123,\n\n // the properties below are optional\n batchWindow: cdk.Duration.minutes(30),\n },\n name: 'name',\n};",
|
|
17094
|
-
"custom": {
|
|
17095
|
-
"exampleMetadata": "fixture=_generated"
|
|
17096
|
-
}
|
|
17097
|
-
},
|
|
17098
|
-
"fqn": "@aws-cdk/aws-glue-alpha.NotifyEventTriggerOptions",
|
|
17099
|
-
"interfaces": [
|
|
17100
|
-
"@aws-cdk/aws-glue-alpha.TriggerOptions"
|
|
17101
|
-
],
|
|
17102
|
-
"kind": "interface",
|
|
17103
|
-
"locationInModule": {
|
|
17104
|
-
"filename": "lib/triggers/trigger-options.ts",
|
|
17105
|
-
"line": 213
|
|
17106
|
-
},
|
|
17107
|
-
"name": "NotifyEventTriggerOptions",
|
|
17108
|
-
"properties": [
|
|
17109
|
-
{
|
|
17110
|
-
"abstract": true,
|
|
17111
|
-
"docs": {
|
|
17112
|
-
"default": "- no batch condition",
|
|
17113
|
-
"stability": "experimental",
|
|
17114
|
-
"summary": "Batch condition for the trigger."
|
|
17115
|
-
},
|
|
17116
|
-
"immutable": true,
|
|
17117
|
-
"locationInModule": {
|
|
17118
|
-
"filename": "lib/triggers/trigger-options.ts",
|
|
17119
|
-
"line": 219
|
|
17120
|
-
},
|
|
17121
|
-
"name": "eventBatchingCondition",
|
|
17122
|
-
"optional": true,
|
|
17123
|
-
"type": {
|
|
17124
|
-
"fqn": "@aws-cdk/aws-glue-alpha.EventBatchingCondition"
|
|
17125
|
-
}
|
|
17126
|
-
}
|
|
17127
|
-
],
|
|
17128
|
-
"symbolId": "lib/triggers/trigger-options:NotifyEventTriggerOptions"
|
|
17129
|
-
},
|
|
17130
17459
|
"@aws-cdk/aws-glue-alpha.NumericOverflowHandlingAction": {
|
|
17131
17460
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
17132
17461
|
"docs": {
|
|
@@ -17179,7 +17508,7 @@
|
|
|
17179
17508
|
"docs": {
|
|
17180
17509
|
"stability": "experimental",
|
|
17181
17510
|
"summary": "Properties for configuring an on-demand Glue Trigger.",
|
|
17182
|
-
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [
|
|
17511
|
+
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [glue.Action.job(job)],\n});",
|
|
17183
17512
|
"custom": {
|
|
17184
17513
|
"exampleMetadata": "infused"
|
|
17185
17514
|
}
|
|
@@ -17191,7 +17520,7 @@
|
|
|
17191
17520
|
"kind": "interface",
|
|
17192
17521
|
"locationInModule": {
|
|
17193
17522
|
"filename": "lib/triggers/trigger-options.ts",
|
|
17194
|
-
"line":
|
|
17523
|
+
"line": 336
|
|
17195
17524
|
},
|
|
17196
17525
|
"name": "OnDemandTriggerOptions",
|
|
17197
17526
|
"symbolId": "lib/triggers/trigger-options:OnDemandTriggerOptions"
|
|
@@ -17419,7 +17748,7 @@
|
|
|
17419
17748
|
"docs": {
|
|
17420
17749
|
"stability": "experimental",
|
|
17421
17750
|
"summary": "Factory class for creating partition projection configurations.",
|
|
17422
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval
|
|
17751
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n // `step` bundles interval + unit (supply both or neither). Optional at day\n // precision or coarser; required when the format is sub-day (e.g. hours).\n step: { interval: 1, intervalUnit: glue.DateIntervalUnit.DAYS },\n }),\n },\n});",
|
|
17423
17752
|
"custom": {
|
|
17424
17753
|
"exampleMetadata": "infused"
|
|
17425
17754
|
}
|
|
@@ -17428,7 +17757,7 @@
|
|
|
17428
17757
|
"kind": "class",
|
|
17429
17758
|
"locationInModule": {
|
|
17430
17759
|
"filename": "lib/partition-projection.ts",
|
|
17431
|
-
"line":
|
|
17760
|
+
"line": 277
|
|
17432
17761
|
},
|
|
17433
17762
|
"methods": [
|
|
17434
17763
|
{
|
|
@@ -17438,7 +17767,7 @@
|
|
|
17438
17767
|
},
|
|
17439
17768
|
"locationInModule": {
|
|
17440
17769
|
"filename": "lib/partition-projection.ts",
|
|
17441
|
-
"line":
|
|
17770
|
+
"line": 335
|
|
17442
17771
|
},
|
|
17443
17772
|
"name": "date",
|
|
17444
17773
|
"parameters": [
|
|
@@ -17463,7 +17792,7 @@
|
|
|
17463
17792
|
},
|
|
17464
17793
|
"locationInModule": {
|
|
17465
17794
|
"filename": "lib/partition-projection.ts",
|
|
17466
|
-
"line":
|
|
17795
|
+
"line": 432
|
|
17467
17796
|
},
|
|
17468
17797
|
"name": "enum",
|
|
17469
17798
|
"parameters": [
|
|
@@ -17490,7 +17819,7 @@
|
|
|
17490
17819
|
},
|
|
17491
17820
|
"locationInModule": {
|
|
17492
17821
|
"filename": "lib/partition-projection.ts",
|
|
17493
|
-
"line":
|
|
17822
|
+
"line": 472
|
|
17494
17823
|
},
|
|
17495
17824
|
"name": "injected",
|
|
17496
17825
|
"returns": {
|
|
@@ -17507,7 +17836,7 @@
|
|
|
17507
17836
|
},
|
|
17508
17837
|
"locationInModule": {
|
|
17509
17838
|
"filename": "lib/partition-projection.ts",
|
|
17510
|
-
"line":
|
|
17839
|
+
"line": 281
|
|
17511
17840
|
},
|
|
17512
17841
|
"name": "integer",
|
|
17513
17842
|
"parameters": [
|
|
@@ -17536,141 +17865,12 @@
|
|
|
17536
17865
|
"immutable": true,
|
|
17537
17866
|
"locationInModule": {
|
|
17538
17867
|
"filename": "lib/partition-projection.ts",
|
|
17539
|
-
"line":
|
|
17868
|
+
"line": 481
|
|
17540
17869
|
},
|
|
17541
17870
|
"name": "type",
|
|
17542
17871
|
"type": {
|
|
17543
17872
|
"fqn": "@aws-cdk/aws-glue-alpha.PartitionProjectionType"
|
|
17544
17873
|
}
|
|
17545
|
-
},
|
|
17546
|
-
{
|
|
17547
|
-
"docs": {
|
|
17548
|
-
"remarks": "Array of [start, end] as date strings.",
|
|
17549
|
-
"stability": "experimental",
|
|
17550
|
-
"summary": "Range of partition values for DATE type."
|
|
17551
|
-
},
|
|
17552
|
-
"immutable": true,
|
|
17553
|
-
"locationInModule": {
|
|
17554
|
-
"filename": "lib/partition-projection.ts",
|
|
17555
|
-
"line": 487
|
|
17556
|
-
},
|
|
17557
|
-
"name": "dateRange",
|
|
17558
|
-
"optional": true,
|
|
17559
|
-
"type": {
|
|
17560
|
-
"collection": {
|
|
17561
|
-
"elementtype": {
|
|
17562
|
-
"primitive": "string"
|
|
17563
|
-
},
|
|
17564
|
-
"kind": "array"
|
|
17565
|
-
}
|
|
17566
|
-
}
|
|
17567
|
-
},
|
|
17568
|
-
{
|
|
17569
|
-
"docs": {
|
|
17570
|
-
"stability": "experimental",
|
|
17571
|
-
"summary": "Number of digits to pad INTEGER partition values."
|
|
17572
|
-
},
|
|
17573
|
-
"immutable": true,
|
|
17574
|
-
"locationInModule": {
|
|
17575
|
-
"filename": "lib/partition-projection.ts",
|
|
17576
|
-
"line": 497
|
|
17577
|
-
},
|
|
17578
|
-
"name": "digits",
|
|
17579
|
-
"optional": true,
|
|
17580
|
-
"type": {
|
|
17581
|
-
"primitive": "number"
|
|
17582
|
-
}
|
|
17583
|
-
},
|
|
17584
|
-
{
|
|
17585
|
-
"docs": {
|
|
17586
|
-
"stability": "experimental",
|
|
17587
|
-
"summary": "Date format for DATE partition values (Java SimpleDateFormat)."
|
|
17588
|
-
},
|
|
17589
|
-
"immutable": true,
|
|
17590
|
-
"locationInModule": {
|
|
17591
|
-
"filename": "lib/partition-projection.ts",
|
|
17592
|
-
"line": 502
|
|
17593
|
-
},
|
|
17594
|
-
"name": "format",
|
|
17595
|
-
"optional": true,
|
|
17596
|
-
"type": {
|
|
17597
|
-
"primitive": "string"
|
|
17598
|
-
}
|
|
17599
|
-
},
|
|
17600
|
-
{
|
|
17601
|
-
"docs": {
|
|
17602
|
-
"remarks": "Array of [min, max] as numbers.",
|
|
17603
|
-
"stability": "experimental",
|
|
17604
|
-
"summary": "Range of partition values for INTEGER type."
|
|
17605
|
-
},
|
|
17606
|
-
"immutable": true,
|
|
17607
|
-
"locationInModule": {
|
|
17608
|
-
"filename": "lib/partition-projection.ts",
|
|
17609
|
-
"line": 480
|
|
17610
|
-
},
|
|
17611
|
-
"name": "integerRange",
|
|
17612
|
-
"optional": true,
|
|
17613
|
-
"type": {
|
|
17614
|
-
"collection": {
|
|
17615
|
-
"elementtype": {
|
|
17616
|
-
"primitive": "number"
|
|
17617
|
-
},
|
|
17618
|
-
"kind": "array"
|
|
17619
|
-
}
|
|
17620
|
-
}
|
|
17621
|
-
},
|
|
17622
|
-
{
|
|
17623
|
-
"docs": {
|
|
17624
|
-
"stability": "experimental",
|
|
17625
|
-
"summary": "Interval between partition values."
|
|
17626
|
-
},
|
|
17627
|
-
"immutable": true,
|
|
17628
|
-
"locationInModule": {
|
|
17629
|
-
"filename": "lib/partition-projection.ts",
|
|
17630
|
-
"line": 492
|
|
17631
|
-
},
|
|
17632
|
-
"name": "interval",
|
|
17633
|
-
"optional": true,
|
|
17634
|
-
"type": {
|
|
17635
|
-
"primitive": "number"
|
|
17636
|
-
}
|
|
17637
|
-
},
|
|
17638
|
-
{
|
|
17639
|
-
"docs": {
|
|
17640
|
-
"stability": "experimental",
|
|
17641
|
-
"summary": "Unit for DATE partition interval."
|
|
17642
|
-
},
|
|
17643
|
-
"immutable": true,
|
|
17644
|
-
"locationInModule": {
|
|
17645
|
-
"filename": "lib/partition-projection.ts",
|
|
17646
|
-
"line": 507
|
|
17647
|
-
},
|
|
17648
|
-
"name": "intervalUnit",
|
|
17649
|
-
"optional": true,
|
|
17650
|
-
"type": {
|
|
17651
|
-
"fqn": "@aws-cdk/aws-glue-alpha.DateIntervalUnit"
|
|
17652
|
-
}
|
|
17653
|
-
},
|
|
17654
|
-
{
|
|
17655
|
-
"docs": {
|
|
17656
|
-
"stability": "experimental",
|
|
17657
|
-
"summary": "Explicit list of values for ENUM partitions."
|
|
17658
|
-
},
|
|
17659
|
-
"immutable": true,
|
|
17660
|
-
"locationInModule": {
|
|
17661
|
-
"filename": "lib/partition-projection.ts",
|
|
17662
|
-
"line": 512
|
|
17663
|
-
},
|
|
17664
|
-
"name": "values",
|
|
17665
|
-
"optional": true,
|
|
17666
|
-
"type": {
|
|
17667
|
-
"collection": {
|
|
17668
|
-
"elementtype": {
|
|
17669
|
-
"primitive": "string"
|
|
17670
|
-
},
|
|
17671
|
-
"kind": "array"
|
|
17672
|
-
}
|
|
17673
|
-
}
|
|
17674
17874
|
}
|
|
17675
17875
|
],
|
|
17676
17876
|
"symbolId": "lib/partition-projection:PartitionProjectionConfiguration"
|
|
@@ -17728,7 +17928,7 @@
|
|
|
17728
17928
|
"docs": {
|
|
17729
17929
|
"stability": "experimental",
|
|
17730
17930
|
"summary": "Represents a trigger predicate.",
|
|
17731
|
-
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\n\ndeclare const
|
|
17931
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\n\ndeclare const condition: glue_alpha.Condition;\nconst predicate: glue_alpha.Predicate = {\n conditions: [condition],\n logical: glue_alpha.PredicateLogical.AND,\n};",
|
|
17732
17932
|
"custom": {
|
|
17733
17933
|
"exampleMetadata": "fixture=_generated"
|
|
17734
17934
|
}
|
|
@@ -17737,7 +17937,7 @@
|
|
|
17737
17937
|
"kind": "interface",
|
|
17738
17938
|
"locationInModule": {
|
|
17739
17939
|
"filename": "lib/triggers/trigger-options.ts",
|
|
17740
|
-
"line":
|
|
17940
|
+
"line": 183
|
|
17741
17941
|
},
|
|
17742
17942
|
"name": "Predicate",
|
|
17743
17943
|
"properties": [
|
|
@@ -17751,7 +17951,7 @@
|
|
|
17751
17951
|
"immutable": true,
|
|
17752
17952
|
"locationInModule": {
|
|
17753
17953
|
"filename": "lib/triggers/trigger-options.ts",
|
|
17754
|
-
"line":
|
|
17954
|
+
"line": 196
|
|
17755
17955
|
},
|
|
17756
17956
|
"name": "conditions",
|
|
17757
17957
|
"optional": true,
|
|
@@ -17774,7 +17974,7 @@
|
|
|
17774
17974
|
"immutable": true,
|
|
17775
17975
|
"locationInModule": {
|
|
17776
17976
|
"filename": "lib/triggers/trigger-options.ts",
|
|
17777
|
-
"line":
|
|
17977
|
+
"line": 189
|
|
17778
17978
|
},
|
|
17779
17979
|
"name": "logical",
|
|
17780
17980
|
"optional": true,
|
|
@@ -17794,7 +17994,7 @@
|
|
|
17794
17994
|
"kind": "enum",
|
|
17795
17995
|
"locationInModule": {
|
|
17796
17996
|
"filename": "lib/constants.ts",
|
|
17797
|
-
"line":
|
|
17997
|
+
"line": 345
|
|
17798
17998
|
},
|
|
17799
17999
|
"members": [
|
|
17800
18000
|
{
|
|
@@ -17822,7 +18022,7 @@
|
|
|
17822
18022
|
"remarks": "ETL jobs support pySpark and Scala languages, for which there are separate\nbut similar constructors. ETL jobs default to the G1 worker type, but you\ncan override this default with other supported worker type values\n(G1, G2, G4 and G8). ETL jobs defaults to Glue version 4.0, which you can\noverride to 3.0. The following ETL features are enabled by default:\n--enable-metrics, --enable-continuous-cloudwatch-log. The Spark UI\n(--enable-spark-ui) is off by default; enable it by setting the `sparkUI` prop.\nYou can find more details about version, worker type and other features\nin Glue's public documentation.",
|
|
17823
18023
|
"stability": "experimental",
|
|
17824
18024
|
"summary": "PySpark ETL Jobs class.",
|
|
17825
|
-
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [
|
|
18025
|
+
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [glue.Action.job(job)],\n});",
|
|
17826
18026
|
"custom": {
|
|
17827
18027
|
"exampleMetadata": "infused"
|
|
17828
18028
|
}
|
|
@@ -17890,7 +18090,7 @@
|
|
|
17890
18090
|
"immutable": true,
|
|
17891
18091
|
"locationInModule": {
|
|
17892
18092
|
"filename": "lib/jobs/pyspark-etl-job.ts",
|
|
17893
|
-
"line":
|
|
18093
|
+
"line": 131
|
|
17894
18094
|
},
|
|
17895
18095
|
"name": "jobArn",
|
|
17896
18096
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -17906,7 +18106,7 @@
|
|
|
17906
18106
|
"immutable": true,
|
|
17907
18107
|
"locationInModule": {
|
|
17908
18108
|
"filename": "lib/jobs/pyspark-etl-job.ts",
|
|
17909
|
-
"line":
|
|
18109
|
+
"line": 136
|
|
17910
18110
|
},
|
|
17911
18111
|
"name": "jobName",
|
|
17912
18112
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -17923,7 +18123,7 @@
|
|
|
17923
18123
|
"docs": {
|
|
17924
18124
|
"stability": "experimental",
|
|
17925
18125
|
"summary": "Properties for creating a Python Spark ETL job.",
|
|
17926
|
-
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [
|
|
18126
|
+
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [glue.Action.job(job)],\n});",
|
|
17927
18127
|
"custom": {
|
|
17928
18128
|
"exampleMetadata": "infused"
|
|
17929
18129
|
}
|
|
@@ -18144,7 +18344,7 @@
|
|
|
18144
18344
|
"immutable": true,
|
|
18145
18345
|
"locationInModule": {
|
|
18146
18346
|
"filename": "lib/jobs/pyspark-flex-etl-job.ts",
|
|
18147
|
-
"line":
|
|
18347
|
+
"line": 115
|
|
18148
18348
|
},
|
|
18149
18349
|
"name": "jobArn",
|
|
18150
18350
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -18160,7 +18360,7 @@
|
|
|
18160
18360
|
"immutable": true,
|
|
18161
18361
|
"locationInModule": {
|
|
18162
18362
|
"filename": "lib/jobs/pyspark-flex-etl-job.ts",
|
|
18163
|
-
"line":
|
|
18363
|
+
"line": 120
|
|
18164
18364
|
},
|
|
18165
18365
|
"name": "jobName",
|
|
18166
18366
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -18379,7 +18579,7 @@
|
|
|
18379
18579
|
"immutable": true,
|
|
18380
18580
|
"locationInModule": {
|
|
18381
18581
|
"filename": "lib/jobs/pyspark-streaming-job.ts",
|
|
18382
|
-
"line":
|
|
18582
|
+
"line": 116
|
|
18383
18583
|
},
|
|
18384
18584
|
"name": "jobArn",
|
|
18385
18585
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -18395,7 +18595,7 @@
|
|
|
18395
18595
|
"immutable": true,
|
|
18396
18596
|
"locationInModule": {
|
|
18397
18597
|
"filename": "lib/jobs/pyspark-streaming-job.ts",
|
|
18398
|
-
"line":
|
|
18598
|
+
"line": 121
|
|
18399
18599
|
},
|
|
18400
18600
|
"name": "jobName",
|
|
18401
18601
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -18559,7 +18759,7 @@
|
|
|
18559
18759
|
},
|
|
18560
18760
|
"locationInModule": {
|
|
18561
18761
|
"filename": "lib/jobs/python-shell-job.ts",
|
|
18562
|
-
"line":
|
|
18762
|
+
"line": 89
|
|
18563
18763
|
},
|
|
18564
18764
|
"parameters": [
|
|
18565
18765
|
{
|
|
@@ -18585,7 +18785,7 @@
|
|
|
18585
18785
|
"kind": "class",
|
|
18586
18786
|
"locationInModule": {
|
|
18587
18787
|
"filename": "lib/jobs/python-shell-job.ts",
|
|
18588
|
-
"line":
|
|
18788
|
+
"line": 78
|
|
18589
18789
|
},
|
|
18590
18790
|
"name": "PythonShellJob",
|
|
18591
18791
|
"properties": [
|
|
@@ -18598,7 +18798,7 @@
|
|
|
18598
18798
|
"immutable": true,
|
|
18599
18799
|
"locationInModule": {
|
|
18600
18800
|
"filename": "lib/jobs/python-shell-job.ts",
|
|
18601
|
-
"line":
|
|
18801
|
+
"line": 81
|
|
18602
18802
|
},
|
|
18603
18803
|
"name": "PROPERTY_INJECTION_ID",
|
|
18604
18804
|
"static": true,
|
|
@@ -18614,7 +18814,7 @@
|
|
|
18614
18814
|
"immutable": true,
|
|
18615
18815
|
"locationInModule": {
|
|
18616
18816
|
"filename": "lib/jobs/python-shell-job.ts",
|
|
18617
|
-
"line":
|
|
18817
|
+
"line": 83
|
|
18618
18818
|
},
|
|
18619
18819
|
"name": "grantPrincipal",
|
|
18620
18820
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -18630,7 +18830,7 @@
|
|
|
18630
18830
|
"immutable": true,
|
|
18631
18831
|
"locationInModule": {
|
|
18632
18832
|
"filename": "lib/jobs/python-shell-job.ts",
|
|
18633
|
-
"line":
|
|
18833
|
+
"line": 151
|
|
18634
18834
|
},
|
|
18635
18835
|
"name": "jobArn",
|
|
18636
18836
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -18646,7 +18846,7 @@
|
|
|
18646
18846
|
"immutable": true,
|
|
18647
18847
|
"locationInModule": {
|
|
18648
18848
|
"filename": "lib/jobs/python-shell-job.ts",
|
|
18649
|
-
"line":
|
|
18849
|
+
"line": 156
|
|
18650
18850
|
},
|
|
18651
18851
|
"name": "jobName",
|
|
18652
18852
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -18662,7 +18862,7 @@
|
|
|
18662
18862
|
"immutable": true,
|
|
18663
18863
|
"locationInModule": {
|
|
18664
18864
|
"filename": "lib/jobs/python-shell-job.ts",
|
|
18665
|
-
"line":
|
|
18865
|
+
"line": 82
|
|
18666
18866
|
},
|
|
18667
18867
|
"name": "role",
|
|
18668
18868
|
"overrides": "@aws-cdk/aws-glue-alpha.Job",
|
|
@@ -18691,7 +18891,7 @@
|
|
|
18691
18891
|
"kind": "interface",
|
|
18692
18892
|
"locationInModule": {
|
|
18693
18893
|
"filename": "lib/jobs/python-shell-job.ts",
|
|
18694
|
-
"line":
|
|
18894
|
+
"line": 16
|
|
18695
18895
|
},
|
|
18696
18896
|
"name": "PythonShellJobProps",
|
|
18697
18897
|
"properties": [
|
|
@@ -18707,7 +18907,7 @@
|
|
|
18707
18907
|
"immutable": true,
|
|
18708
18908
|
"locationInModule": {
|
|
18709
18909
|
"filename": "lib/jobs/python-shell-job.ts",
|
|
18710
|
-
"line":
|
|
18910
|
+
"line": 56
|
|
18711
18911
|
},
|
|
18712
18912
|
"name": "extraPythonFiles",
|
|
18713
18913
|
"optional": true,
|
|
@@ -18731,7 +18931,7 @@
|
|
|
18731
18931
|
"immutable": true,
|
|
18732
18932
|
"locationInModule": {
|
|
18733
18933
|
"filename": "lib/jobs/python-shell-job.ts",
|
|
18734
|
-
"line":
|
|
18934
|
+
"line": 68
|
|
18735
18935
|
},
|
|
18736
18936
|
"name": "jobRunQueuingEnabled",
|
|
18737
18937
|
"optional": true,
|
|
@@ -18739,6 +18939,26 @@
|
|
|
18739
18939
|
"primitive": "boolean"
|
|
18740
18940
|
}
|
|
18741
18941
|
},
|
|
18942
|
+
{
|
|
18943
|
+
"abstract": true,
|
|
18944
|
+
"docs": {
|
|
18945
|
+
"default": "LibrarySet.ANALYTICS when running Python 3.9, otherwise no library set is configured",
|
|
18946
|
+
"remarks": "Only applies to jobs running Python 3.9. Set to `LibrarySet.NONE` when your libraries are\ncustom or conflict with the pre-installed ones.",
|
|
18947
|
+
"see": "https://docs.aws.amazon.com/glue/latest/dg/add-job-python.html#python-shell-supported-library",
|
|
18948
|
+
"stability": "experimental",
|
|
18949
|
+
"summary": "The set of pre-installed Python libraries to make available to the job."
|
|
18950
|
+
},
|
|
18951
|
+
"immutable": true,
|
|
18952
|
+
"locationInModule": {
|
|
18953
|
+
"filename": "lib/jobs/python-shell-job.ts",
|
|
18954
|
+
"line": 45
|
|
18955
|
+
},
|
|
18956
|
+
"name": "librarySet",
|
|
18957
|
+
"optional": true,
|
|
18958
|
+
"type": {
|
|
18959
|
+
"fqn": "@aws-cdk/aws-glue-alpha.LibrarySet"
|
|
18960
|
+
}
|
|
18961
|
+
},
|
|
18742
18962
|
{
|
|
18743
18963
|
"abstract": true,
|
|
18744
18964
|
"docs": {
|
|
@@ -18749,7 +18969,7 @@
|
|
|
18749
18969
|
"immutable": true,
|
|
18750
18970
|
"locationInModule": {
|
|
18751
18971
|
"filename": "lib/jobs/python-shell-job.ts",
|
|
18752
|
-
"line":
|
|
18972
|
+
"line": 33
|
|
18753
18973
|
},
|
|
18754
18974
|
"name": "maxCapacity",
|
|
18755
18975
|
"optional": true,
|
|
@@ -18760,14 +18980,15 @@
|
|
|
18760
18980
|
{
|
|
18761
18981
|
"abstract": true,
|
|
18762
18982
|
"docs": {
|
|
18763
|
-
"default": "
|
|
18983
|
+
"default": "PythonVersion.THREE_NINE",
|
|
18984
|
+
"remarks": "Python shell jobs only support `PythonVersion.THREE_NINE`. The older `PythonVersion.TWO`\n(Python 2.7) and `PythonVersion.THREE` (Python 3.6) runtimes have been retired by AWS Glue\nand are no longer available for Python shell jobs.",
|
|
18764
18985
|
"stability": "experimental",
|
|
18765
|
-
"summary": "
|
|
18986
|
+
"summary": "The version of Python to use to execute this job."
|
|
18766
18987
|
},
|
|
18767
18988
|
"immutable": true,
|
|
18768
18989
|
"locationInModule": {
|
|
18769
18990
|
"filename": "lib/jobs/python-shell-job.ts",
|
|
18770
|
-
"line":
|
|
18991
|
+
"line": 26
|
|
18771
18992
|
},
|
|
18772
18993
|
"name": "pythonVersion",
|
|
18773
18994
|
"optional": true,
|
|
@@ -18912,7 +19133,7 @@
|
|
|
18912
19133
|
"immutable": true,
|
|
18913
19134
|
"locationInModule": {
|
|
18914
19135
|
"filename": "lib/jobs/ray-job.ts",
|
|
18915
|
-
"line":
|
|
19136
|
+
"line": 133
|
|
18916
19137
|
},
|
|
18917
19138
|
"name": "jobArn",
|
|
18918
19139
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -18928,7 +19149,7 @@
|
|
|
18928
19149
|
"immutable": true,
|
|
18929
19150
|
"locationInModule": {
|
|
18930
19151
|
"filename": "lib/jobs/ray-job.ts",
|
|
18931
|
-
"line":
|
|
19152
|
+
"line": 138
|
|
18932
19153
|
},
|
|
18933
19154
|
"name": "jobName",
|
|
18934
19155
|
"overrides": "@aws-cdk/aws-glue-alpha.JobBase",
|
|
@@ -19086,7 +19307,7 @@
|
|
|
19086
19307
|
"kind": "enum",
|
|
19087
19308
|
"locationInModule": {
|
|
19088
19309
|
"filename": "lib/constants.ts",
|
|
19089
|
-
"line":
|
|
19310
|
+
"line": 290
|
|
19090
19311
|
},
|
|
19091
19312
|
"members": [
|
|
19092
19313
|
{
|
|
@@ -19291,7 +19512,7 @@
|
|
|
19291
19512
|
},
|
|
19292
19513
|
"stability": "experimental",
|
|
19293
19514
|
"summary": "A Glue table that targets a S3 dataset.",
|
|
19294
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '
|
|
19515
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: 'NOW-3YEARS',\n max: 'NOW',\n format: 'yyyy-MM-dd',\n }),\n },\n});"
|
|
19295
19516
|
},
|
|
19296
19517
|
"fqn": "@aws-cdk/aws-glue-alpha.S3Table",
|
|
19297
19518
|
"initializer": {
|
|
@@ -19663,7 +19884,7 @@
|
|
|
19663
19884
|
"datatype": true,
|
|
19664
19885
|
"docs": {
|
|
19665
19886
|
"stability": "experimental",
|
|
19666
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '
|
|
19887
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: 'NOW-3YEARS',\n max: 'NOW',\n format: 'yyyy-MM-dd',\n }),\n },\n});",
|
|
19667
19888
|
"custom": {
|
|
19668
19889
|
"exampleMetadata": "infused"
|
|
19669
19890
|
}
|
|
@@ -20504,24 +20725,66 @@
|
|
|
20504
20725
|
{
|
|
20505
20726
|
"abstract": true,
|
|
20506
20727
|
"docs": {
|
|
20507
|
-
"default": "- no job run queuing",
|
|
20508
|
-
"remarks": "A value of true means job run queuing is enabled for the job runs.\nIf false or not populated, the job runs will not be considered for queueing.\nIf this field does not match the value set in the job run, then the value from\nthe job run field will be used. This property must be set to false for flex jobs.\nIf this property is enabled, maxRetries must be set to zero.",
|
|
20728
|
+
"default": "- no job run queuing",
|
|
20729
|
+
"remarks": "A value of true means job run queuing is enabled for the job runs.\nIf false or not populated, the job runs will not be considered for queueing.\nIf this field does not match the value set in the job run, then the value from\nthe job run field will be used. This property must be set to false for flex jobs.\nIf this property is enabled, maxRetries must be set to zero.",
|
|
20730
|
+
"stability": "experimental",
|
|
20731
|
+
"summary": "Specifies whether job run queuing is enabled for the job runs for this job."
|
|
20732
|
+
},
|
|
20733
|
+
"immutable": true,
|
|
20734
|
+
"locationInModule": {
|
|
20735
|
+
"filename": "lib/jobs/scala-spark-streaming-job.ts",
|
|
20736
|
+
"line": 57
|
|
20737
|
+
},
|
|
20738
|
+
"name": "jobRunQueuingEnabled",
|
|
20739
|
+
"optional": true,
|
|
20740
|
+
"type": {
|
|
20741
|
+
"primitive": "boolean"
|
|
20742
|
+
}
|
|
20743
|
+
}
|
|
20744
|
+
],
|
|
20745
|
+
"symbolId": "lib/jobs/scala-spark-streaming-job:ScalaSparkStreamingJobProps"
|
|
20746
|
+
},
|
|
20747
|
+
"@aws-cdk/aws-glue-alpha.ScheduledTriggerOptions": {
|
|
20748
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
20749
|
+
"datatype": true,
|
|
20750
|
+
"docs": {
|
|
20751
|
+
"stability": "experimental",
|
|
20752
|
+
"summary": "Properties for configuring a scheduled Glue Trigger.",
|
|
20753
|
+
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\nconst workflow = new glue.Workflow(stack, 'Workflow');\n\nworkflow.addScheduledTrigger('WeeklyTrigger', {\n actions: [glue.Action.job(job)],\n schedule: glue.TriggerSchedule.weekly(),\n});",
|
|
20754
|
+
"custom": {
|
|
20755
|
+
"exampleMetadata": "infused"
|
|
20756
|
+
}
|
|
20757
|
+
},
|
|
20758
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ScheduledTriggerOptions",
|
|
20759
|
+
"interfaces": [
|
|
20760
|
+
"@aws-cdk/aws-glue-alpha.StartableTriggerOptions"
|
|
20761
|
+
],
|
|
20762
|
+
"kind": "interface",
|
|
20763
|
+
"locationInModule": {
|
|
20764
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
20765
|
+
"line": 353
|
|
20766
|
+
},
|
|
20767
|
+
"name": "ScheduledTriggerOptions",
|
|
20768
|
+
"properties": [
|
|
20769
|
+
{
|
|
20770
|
+
"abstract": true,
|
|
20771
|
+
"docs": {
|
|
20772
|
+
"remarks": "Build one with {@link TriggerSchedule.daily}, {@link TriggerSchedule.weekly},\n{@link TriggerSchedule.cron}, or {@link TriggerSchedule.expression}.",
|
|
20509
20773
|
"stability": "experimental",
|
|
20510
|
-
"summary": "
|
|
20774
|
+
"summary": "The schedule on which this trigger fires."
|
|
20511
20775
|
},
|
|
20512
20776
|
"immutable": true,
|
|
20513
20777
|
"locationInModule": {
|
|
20514
|
-
"filename": "lib/
|
|
20515
|
-
"line":
|
|
20778
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
20779
|
+
"line": 360
|
|
20516
20780
|
},
|
|
20517
|
-
"name": "
|
|
20518
|
-
"optional": true,
|
|
20781
|
+
"name": "schedule",
|
|
20519
20782
|
"type": {
|
|
20520
|
-
"
|
|
20783
|
+
"fqn": "@aws-cdk/aws-glue-alpha.TriggerSchedule"
|
|
20521
20784
|
}
|
|
20522
20785
|
}
|
|
20523
20786
|
],
|
|
20524
|
-
"symbolId": "lib/
|
|
20787
|
+
"symbolId": "lib/triggers/trigger-options:ScheduledTriggerOptions"
|
|
20525
20788
|
},
|
|
20526
20789
|
"@aws-cdk/aws-glue-alpha.Schema": {
|
|
20527
20790
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
@@ -21649,11 +21912,13 @@
|
|
|
21649
21912
|
"methods": [
|
|
21650
21913
|
{
|
|
21651
21914
|
"docs": {
|
|
21652
|
-
"
|
|
21915
|
+
"remarks": "These are owned by the construct\n(derived from typed props). Each key is declared via {@link setManagedArgument} whether or not\nthe current configuration emits a value, so a disabled feature (e.g. `enableMetrics: false`)\ncannot be silently re-enabled through `defaultArguments`.",
|
|
21916
|
+
"stability": "experimental",
|
|
21917
|
+
"summary": "Register the arguments this construct manages for a Spark job."
|
|
21653
21918
|
},
|
|
21654
21919
|
"locationInModule": {
|
|
21655
21920
|
"filename": "lib/jobs/spark-job.ts",
|
|
21656
|
-
"line":
|
|
21921
|
+
"line": 189
|
|
21657
21922
|
},
|
|
21658
21923
|
"name": "nonExecutableCommonArguments",
|
|
21659
21924
|
"parameters": [
|
|
@@ -21664,40 +21929,19 @@
|
|
|
21664
21929
|
}
|
|
21665
21930
|
}
|
|
21666
21931
|
],
|
|
21667
|
-
"protected": true
|
|
21668
|
-
"returns": {
|
|
21669
|
-
"type": {
|
|
21670
|
-
"collection": {
|
|
21671
|
-
"elementtype": {
|
|
21672
|
-
"primitive": "string"
|
|
21673
|
-
},
|
|
21674
|
-
"kind": "map"
|
|
21675
|
-
}
|
|
21676
|
-
}
|
|
21677
|
-
}
|
|
21932
|
+
"protected": true
|
|
21678
21933
|
},
|
|
21679
21934
|
{
|
|
21680
21935
|
"docs": {
|
|
21681
21936
|
"stability": "experimental",
|
|
21682
|
-
"summary": "
|
|
21937
|
+
"summary": "Register the arguments for extra {@link Code}-related properties."
|
|
21683
21938
|
},
|
|
21684
21939
|
"locationInModule": {
|
|
21685
21940
|
"filename": "lib/jobs/spark-job.ts",
|
|
21686
|
-
"line":
|
|
21941
|
+
"line": 210
|
|
21687
21942
|
},
|
|
21688
21943
|
"name": "setupExtraCodeArguments",
|
|
21689
21944
|
"parameters": [
|
|
21690
|
-
{
|
|
21691
|
-
"name": "args",
|
|
21692
|
-
"type": {
|
|
21693
|
-
"collection": {
|
|
21694
|
-
"elementtype": {
|
|
21695
|
-
"primitive": "string"
|
|
21696
|
-
},
|
|
21697
|
-
"kind": "map"
|
|
21698
|
-
}
|
|
21699
|
-
}
|
|
21700
|
-
},
|
|
21701
21945
|
{
|
|
21702
21946
|
"name": "props",
|
|
21703
21947
|
"type": {
|
|
@@ -21979,6 +22223,49 @@
|
|
|
21979
22223
|
],
|
|
21980
22224
|
"symbolId": "lib/jobs/spark-job:SparkUIProps"
|
|
21981
22225
|
},
|
|
22226
|
+
"@aws-cdk/aws-glue-alpha.StartableTriggerOptions": {
|
|
22227
|
+
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
22228
|
+
"datatype": true,
|
|
22229
|
+
"docs": {
|
|
22230
|
+
"stability": "experimental",
|
|
22231
|
+
"summary": "Base options for triggers that can be started when they are created.",
|
|
22232
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\n\ndeclare const action: glue_alpha.Action;\nconst startableTriggerOptions: glue_alpha.StartableTriggerOptions = {\n actions: [action],\n\n // the properties below are optional\n description: 'description',\n name: 'name',\n startOnCreation: false,\n};",
|
|
22233
|
+
"custom": {
|
|
22234
|
+
"exampleMetadata": "fixture=_generated"
|
|
22235
|
+
}
|
|
22236
|
+
},
|
|
22237
|
+
"fqn": "@aws-cdk/aws-glue-alpha.StartableTriggerOptions",
|
|
22238
|
+
"interfaces": [
|
|
22239
|
+
"@aws-cdk/aws-glue-alpha.TriggerOptions"
|
|
22240
|
+
],
|
|
22241
|
+
"kind": "interface",
|
|
22242
|
+
"locationInModule": {
|
|
22243
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
22244
|
+
"line": 341
|
|
22245
|
+
},
|
|
22246
|
+
"name": "StartableTriggerOptions",
|
|
22247
|
+
"properties": [
|
|
22248
|
+
{
|
|
22249
|
+
"abstract": true,
|
|
22250
|
+
"docs": {
|
|
22251
|
+
"default": "- false",
|
|
22252
|
+
"stability": "experimental",
|
|
22253
|
+
"summary": "Whether to start the trigger on creation or not."
|
|
22254
|
+
},
|
|
22255
|
+
"immutable": true,
|
|
22256
|
+
"locationInModule": {
|
|
22257
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
22258
|
+
"line": 347
|
|
22259
|
+
},
|
|
22260
|
+
"name": "startOnCreation",
|
|
22261
|
+
"optional": true,
|
|
22262
|
+
"type": {
|
|
22263
|
+
"primitive": "boolean"
|
|
22264
|
+
}
|
|
22265
|
+
}
|
|
22266
|
+
],
|
|
22267
|
+
"symbolId": "lib/triggers/trigger-options:StartableTriggerOptions"
|
|
22268
|
+
},
|
|
21982
22269
|
"@aws-cdk/aws-glue-alpha.StorageParameter": {
|
|
21983
22270
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
21984
22271
|
"docs": {
|
|
@@ -23691,7 +23978,7 @@
|
|
|
23691
23978
|
"docs": {
|
|
23692
23979
|
"stability": "experimental",
|
|
23693
23980
|
"summary": "Properties for configuring a Glue Trigger.",
|
|
23694
|
-
"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';\
|
|
23981
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\n\ndeclare const action: glue_alpha.Action;\nconst triggerOptions: glue_alpha.TriggerOptions = {\n actions: [action],\n\n // the properties below are optional\n description: 'description',\n name: 'name',\n};",
|
|
23695
23982
|
"custom": {
|
|
23696
23983
|
"exampleMetadata": "fixture=_generated"
|
|
23697
23984
|
}
|
|
@@ -23700,7 +23987,7 @@
|
|
|
23700
23987
|
"kind": "interface",
|
|
23701
23988
|
"locationInModule": {
|
|
23702
23989
|
"filename": "lib/triggers/trigger-options.ts",
|
|
23703
|
-
"line":
|
|
23990
|
+
"line": 312
|
|
23704
23991
|
},
|
|
23705
23992
|
"name": "TriggerOptions",
|
|
23706
23993
|
"properties": [
|
|
@@ -23713,7 +24000,7 @@
|
|
|
23713
24000
|
"immutable": true,
|
|
23714
24001
|
"locationInModule": {
|
|
23715
24002
|
"filename": "lib/triggers/trigger-options.ts",
|
|
23716
|
-
"line":
|
|
24003
|
+
"line": 330
|
|
23717
24004
|
},
|
|
23718
24005
|
"name": "actions",
|
|
23719
24006
|
"type": {
|
|
@@ -23735,7 +24022,7 @@
|
|
|
23735
24022
|
"immutable": true,
|
|
23736
24023
|
"locationInModule": {
|
|
23737
24024
|
"filename": "lib/triggers/trigger-options.ts",
|
|
23738
|
-
"line":
|
|
24025
|
+
"line": 325
|
|
23739
24026
|
},
|
|
23740
24027
|
"name": "description",
|
|
23741
24028
|
"optional": true,
|
|
@@ -23753,7 +24040,7 @@
|
|
|
23753
24040
|
"immutable": true,
|
|
23754
24041
|
"locationInModule": {
|
|
23755
24042
|
"filename": "lib/triggers/trigger-options.ts",
|
|
23756
|
-
"line":
|
|
24043
|
+
"line": 318
|
|
23757
24044
|
},
|
|
23758
24045
|
"name": "name",
|
|
23759
24046
|
"optional": true,
|
|
@@ -23769,16 +24056,16 @@
|
|
|
23769
24056
|
"docs": {
|
|
23770
24057
|
"stability": "experimental",
|
|
23771
24058
|
"summary": "Represents a trigger schedule.",
|
|
23772
|
-
"example": "
|
|
24059
|
+
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\nconst workflow = new glue.Workflow(stack, 'Workflow');\n\nworkflow.addScheduledTrigger('WeeklyTrigger', {\n actions: [glue.Action.job(job)],\n schedule: glue.TriggerSchedule.weekly(),\n});",
|
|
23773
24060
|
"custom": {
|
|
23774
|
-
"exampleMetadata": "
|
|
24061
|
+
"exampleMetadata": "infused"
|
|
23775
24062
|
}
|
|
23776
24063
|
},
|
|
23777
24064
|
"fqn": "@aws-cdk/aws-glue-alpha.TriggerSchedule",
|
|
23778
24065
|
"kind": "class",
|
|
23779
24066
|
"locationInModule": {
|
|
23780
24067
|
"filename": "lib/triggers/trigger-options.ts",
|
|
23781
|
-
"line":
|
|
24068
|
+
"line": 135
|
|
23782
24069
|
},
|
|
23783
24070
|
"methods": [
|
|
23784
24071
|
{
|
|
@@ -23789,7 +24076,7 @@
|
|
|
23789
24076
|
},
|
|
23790
24077
|
"locationInModule": {
|
|
23791
24078
|
"filename": "lib/triggers/trigger-options.ts",
|
|
23792
|
-
"line":
|
|
24079
|
+
"line": 142
|
|
23793
24080
|
},
|
|
23794
24081
|
"name": "cron",
|
|
23795
24082
|
"parameters": [
|
|
@@ -23810,6 +24097,24 @@
|
|
|
23810
24097
|
},
|
|
23811
24098
|
"static": true
|
|
23812
24099
|
},
|
|
24100
|
+
{
|
|
24101
|
+
"docs": {
|
|
24102
|
+
"returns": "A new TriggerSchedule instance.",
|
|
24103
|
+
"stability": "experimental",
|
|
24104
|
+
"summary": "Creates a schedule that fires once a day, at midnight UTC."
|
|
24105
|
+
},
|
|
24106
|
+
"locationInModule": {
|
|
24107
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
24108
|
+
"line": 161
|
|
24109
|
+
},
|
|
24110
|
+
"name": "daily",
|
|
24111
|
+
"returns": {
|
|
24112
|
+
"type": {
|
|
24113
|
+
"fqn": "@aws-cdk/aws-glue-alpha.TriggerSchedule"
|
|
24114
|
+
}
|
|
24115
|
+
},
|
|
24116
|
+
"static": true
|
|
24117
|
+
},
|
|
23813
24118
|
{
|
|
23814
24119
|
"docs": {
|
|
23815
24120
|
"returns": "A new TriggerSchedule instance.",
|
|
@@ -23818,7 +24123,7 @@
|
|
|
23818
24123
|
},
|
|
23819
24124
|
"locationInModule": {
|
|
23820
24125
|
"filename": "lib/triggers/trigger-options.ts",
|
|
23821
|
-
"line":
|
|
24126
|
+
"line": 152
|
|
23822
24127
|
},
|
|
23823
24128
|
"name": "expression",
|
|
23824
24129
|
"parameters": [
|
|
@@ -23838,6 +24143,24 @@
|
|
|
23838
24143
|
}
|
|
23839
24144
|
},
|
|
23840
24145
|
"static": true
|
|
24146
|
+
},
|
|
24147
|
+
{
|
|
24148
|
+
"docs": {
|
|
24149
|
+
"returns": "A new TriggerSchedule instance.",
|
|
24150
|
+
"stability": "experimental",
|
|
24151
|
+
"summary": "Creates a schedule that fires once a week, at midnight UTC on Sunday."
|
|
24152
|
+
},
|
|
24153
|
+
"locationInModule": {
|
|
24154
|
+
"filename": "lib/triggers/trigger-options.ts",
|
|
24155
|
+
"line": 170
|
|
24156
|
+
},
|
|
24157
|
+
"name": "weekly",
|
|
24158
|
+
"returns": {
|
|
24159
|
+
"type": {
|
|
24160
|
+
"fqn": "@aws-cdk/aws-glue-alpha.TriggerSchedule"
|
|
24161
|
+
}
|
|
24162
|
+
},
|
|
24163
|
+
"static": true
|
|
23841
24164
|
}
|
|
23842
24165
|
],
|
|
23843
24166
|
"name": "TriggerSchedule",
|
|
@@ -23850,7 +24173,7 @@
|
|
|
23850
24173
|
"immutable": true,
|
|
23851
24174
|
"locationInModule": {
|
|
23852
24175
|
"filename": "lib/triggers/trigger-options.ts",
|
|
23853
|
-
"line":
|
|
24176
|
+
"line": 177
|
|
23854
24177
|
},
|
|
23855
24178
|
"name": "expressionString",
|
|
23856
24179
|
"type": {
|
|
@@ -23866,7 +24189,7 @@
|
|
|
23866
24189
|
"remarks": "Instances are opaque: obtain one from a `Schema` factory (for example\n`Schema.STRING`, `Schema.decimal(...)`, `Schema.array(...)`) or, for a type the\n`Schema` factories don't model, from `Schema.custom(...)`.",
|
|
23867
24190
|
"stability": "experimental",
|
|
23868
24191
|
"summary": "The type of a column in a table schema.",
|
|
23869
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '
|
|
24192
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: 'NOW-3YEARS',\n max: 'NOW',\n format: 'yyyy-MM-dd',\n }),\n },\n});",
|
|
23870
24193
|
"custom": {
|
|
23871
24194
|
"exampleMetadata": "infused"
|
|
23872
24195
|
}
|
|
@@ -23912,29 +24235,6 @@
|
|
|
23912
24235
|
],
|
|
23913
24236
|
"symbolId": "lib/schema:Type"
|
|
23914
24237
|
},
|
|
23915
|
-
"@aws-cdk/aws-glue-alpha.WeeklyScheduleTriggerOptions": {
|
|
23916
|
-
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
23917
|
-
"datatype": true,
|
|
23918
|
-
"docs": {
|
|
23919
|
-
"stability": "experimental",
|
|
23920
|
-
"summary": "Properties for configuring a weekly-scheduled Glue Trigger.",
|
|
23921
|
-
"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 weeklyScheduleTriggerOptions: glue_alpha.WeeklyScheduleTriggerOptions = {\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};",
|
|
23922
|
-
"custom": {
|
|
23923
|
-
"exampleMetadata": "fixture=_generated"
|
|
23924
|
-
}
|
|
23925
|
-
},
|
|
23926
|
-
"fqn": "@aws-cdk/aws-glue-alpha.WeeklyScheduleTriggerOptions",
|
|
23927
|
-
"interfaces": [
|
|
23928
|
-
"@aws-cdk/aws-glue-alpha.DailyScheduleTriggerOptions"
|
|
23929
|
-
],
|
|
23930
|
-
"kind": "interface",
|
|
23931
|
-
"locationInModule": {
|
|
23932
|
-
"filename": "lib/triggers/trigger-options.ts",
|
|
23933
|
-
"line": 198
|
|
23934
|
-
},
|
|
23935
|
-
"name": "WeeklyScheduleTriggerOptions",
|
|
23936
|
-
"symbolId": "lib/triggers/trigger-options:WeeklyScheduleTriggerOptions"
|
|
23937
|
-
},
|
|
23938
24238
|
"@aws-cdk/aws-glue-alpha.WorkerConfiguration": {
|
|
23939
24239
|
"assembly": "@aws-cdk/aws-glue-alpha",
|
|
23940
24240
|
"datatype": true,
|
|
@@ -24109,10 +24409,10 @@
|
|
|
24109
24409
|
"base": "@aws-cdk/aws-glue-alpha.WorkflowBase",
|
|
24110
24410
|
"docs": {
|
|
24111
24411
|
"remarks": "AWS Glue Workflows are orchestration services that allow you to create, manage, and monitor complex extract, transform, and load (ETL) activities involving multiple crawlers, jobs, and triggers. Workflows are designed to allow you to manage interdependent jobs and crawlers as a single unit, making it easier to orchestrate and monitor complex ETL pipelines.\n\nTriggers are used to initiate an AWS Glue Workflow. You can configure different types of triggers, such as on-demand, scheduled, event-based, or conditional triggers, to start your Workflow based on specific conditions or events.",
|
|
24112
|
-
"see": "https://docs.aws.amazon.com/glue/latest/dg/about-triggers.html\n\n## Usage Example\n\n```ts\nconst app = new App();\nconst stack = new Stack(app, 'TestStack');\n\n// Create a Glue Job\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nconst job = new glue.PySparkStreamingJob(stack, 'ImportedJob', { role, script });\n\n// Create a Glue Workflow\nconst workflow = new glue.Workflow(stack, 'TestWorkflow');\n\n// Add an on-demand trigger to the Workflow\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\nactions: [
|
|
24412
|
+
"see": "https://docs.aws.amazon.com/glue/latest/dg/about-triggers.html\n\n## Usage Example\n\n```ts\nconst app = new App();\nconst stack = new Stack(app, 'TestStack');\n\n// Create a Glue Job\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nconst job = new glue.PySparkStreamingJob(stack, 'ImportedJob', { role, script });\n\n// Create a Glue Workflow\nconst workflow = new glue.Workflow(stack, 'TestWorkflow');\n\n// Add an on-demand trigger to the Workflow\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\nactions: [glue.Action.job(job)],\n});\n```",
|
|
24113
24413
|
"stability": "experimental",
|
|
24114
24414
|
"summary": "This module defines a construct for creating and managing AWS Glue Workflows and Triggers.",
|
|
24115
|
-
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [
|
|
24415
|
+
"example": "import * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Create a job to run from the workflow\nconst job = new glue.PySparkEtlJob(stack, 'Job', { role, script });\n\n// Create a workflow and add a trigger that runs the job\nconst workflow = new glue.Workflow(stack, 'Workflow');\nworkflow.addOnDemandTrigger('OnDemandTrigger', {\n actions: [glue.Action.job(job)],\n});",
|
|
24116
24416
|
"custom": {
|
|
24117
24417
|
"exampleMetadata": "infused"
|
|
24118
24418
|
}
|
|
@@ -24124,7 +24424,7 @@
|
|
|
24124
24424
|
},
|
|
24125
24425
|
"locationInModule": {
|
|
24126
24426
|
"filename": "lib/triggers/workflow.ts",
|
|
24127
|
-
"line":
|
|
24427
|
+
"line": 306
|
|
24128
24428
|
},
|
|
24129
24429
|
"parameters": [
|
|
24130
24430
|
{
|
|
@@ -24151,7 +24451,7 @@
|
|
|
24151
24451
|
"kind": "class",
|
|
24152
24452
|
"locationInModule": {
|
|
24153
24453
|
"filename": "lib/triggers/workflow.ts",
|
|
24154
|
-
"line":
|
|
24454
|
+
"line": 268
|
|
24155
24455
|
},
|
|
24156
24456
|
"methods": [
|
|
24157
24457
|
{
|
|
@@ -24161,7 +24461,7 @@
|
|
|
24161
24461
|
},
|
|
24162
24462
|
"locationInModule": {
|
|
24163
24463
|
"filename": "lib/triggers/workflow.ts",
|
|
24164
|
-
"line":
|
|
24464
|
+
"line": 285
|
|
24165
24465
|
},
|
|
24166
24466
|
"name": "fromWorkflowArn",
|
|
24167
24467
|
"parameters": [
|
|
@@ -24198,7 +24498,7 @@
|
|
|
24198
24498
|
},
|
|
24199
24499
|
"locationInModule": {
|
|
24200
24500
|
"filename": "lib/triggers/workflow.ts",
|
|
24201
|
-
"line":
|
|
24501
|
+
"line": 295
|
|
24202
24502
|
},
|
|
24203
24503
|
"name": "fromWorkflowAttributes",
|
|
24204
24504
|
"parameters": [
|
|
@@ -24235,7 +24535,7 @@
|
|
|
24235
24535
|
},
|
|
24236
24536
|
"locationInModule": {
|
|
24237
24537
|
"filename": "lib/triggers/workflow.ts",
|
|
24238
|
-
"line":
|
|
24538
|
+
"line": 276
|
|
24239
24539
|
},
|
|
24240
24540
|
"name": "fromWorkflowName",
|
|
24241
24541
|
"parameters": [
|
|
@@ -24277,7 +24577,7 @@
|
|
|
24277
24577
|
"immutable": true,
|
|
24278
24578
|
"locationInModule": {
|
|
24279
24579
|
"filename": "lib/triggers/workflow.ts",
|
|
24280
|
-
"line":
|
|
24580
|
+
"line": 271
|
|
24281
24581
|
},
|
|
24282
24582
|
"name": "PROPERTY_INJECTION_ID",
|
|
24283
24583
|
"static": true,
|
|
@@ -24293,7 +24593,7 @@
|
|
|
24293
24593
|
"immutable": true,
|
|
24294
24594
|
"locationInModule": {
|
|
24295
24595
|
"filename": "lib/triggers/workflow.ts",
|
|
24296
|
-
"line":
|
|
24596
|
+
"line": 326
|
|
24297
24597
|
},
|
|
24298
24598
|
"name": "workflowArn",
|
|
24299
24599
|
"overrides": "@aws-cdk/aws-glue-alpha.WorkflowBase",
|
|
@@ -24309,7 +24609,7 @@
|
|
|
24309
24609
|
"immutable": true,
|
|
24310
24610
|
"locationInModule": {
|
|
24311
24611
|
"filename": "lib/triggers/workflow.ts",
|
|
24312
|
-
"line":
|
|
24612
|
+
"line": 321
|
|
24313
24613
|
},
|
|
24314
24614
|
"name": "workflowName",
|
|
24315
24615
|
"overrides": "@aws-cdk/aws-glue-alpha.WorkflowBase",
|
|
@@ -24335,7 +24635,7 @@
|
|
|
24335
24635
|
"kind": "interface",
|
|
24336
24636
|
"locationInModule": {
|
|
24337
24637
|
"filename": "lib/triggers/workflow.ts",
|
|
24338
|
-
"line":
|
|
24638
|
+
"line": 69
|
|
24339
24639
|
},
|
|
24340
24640
|
"name": "WorkflowAttributes",
|
|
24341
24641
|
"properties": [
|
|
@@ -24348,7 +24648,7 @@
|
|
|
24348
24648
|
"immutable": true,
|
|
24349
24649
|
"locationInModule": {
|
|
24350
24650
|
"filename": "lib/triggers/workflow.ts",
|
|
24351
|
-
"line":
|
|
24651
|
+
"line": 73
|
|
24352
24652
|
},
|
|
24353
24653
|
"name": "workflowName",
|
|
24354
24654
|
"type": {
|
|
@@ -24365,7 +24665,7 @@
|
|
|
24365
24665
|
"immutable": true,
|
|
24366
24666
|
"locationInModule": {
|
|
24367
24667
|
"filename": "lib/triggers/workflow.ts",
|
|
24368
|
-
"line":
|
|
24668
|
+
"line": 79
|
|
24369
24669
|
},
|
|
24370
24670
|
"name": "workflowArn",
|
|
24371
24671
|
"optional": true,
|
|
@@ -24422,7 +24722,7 @@
|
|
|
24422
24722
|
"kind": "class",
|
|
24423
24723
|
"locationInModule": {
|
|
24424
24724
|
"filename": "lib/triggers/workflow.ts",
|
|
24425
|
-
"line":
|
|
24725
|
+
"line": 120
|
|
24426
24726
|
},
|
|
24427
24727
|
"methods": [
|
|
24428
24728
|
{
|
|
@@ -24432,7 +24732,7 @@
|
|
|
24432
24732
|
},
|
|
24433
24733
|
"locationInModule": {
|
|
24434
24734
|
"filename": "lib/triggers/workflow.ts",
|
|
24435
|
-
"line":
|
|
24735
|
+
"line": 124
|
|
24436
24736
|
},
|
|
24437
24737
|
"name": "extractNameFromArn",
|
|
24438
24738
|
"parameters": [
|
|
@@ -24459,58 +24759,15 @@
|
|
|
24459
24759
|
},
|
|
24460
24760
|
{
|
|
24461
24761
|
"docs": {
|
|
24462
|
-
"
|
|
24463
|
-
"throws": "If a job is provided without a job state, or if a crawler is provided without a crawler state for any condition."
|
|
24464
|
-
},
|
|
24465
|
-
"returns": "The created CfnTrigger resource.",
|
|
24762
|
+
"returns": "a reference to the created trigger.",
|
|
24466
24763
|
"stability": "experimental",
|
|
24467
|
-
"summary": "Add a
|
|
24764
|
+
"summary": "Add a conditional (predicate-based) trigger to the workflow."
|
|
24468
24765
|
},
|
|
24469
24766
|
"locationInModule": {
|
|
24470
24767
|
"filename": "lib/triggers/workflow.ts",
|
|
24471
|
-
"line":
|
|
24768
|
+
"line": 193
|
|
24472
24769
|
},
|
|
24473
24770
|
"name": "addConditionalTrigger",
|
|
24474
|
-
"parameters": [
|
|
24475
|
-
{
|
|
24476
|
-
"docs": {
|
|
24477
|
-
"summary": "The id of the trigger."
|
|
24478
|
-
},
|
|
24479
|
-
"name": "id",
|
|
24480
|
-
"type": {
|
|
24481
|
-
"primitive": "string"
|
|
24482
|
-
}
|
|
24483
|
-
},
|
|
24484
|
-
{
|
|
24485
|
-
"docs": {
|
|
24486
|
-
"summary": "Additional options for the trigger."
|
|
24487
|
-
},
|
|
24488
|
-
"name": "options",
|
|
24489
|
-
"type": {
|
|
24490
|
-
"fqn": "@aws-cdk/aws-glue-alpha.ConditionalTriggerOptions"
|
|
24491
|
-
}
|
|
24492
|
-
}
|
|
24493
|
-
],
|
|
24494
|
-
"returns": {
|
|
24495
|
-
"type": {
|
|
24496
|
-
"fqn": "aws-cdk-lib.aws_glue.CfnTrigger"
|
|
24497
|
-
}
|
|
24498
|
-
}
|
|
24499
|
-
},
|
|
24500
|
-
{
|
|
24501
|
-
"docs": {
|
|
24502
|
-
"custom": {
|
|
24503
|
-
"throws": "If both job and crawler are provided, or if neither job nor crawler is provided."
|
|
24504
|
-
},
|
|
24505
|
-
"returns": "The created CfnTrigger resource.",
|
|
24506
|
-
"stability": "experimental",
|
|
24507
|
-
"summary": "Add a custom-scheduled trigger to the workflow."
|
|
24508
|
-
},
|
|
24509
|
-
"locationInModule": {
|
|
24510
|
-
"filename": "lib/triggers/workflow.ts",
|
|
24511
|
-
"line": 212
|
|
24512
|
-
},
|
|
24513
|
-
"name": "addCustomScheduledTrigger",
|
|
24514
24771
|
"overrides": "@aws-cdk/aws-glue-alpha.IWorkflow",
|
|
24515
24772
|
"parameters": [
|
|
24516
24773
|
{
|
|
@@ -24528,30 +24785,27 @@
|
|
|
24528
24785
|
},
|
|
24529
24786
|
"name": "options",
|
|
24530
24787
|
"type": {
|
|
24531
|
-
"fqn": "@aws-cdk/aws-glue-alpha.
|
|
24788
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ConditionalTriggerOptions"
|
|
24532
24789
|
}
|
|
24533
24790
|
}
|
|
24534
24791
|
],
|
|
24535
24792
|
"returns": {
|
|
24536
24793
|
"type": {
|
|
24537
|
-
"fqn": "aws-cdk-lib.aws_glue.
|
|
24794
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.ITriggerRef"
|
|
24538
24795
|
}
|
|
24539
24796
|
}
|
|
24540
24797
|
},
|
|
24541
24798
|
{
|
|
24542
24799
|
"docs": {
|
|
24543
|
-
"
|
|
24544
|
-
"throws": "If both job and crawler are provided, or if neither job nor crawler is provided."
|
|
24545
|
-
},
|
|
24546
|
-
"returns": "The created CfnTrigger resource.",
|
|
24800
|
+
"returns": "a reference to the created trigger.",
|
|
24547
24801
|
"stability": "experimental",
|
|
24548
|
-
"summary": "Add
|
|
24802
|
+
"summary": "Add an EventBridge event-based trigger to the workflow."
|
|
24549
24803
|
},
|
|
24550
24804
|
"locationInModule": {
|
|
24551
24805
|
"filename": "lib/triggers/workflow.ts",
|
|
24552
|
-
"line":
|
|
24806
|
+
"line": 175
|
|
24553
24807
|
},
|
|
24554
|
-
"name": "
|
|
24808
|
+
"name": "addEventTrigger",
|
|
24555
24809
|
"overrides": "@aws-cdk/aws-glue-alpha.IWorkflow",
|
|
24556
24810
|
"parameters": [
|
|
24557
24811
|
{
|
|
@@ -24569,68 +24823,25 @@
|
|
|
24569
24823
|
},
|
|
24570
24824
|
"name": "options",
|
|
24571
24825
|
"type": {
|
|
24572
|
-
"fqn": "@aws-cdk/aws-glue-alpha.
|
|
24573
|
-
}
|
|
24574
|
-
}
|
|
24575
|
-
],
|
|
24576
|
-
"returns": {
|
|
24577
|
-
"type": {
|
|
24578
|
-
"fqn": "aws-cdk-lib.aws_glue.CfnTrigger"
|
|
24579
|
-
}
|
|
24580
|
-
}
|
|
24581
|
-
},
|
|
24582
|
-
{
|
|
24583
|
-
"docs": {
|
|
24584
|
-
"custom": {
|
|
24585
|
-
"throws": "If both job and crawler are provided, or if neither job nor crawler is provided."
|
|
24586
|
-
},
|
|
24587
|
-
"returns": "The created CfnTrigger resource.",
|
|
24588
|
-
"stability": "experimental",
|
|
24589
|
-
"summary": "Add an Event Bridge based trigger to the workflow."
|
|
24590
|
-
},
|
|
24591
|
-
"locationInModule": {
|
|
24592
|
-
"filename": "lib/triggers/workflow.ts",
|
|
24593
|
-
"line": 233
|
|
24594
|
-
},
|
|
24595
|
-
"name": "addNotifyEventTrigger",
|
|
24596
|
-
"parameters": [
|
|
24597
|
-
{
|
|
24598
|
-
"docs": {
|
|
24599
|
-
"summary": "The id of the trigger."
|
|
24600
|
-
},
|
|
24601
|
-
"name": "id",
|
|
24602
|
-
"type": {
|
|
24603
|
-
"primitive": "string"
|
|
24604
|
-
}
|
|
24605
|
-
},
|
|
24606
|
-
{
|
|
24607
|
-
"docs": {
|
|
24608
|
-
"summary": "Additional options for the trigger."
|
|
24609
|
-
},
|
|
24610
|
-
"name": "options",
|
|
24611
|
-
"type": {
|
|
24612
|
-
"fqn": "@aws-cdk/aws-glue-alpha.NotifyEventTriggerOptions"
|
|
24826
|
+
"fqn": "@aws-cdk/aws-glue-alpha.EventTriggerOptions"
|
|
24613
24827
|
}
|
|
24614
24828
|
}
|
|
24615
24829
|
],
|
|
24616
24830
|
"returns": {
|
|
24617
24831
|
"type": {
|
|
24618
|
-
"fqn": "aws-cdk-lib.aws_glue.
|
|
24832
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.ITriggerRef"
|
|
24619
24833
|
}
|
|
24620
24834
|
}
|
|
24621
24835
|
},
|
|
24622
24836
|
{
|
|
24623
24837
|
"docs": {
|
|
24624
|
-
"
|
|
24625
|
-
"throws": "If both job and crawler are provided, or if neither job nor crawler is provided."
|
|
24626
|
-
},
|
|
24627
|
-
"returns": "The created CfnTrigger resource.",
|
|
24838
|
+
"returns": "a reference to the created trigger.",
|
|
24628
24839
|
"stability": "experimental",
|
|
24629
24840
|
"summary": "Add an on-demand trigger to the workflow."
|
|
24630
24841
|
},
|
|
24631
24842
|
"locationInModule": {
|
|
24632
24843
|
"filename": "lib/triggers/workflow.ts",
|
|
24633
|
-
"line":
|
|
24844
|
+
"line": 140
|
|
24634
24845
|
},
|
|
24635
24846
|
"name": "addOnDemandTrigger",
|
|
24636
24847
|
"overrides": "@aws-cdk/aws-glue-alpha.IWorkflow",
|
|
@@ -24656,24 +24867,21 @@
|
|
|
24656
24867
|
],
|
|
24657
24868
|
"returns": {
|
|
24658
24869
|
"type": {
|
|
24659
|
-
"fqn": "aws-cdk-lib.aws_glue.
|
|
24870
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.ITriggerRef"
|
|
24660
24871
|
}
|
|
24661
24872
|
}
|
|
24662
24873
|
},
|
|
24663
24874
|
{
|
|
24664
24875
|
"docs": {
|
|
24665
|
-
"
|
|
24666
|
-
"throws": "If both job and crawler are provided, or if neither job nor crawler is provided."
|
|
24667
|
-
},
|
|
24668
|
-
"returns": "The created CfnTrigger resource.",
|
|
24876
|
+
"returns": "a reference to the created trigger.",
|
|
24669
24877
|
"stability": "experimental",
|
|
24670
|
-
"summary": "Add a
|
|
24878
|
+
"summary": "Add a scheduled trigger to the workflow."
|
|
24671
24879
|
},
|
|
24672
24880
|
"locationInModule": {
|
|
24673
24881
|
"filename": "lib/triggers/workflow.ts",
|
|
24674
|
-
"line":
|
|
24882
|
+
"line": 157
|
|
24675
24883
|
},
|
|
24676
|
-
"name": "
|
|
24884
|
+
"name": "addScheduledTrigger",
|
|
24677
24885
|
"overrides": "@aws-cdk/aws-glue-alpha.IWorkflow",
|
|
24678
24886
|
"parameters": [
|
|
24679
24887
|
{
|
|
@@ -24687,17 +24895,17 @@
|
|
|
24687
24895
|
},
|
|
24688
24896
|
{
|
|
24689
24897
|
"docs": {
|
|
24690
|
-
"summary": "Additional options for the trigger."
|
|
24898
|
+
"summary": "Additional options for the trigger, including the schedule."
|
|
24691
24899
|
},
|
|
24692
24900
|
"name": "options",
|
|
24693
24901
|
"type": {
|
|
24694
|
-
"fqn": "@aws-cdk/aws-glue-alpha.
|
|
24902
|
+
"fqn": "@aws-cdk/aws-glue-alpha.ScheduledTriggerOptions"
|
|
24695
24903
|
}
|
|
24696
24904
|
}
|
|
24697
24905
|
],
|
|
24698
24906
|
"returns": {
|
|
24699
24907
|
"type": {
|
|
24700
|
-
"fqn": "aws-cdk-lib.aws_glue.
|
|
24908
|
+
"fqn": "aws-cdk-lib.interfaces.aws_glue.ITriggerRef"
|
|
24701
24909
|
}
|
|
24702
24910
|
}
|
|
24703
24911
|
},
|
|
@@ -24707,7 +24915,7 @@
|
|
|
24707
24915
|
},
|
|
24708
24916
|
"locationInModule": {
|
|
24709
24917
|
"filename": "lib/triggers/workflow.ts",
|
|
24710
|
-
"line":
|
|
24918
|
+
"line": 229
|
|
24711
24919
|
},
|
|
24712
24920
|
"name": "buildWorkflowArn",
|
|
24713
24921
|
"parameters": [
|
|
@@ -24743,7 +24951,7 @@
|
|
|
24743
24951
|
"immutable": true,
|
|
24744
24952
|
"locationInModule": {
|
|
24745
24953
|
"filename": "lib/triggers/workflow.ts",
|
|
24746
|
-
"line":
|
|
24954
|
+
"line": 131
|
|
24747
24955
|
},
|
|
24748
24956
|
"name": "workflowArn",
|
|
24749
24957
|
"overrides": "@aws-cdk/aws-glue-alpha.IWorkflow",
|
|
@@ -24760,7 +24968,7 @@
|
|
|
24760
24968
|
"immutable": true,
|
|
24761
24969
|
"locationInModule": {
|
|
24762
24970
|
"filename": "lib/triggers/workflow.ts",
|
|
24763
|
-
"line":
|
|
24971
|
+
"line": 130
|
|
24764
24972
|
},
|
|
24765
24973
|
"name": "workflowName",
|
|
24766
24974
|
"overrides": "@aws-cdk/aws-glue-alpha.IWorkflow",
|
|
@@ -24786,7 +24994,7 @@
|
|
|
24786
24994
|
"kind": "interface",
|
|
24787
24995
|
"locationInModule": {
|
|
24788
24996
|
"filename": "lib/triggers/workflow.ts",
|
|
24789
|
-
"line":
|
|
24997
|
+
"line": 85
|
|
24790
24998
|
},
|
|
24791
24999
|
"name": "WorkflowProps",
|
|
24792
25000
|
"properties": [
|
|
@@ -24800,7 +25008,7 @@
|
|
|
24800
25008
|
"immutable": true,
|
|
24801
25009
|
"locationInModule": {
|
|
24802
25010
|
"filename": "lib/triggers/workflow.ts",
|
|
24803
|
-
"line":
|
|
25011
|
+
"line": 105
|
|
24804
25012
|
},
|
|
24805
25013
|
"name": "defaultRunProperties",
|
|
24806
25014
|
"optional": true,
|
|
@@ -24823,7 +25031,7 @@
|
|
|
24823
25031
|
"immutable": true,
|
|
24824
25032
|
"locationInModule": {
|
|
24825
25033
|
"filename": "lib/triggers/workflow.ts",
|
|
24826
|
-
"line":
|
|
25034
|
+
"line": 98
|
|
24827
25035
|
},
|
|
24828
25036
|
"name": "description",
|
|
24829
25037
|
"optional": true,
|
|
@@ -24841,7 +25049,7 @@
|
|
|
24841
25049
|
"immutable": true,
|
|
24842
25050
|
"locationInModule": {
|
|
24843
25051
|
"filename": "lib/triggers/workflow.ts",
|
|
24844
|
-
"line":
|
|
25052
|
+
"line": 112
|
|
24845
25053
|
},
|
|
24846
25054
|
"name": "maxConcurrentRuns",
|
|
24847
25055
|
"optional": true,
|
|
@@ -24859,7 +25067,7 @@
|
|
|
24859
25067
|
"immutable": true,
|
|
24860
25068
|
"locationInModule": {
|
|
24861
25069
|
"filename": "lib/triggers/workflow.ts",
|
|
24862
|
-
"line":
|
|
25070
|
+
"line": 91
|
|
24863
25071
|
},
|
|
24864
25072
|
"name": "workflowName",
|
|
24865
25073
|
"optional": true,
|
|
@@ -24904,6 +25112,6 @@
|
|
|
24904
25112
|
"symbolId": "lib/storage-parameter:WriteParallel"
|
|
24905
25113
|
}
|
|
24906
25114
|
},
|
|
24907
|
-
"version": "2.
|
|
25115
|
+
"version": "2.269.0-alpha.0",
|
|
24908
25116
|
"fingerprint": "**********"
|
|
24909
25117
|
}
|