@aws-cdk/aws-glue-alpha 2.237.1-alpha.0 → 2.238.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.
Files changed (54) hide show
  1. package/.jsii +1009 -336
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +39 -1
  4. package/README.md +180 -0
  5. package/lib/code.d.ts +3 -3
  6. package/lib/code.js +4 -4
  7. package/lib/connection.d.ts +2 -2
  8. package/lib/connection.js +3 -3
  9. package/lib/data-format.js +5 -5
  10. package/lib/data-quality-ruleset.d.ts +3 -2
  11. package/lib/data-quality-ruleset.js +3 -3
  12. package/lib/database.d.ts +3 -2
  13. package/lib/database.js +2 -2
  14. package/lib/external-table.d.ts +5 -4
  15. package/lib/external-table.js +2 -2
  16. package/lib/index.d.ts +1 -0
  17. package/lib/index.js +2 -1
  18. package/lib/jobs/job.d.ts +7 -6
  19. package/lib/jobs/job.js +3 -3
  20. package/lib/jobs/pyspark-etl-job.d.ts +4 -3
  21. package/lib/jobs/pyspark-etl-job.js +2 -2
  22. package/lib/jobs/pyspark-flex-etl-job.d.ts +5 -4
  23. package/lib/jobs/pyspark-flex-etl-job.js +2 -2
  24. package/lib/jobs/pyspark-streaming-job.d.ts +4 -3
  25. package/lib/jobs/pyspark-streaming-job.js +2 -2
  26. package/lib/jobs/python-shell-job.d.ts +4 -3
  27. package/lib/jobs/python-shell-job.js +2 -2
  28. package/lib/jobs/ray-job.d.ts +4 -3
  29. package/lib/jobs/ray-job.js +2 -2
  30. package/lib/jobs/scala-spark-etl-job.d.ts +4 -3
  31. package/lib/jobs/scala-spark-etl-job.js +2 -2
  32. package/lib/jobs/scala-spark-flex-etl-job.d.ts +5 -4
  33. package/lib/jobs/scala-spark-flex-etl-job.js +2 -2
  34. package/lib/jobs/scala-spark-streaming-job.d.ts +4 -3
  35. package/lib/jobs/scala-spark-streaming-job.js +2 -2
  36. package/lib/jobs/spark-job.d.ts +5 -4
  37. package/lib/jobs/spark-job.js +2 -2
  38. package/lib/partition-projection.d.ts +243 -0
  39. package/lib/partition-projection.js +339 -0
  40. package/lib/s3-table.d.ts +4 -3
  41. package/lib/s3-table.js +2 -2
  42. package/lib/schema.js +1 -1
  43. package/lib/security-configuration.d.ts +1 -1
  44. package/lib/security-configuration.js +2 -2
  45. package/lib/storage-parameter.js +1 -1
  46. package/lib/table-base.d.ts +28 -7
  47. package/lib/table-base.js +47 -2
  48. package/lib/table-deprecated.d.ts +2 -1
  49. package/lib/table-deprecated.js +2 -2
  50. package/lib/triggers/trigger-options.d.ts +5 -5
  51. package/lib/triggers/trigger-options.js +2 -2
  52. package/lib/triggers/workflow.d.ts +2 -2
  53. package/lib/triggers/workflow.js +3 -3
  54. package/package.json +6 -6
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.237.1",
11
+ "aws-cdk-lib": "^2.238.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -8520,7 +8520,7 @@
8520
8520
  },
8521
8521
  "name": "@aws-cdk/aws-glue-alpha",
8522
8522
  "readme": {
8523
- "markdown": "# AWS Glue Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\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, Ray, and Flex Jobs. Most\nof the required parameters for these jobs are common across all types,\nbut there are a few differences depending on the languages supported\nand features provided by each type. For all job types, the L2 defaults\nto AWS best practice recommendations, such as:\n\n* Use of Secrets Manager for Connection JDBC strings\n* Glue job autoscaling\n* Default parameter values for Glue job creation\n\nThis iteration of the L2 construct introduces breaking changes to\nthe existing glue-alpha-module, but these changes streamline the developer\nexperience, introduce new constants for defaults, and replacing synth-time\nvalidations with interface contracts for enforcement of the parameter combinations\nthat Glue supports. As an opinionated construct, the Glue L2 construct does\nnot allow developers to create resources that use non-current versions\nof Glue or deprecated language dependencies (e.g. deprecated versions of Python).\nAs always, L1s allow you to specify a wider range of parameters if you need\nor want to use alternative configurations.\n\nOptional and required parameters for each job are enforced via interface\nrather than validation; see [Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html)\nfor more granular details.\n\n### Spark Jobs\n\n#### ETL Jobs\n\nETL jobs support pySpark and Scala languages, for which there are separate but\nsimilar constructors. ETL jobs default to the G2 worker type, but you can\noverride this default with other supported worker type values (G1, G2, G4\nand G8). ETL jobs defaults to Glue version 4.0, which you can override to 3.0.\nThe following ETL features are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log.`\nYou can find more details about version, worker type and other features in\n[Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html).\n\nReference the pyspark-etl-jobs.test.ts and scalaspark-etl-jobs.test.ts unit tests\nfor examples of required-only and optional job parameters when creating these\ntypes of jobs.\n\nFor the sake of brevity, examples are shown using the pySpark job variety.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n});\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n jobName: 'PySparkETLJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n#### Streaming Jobs\n\nStreaming jobs are similar to ETL jobs, except that they perform ETL on data\nstreams using the Apache Spark Structured Streaming framework. Some Spark\njob features are not available to Streaming ETL jobs. They support Scala\nand pySpark languages. PySpark streaming jobs default Python 3.9,\nwhich you can override with any non-deprecated version of Python. It\ndefaults to the G2 worker type and Glue 4.0, both of which you can override.\nThe following best practice features are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log`.\n\nReference the pyspark-streaming-jobs.test.ts and scalaspark-streaming-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'PySparkStreamingJob', {\n jobName: 'PySparkStreamingJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n#### Flex Jobs\n\nThe flexible execution class is appropriate for non-urgent jobs such as\npre-production jobs, testing, and one-time data loads. Flexible jobs default\nto Glue version 3.0 and worker type `G_2X`. The following best practice\nfeatures are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log`\n\nReference the pyspark-flex-etl-jobs.test.ts and scalaspark-flex-etl-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'pySparkEtlJob', {\n jobName: 'pySparkEtlJob',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n### Python Shell Jobs\n\nPython shell jobs support a Python version that depends on the AWS Glue\nversion you use. These can be used to schedule and run tasks that don't\nrequire an Apache Spark environment. Python shell jobs default to\nPython 3.9 and a MaxCapacity of `0.0625`. Python 3.9 supports pre-loaded\nanalytics libraries using the `library-set=analytics` flag, which is\nenabled by default.\n\nReference the pyspark-shell-job.test.ts unit tests for examples of\nrequired-only and optional job parameters when creating these types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PythonShellJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PythonShellJob(stack, 'PythonShellJob', {\n jobName: 'PythonShellJobCustomName',\n description: 'This is a description',\n pythonVersion: glue.PythonVersion.TWO,\n maxCapacity: glue.MaxCapacity.DPU_1,\n role,\n script,\n glueVersion: glue.GlueVersion.V2_0,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n### Ray Jobs\n\nGlue Ray jobs use worker type Z.2X and Glue version 4.0. These are not\noverrideable since these are the only configuration that Glue Ray jobs\ncurrently support. The runtime defaults to Ray2.4 and min workers defaults to 3.\n\nReference the ray-job.test.ts unit tests for examples of required-only and\noptional 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.RayJob(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.RayJob(stack, 'ImportedJob', {\n role,\n script,\n jobName: 'RayCustomJobName',\n description: 'This is a description',\n workerType: glue.WorkerType.Z_2X,\n numberOfWorkers: 5,\n runtime: glue.Runtime.RAY_TWO_FOUR,\n maxRetries: 3,\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});\n```\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) and Ray jobs.\n\n### Enable Job Run Queuing\n\nAWS Glue job queuing monitors your account level quotas and limits. If quotas or limits are insufficient to start a Glue job run, AWS Glue will automatically queue the job and wait for limits to free up. Once limits become available, AWS Glue will retry the job run. Glue jobs will queue for limits like max concurrent job runs per account, max concurrent Data Processing Units (DPU), and resource unavailable due to IP address exhaustion in Amazon Virtual Private Cloud (Amazon VPC).\n\nEnable job run queuing by setting the `jobRunQueuingEnabled` property to `true`.\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n jobRunQueuingEnabled: true\n});\n```\n\n### Uploading scripts from the CDK app repository to S3\n\nSimilar to other L2 constructs, the Glue L2 automates uploading / updating\nscripts to S3 via an optional fromAsset parameter pointing to a script\nin the local file structure. You provide the existing S3 bucket and\npath to which you'd like the script to be uploaded.\n\nReference the unit tests for examples of repo and S3 code target examples.\n\n### Workflow Triggers\n\nYou can use Glue workflows to create and visualize complex\nextract, transform, and load (ETL) activities involving multiple crawlers,\njobs, and triggers. Standalone triggers are an anti-pattern, so you must\ncreate triggers from within a workflow using the L2 construct.\n\nWithin a workflow object, there are functions to create different\ntypes of triggers with actions and predicates. You then add those triggers\nto jobs.\n\nStartOnCreation defaults to true for all trigger types, but you can\noverride it if you prefer for your trigger not to start on creation.\n\nReference the workflow-triggers.test.ts unit tests for examples of creating\nworkflows and triggers.\n\n#### **1. On-Demand Triggers**\n\nOn-demand triggers can start glue jobs or crawlers. This construct provides\nconvenience functions to create on-demand crawler or job triggers. The constructor\ntakes an optional description parameter, but abstracts the requirement of an\nactions list using the job or crawler objects using conditional types.\n\n#### **2. Scheduled Triggers**\n\nYou can create scheduled triggers using cron expressions. This construct\nprovides daily, weekly, and monthly convenience functions,\nas well as a custom function that allows you to create your own\ncustom timing using the [existing event Schedule class](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.Schedule.html)\nwithout having to build your own cron expressions. The L2 extracts\nthe expression that Glue requires from the Schedule object. The constructor\ntakes an optional description and a list of jobs or crawlers as actions.\n\n#### **3. Notify Event Triggers**\n\nThere are two types of notify event triggers: batching and non-batching.\nFor batching triggers, you must specify `BatchSize`. For non-batching\ntriggers, `BatchSize` defaults to 1. For both triggers, `BatchWindow`\ndefaults to 900 seconds, but you can override the window to align with\nyour workload's requirements.\n\n#### **4. Conditional Triggers**\n\nConditional triggers have a predicate and actions associated with them.\nThe trigger actions are executed when the predicateCondition is true.\n\n### Connection Properties\n\nA `Connection` allows Glue jobs, crawlers and development endpoints to access\ncertain types of data stores.\n\n* **Secrets Management**\n You must specify JDBC connection credentials in Secrets Manager and\n provide the Secrets Manager Key name as a property to the job connection.\n\n* **Networking - the CDK determines the best fit subnet for Glue connection\nconfiguration**\n The prior version of the glue-alpha-module requires the developer to\n specify the subnet of the Connection when it’s defined. Now, you can still\n specify the specific subnet you want to use, but are no longer required\n to. You are only required to provide a VPC and either a public or private\n subnet selection. Without a specific subnet provided, the L2 leverages the\n existing [EC2 Subnet Selection](https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_ec2/SubnetSelection.html)\n library to make the best choice selection for the subnet.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n // The security groups granting AWS Glue inbound access to the data source within the VPC\n securityGroups: [securityGroup],\n // The VPC subnet which contains the data source\n subnet,\n});\n```\n\nFor RDS `Connection` by JDBC, it is recommended to manage credentials using AWS Secrets Manager. To use Secret, specify `SECRET_ID` in `properties` like the following code. Note that in this case, the subnet must have a route to the AWS Secrets Manager VPC endpoint or to the AWS Secrets Manager endpoint through a NAT gateway.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const db: rds.DatabaseCluster;\nnew glue.Connection(this, \"RdsConnection\", {\n type: glue.ConnectionType.JDBC,\n securityGroups: [securityGroup],\n subnet,\n properties: {\n JDBC_CONNECTION_URL: `jdbc:mysql://${db.clusterEndpoint.socketAddress}/databasename`,\n JDBC_ENFORCE_SSL: \"false\",\n SECRET_ID: db.secret!.secretName,\n },\n});\n```\n\nIf you need to use a connection type that doesn't exist as a static member on `ConnectionType`, you can instantiate a `ConnectionType` object, e.g: `new glue.ConnectionType('NEW_TYPE')`.\n\nSee [Adding a Connection to Your Data Store](https://docs.aws.amazon.com/glue/latest/dg/populate-add-connection.html) and [Connection Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-connections.html#aws-glue-api-catalog-connections-Connection) documentation for more information on the supported data stores and their configurations.\n\n## SecurityConfiguration\n\nA `SecurityConfiguration` is a set of security properties that can be used by AWS Glue to encrypt data at rest.\n\n```ts\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n },\n jobBookmarksEncryption: {\n mode: glue.JobBookmarksEncryptionMode.CLIENT_SIDE_KMS,\n },\n s3Encryption: {\n mode: glue.S3EncryptionMode.KMS,\n },\n});\n```\n\nBy default, a shared KMS key is created for use with the encryption configurations that require one. You can also supply your own key for each encryption config, for example, for CloudWatch encryption:\n\n```ts\ndeclare const key: kms.Key;\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n kmsKey: key,\n },\n});\n```\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html) for more info for Glue encrypting data written by Crawlers, Jobs, and Development Endpoints.\n\n## Database\n\nA `Database` is a logical grouping of `Tables` in the Glue Catalog.\n\n```ts\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n description: 'my_database_description',\n});\n```\n\n## Table\n\nA Glue table describes a table of data in S3: its structure (column names and types), location of data (S3 objects with a common prefix in a S3 bucket), and format for the files (Json, Avro, Parquet, etc.):\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }, {\n name: 'col2',\n type: glue.Schema.array(glue.Schema.STRING),\n comment: 'col2 is an array of strings' // comment is optional\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nBy default, a S3 bucket will be created to store the table's data but you can manually pass the `bucket` and `s3Prefix`:\n\n```ts\ndeclare const myBucket: s3.Bucket;\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n bucket: myBucket,\n s3Prefix: 'my-table/',\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can be configured to contain user-defined properties, to describe the physical storage of table data, through the `storageParameters` property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('separatorChar', ',')\n ],\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can also be configured to contain user-defined table properties through the [`parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters) property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n parameters: {\n key1: 'val1',\n key2: 'val2',\n },\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Keys\n\nTo improve query performance, a table can specify `partitionKeys` on which data is stored and queried separately. For example, you might partition a table by `year` and `month` to optimize queries based on a time window:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Indexes\n\nAnother way to improve query performance is to specify partition indexes. If no partition indexes are\npresent on the table, AWS Glue loads all partitions of the table and filters the loaded partitions using\nthe query expression. The query takes more time to run as the number of partitions increase. With an\nindex, the query will try to fetch a subset of the partitions instead of loading all partitions of the\ntable.\n\nThe keys of a partition index must be a subset of the partition keys of the table. You can have a\nmaximum of 3 partition indexes per table. To specify a partition index, you can use the `partitionIndexes`\nproperty:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n partitionIndexes: [{\n indexName: 'my-index', // optional\n keyNames: ['year'],\n }], // supply up to 3 indexes\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nAlternatively, you can call the `addPartitionIndex()` function on a table:\n\n```ts\ndeclare const myTable: glue.Table;\nmyTable.addPartitionIndex({\n indexName: 'my-index',\n keyNames: ['year'],\n});\n```\n\n### Partition Filtering\n\nIf you have a table with a large number of partitions that grows over time, consider using AWS Glue partition indexing and filtering.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n enablePartitionFiltering: true,\n});\n```\n\n### Glue Connections\n\nGlue connections allow external data connections to third party databases and data warehouses. However, these connections can also be assigned to Glue Tables, allowing you to query external data sources using the Glue Data Catalog.\n\nWhereas `S3Table` will point to (and if needed, create) a bucket to store the tables' data, `ExternalTable` will point to an existing table in a data source. For example, to create a table in Glue that points to a table in Redshift:\n\n```ts\ndeclare const myConnection: glue.Connection;\ndeclare const myDatabase: glue.Database;\nnew glue.ExternalTable(this, 'MyTable', {\n connection: myConnection,\n externalDataLocation: 'default_db_public_example', // A table in Redshift\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## [Encryption](https://docs.aws.amazon.com/athena/latest/ug/encryption.html)\n\nYou can enable encryption on a Table's data:\n\n* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - (default) Server side encryption (`SSE-S3`) with an Amazon S3-managed key.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.S3_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [Kms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [KmsManaged](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`), like `Kms`, except with an AWS KMS Key managed by the AWS Key Management Service.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [ClientSideKms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html#client-side-encryption-kms-managed-master-key-intro) - Client-side encryption (`CSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n*Note: you cannot provide a `Bucket` when creating the `S3Table` if you wish to use server-side encryption (`KMS`, `KMS_MANAGED` or `S3_MANAGED`)*.\n\n## Types\n\nA table's schema is a collection of columns, each of which have a `name` and a `type`. Types are recursive structures, consisting of primitive and complex types:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n columns: [{\n name: 'primitive_column',\n type: glue.Schema.STRING,\n }, {\n name: 'array_column',\n type: glue.Schema.array(glue.Schema.INTEGER),\n comment: 'array<integer>',\n }, {\n name: 'map_column',\n type: glue.Schema.map(\n glue.Schema.STRING,\n glue.Schema.TIMESTAMP),\n comment: 'map<string,string>',\n }, {\n name: 'struct_column',\n type: glue.Schema.struct([{\n name: 'nested_column',\n type: glue.Schema.DATE,\n comment: 'nested comment',\n }]),\n comment: \"struct<nested_column:date COMMENT 'nested comment'>\",\n }],\n // ...\n database: myDatabase,\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## Public FAQ\n\n### What are we launching today?\n\nWe’re launching new features to an AWS CDK Glue L2 Construct to provide\nbest-practice defaults and convenience methods to create Glue Jobs, Connections,\nTriggers, Workflows, and the underlying permissions and configuration.\n\n### Why should I use this Construct?\n\nDevelopers should use this Construct to reduce the amount of boilerplate\ncode and complexity each individual has to navigate, and make it easier to\ncreate best-practice Glue resources.\n\n### What’s not in scope?\n\nGlue Crawlers and other resources that are now managed by the AWS LakeFormation\nteam are not in scope for this effort. Developers should use existing methods\nto create these resources, and the new Glue L2 construct assumes they already\nexist as inputs. While best practice is for application and infrastructure code\nto be as close as possible for teams using fully-implemented DevOps mechanisms,\nin practice these ETL scripts are likely managed by a data science team who\nknow Python or Scala and don’t necessarily own or manage their own\ninfrastructure deployments. We want to meet developers where they are, and not\nassume that all of the code resides in the same repository, Developers can\nautomate this themselves via the CDK, however, if they do own both.\n\nValidating Glue version and feature use per AWS region at synth time is also\nnot in scope. AWS’ intention is for all features to eventually be propagated to\nall Global regions, so the complexity involved in creating and updating region-\nspecific configuration to match shifting feature sets does not out-weigh the\nlikelihood that a developer will use this construct to deploy resources to a\nregion without a particular new feature to a region that doesn’t yet support\nit without researching or manually attempting to use that feature before\ndeveloping it via IaC. The developer will, of course, still get feedback from\nthe underlying Glue APIs as CloudFormation deploys the resources similar to the\ncurrent CDK L1 Glue experience.\n"
8523
+ "markdown": "# AWS Glue Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\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, Ray, and Flex Jobs. Most\nof the required parameters for these jobs are common across all types,\nbut there are a few differences depending on the languages supported\nand features provided by each type. For all job types, the L2 defaults\nto AWS best practice recommendations, such as:\n\n* Use of Secrets Manager for Connection JDBC strings\n* Glue job autoscaling\n* Default parameter values for Glue job creation\n\nThis iteration of the L2 construct introduces breaking changes to\nthe existing glue-alpha-module, but these changes streamline the developer\nexperience, introduce new constants for defaults, and replacing synth-time\nvalidations with interface contracts for enforcement of the parameter combinations\nthat Glue supports. As an opinionated construct, the Glue L2 construct does\nnot allow developers to create resources that use non-current versions\nof Glue or deprecated language dependencies (e.g. deprecated versions of Python).\nAs always, L1s allow you to specify a wider range of parameters if you need\nor want to use alternative configurations.\n\nOptional and required parameters for each job are enforced via interface\nrather than validation; see [Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html)\nfor more granular details.\n\n### Spark Jobs\n\n#### ETL Jobs\n\nETL jobs support pySpark and Scala languages, for which there are separate but\nsimilar constructors. ETL jobs default to the G2 worker type, but you can\noverride this default with other supported worker type values (G1, G2, G4\nand G8). ETL jobs defaults to Glue version 4.0, which you can override to 3.0.\nThe following ETL features are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log.`\nYou can find more details about version, worker type and other features in\n[Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html).\n\nReference the pyspark-etl-jobs.test.ts and scalaspark-etl-jobs.test.ts unit tests\nfor examples of required-only and optional job parameters when creating these\ntypes of jobs.\n\nFor the sake of brevity, examples are shown using the pySpark job variety.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n});\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n jobName: 'PySparkETLJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n#### Streaming Jobs\n\nStreaming jobs are similar to ETL jobs, except that they perform ETL on data\nstreams using the Apache Spark Structured Streaming framework. Some Spark\njob features are not available to Streaming ETL jobs. They support Scala\nand pySpark languages. PySpark streaming jobs default Python 3.9,\nwhich you can override with any non-deprecated version of Python. It\ndefaults to the G2 worker type and Glue 4.0, both of which you can override.\nThe following best practice features are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log`.\n\nReference the pyspark-streaming-jobs.test.ts and scalaspark-streaming-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'PySparkStreamingJob', {\n jobName: 'PySparkStreamingJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n#### Flex Jobs\n\nThe flexible execution class is appropriate for non-urgent jobs such as\npre-production jobs, testing, and one-time data loads. Flexible jobs default\nto Glue version 3.0 and worker type `G_2X`. The following best practice\nfeatures are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log`\n\nReference the pyspark-flex-etl-jobs.test.ts and scalaspark-flex-etl-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'pySparkEtlJob', {\n jobName: 'pySparkEtlJob',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n### Python Shell Jobs\n\nPython shell jobs support a Python version that depends on the AWS Glue\nversion you use. These can be used to schedule and run tasks that don't\nrequire an Apache Spark environment. Python shell jobs default to\nPython 3.9 and a MaxCapacity of `0.0625`. Python 3.9 supports pre-loaded\nanalytics libraries using the `library-set=analytics` flag, which is\nenabled by default.\n\nReference the pyspark-shell-job.test.ts unit tests for examples of\nrequired-only and optional job parameters when creating these types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PythonShellJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PythonShellJob(stack, 'PythonShellJob', {\n jobName: 'PythonShellJobCustomName',\n description: 'This is a description',\n pythonVersion: glue.PythonVersion.TWO,\n maxCapacity: glue.MaxCapacity.DPU_1,\n role,\n script,\n glueVersion: glue.GlueVersion.V2_0,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n### Ray Jobs\n\nGlue Ray jobs use worker type Z.2X and Glue version 4.0. These are not\noverrideable since these are the only configuration that Glue Ray jobs\ncurrently support. The runtime defaults to Ray2.4 and min workers defaults to 3.\n\nReference the ray-job.test.ts unit tests for examples of required-only and\noptional 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.RayJob(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.RayJob(stack, 'ImportedJob', {\n role,\n script,\n jobName: 'RayCustomJobName',\n description: 'This is a description',\n workerType: glue.WorkerType.Z_2X,\n numberOfWorkers: 5,\n runtime: glue.Runtime.RAY_TWO_FOUR,\n maxRetries: 3,\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});\n```\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) and Ray jobs.\n\n### Enable Job Run Queuing\n\nAWS Glue job queuing monitors your account level quotas and limits. If quotas or limits are insufficient to start a Glue job run, AWS Glue will automatically queue the job and wait for limits to free up. Once limits become available, AWS Glue will retry the job run. Glue jobs will queue for limits like max concurrent job runs per account, max concurrent Data Processing Units (DPU), and resource unavailable due to IP address exhaustion in Amazon Virtual Private Cloud (Amazon VPC).\n\nEnable job run queuing by setting the `jobRunQueuingEnabled` property to `true`.\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n jobRunQueuingEnabled: true\n});\n```\n\n### Uploading scripts from the CDK app repository to S3\n\nSimilar to other L2 constructs, the Glue L2 automates uploading / updating\nscripts to S3 via an optional fromAsset parameter pointing to a script\nin the local file structure. You provide the existing S3 bucket and\npath to which you'd like the script to be uploaded.\n\nReference the unit tests for examples of repo and S3 code target examples.\n\n### Workflow Triggers\n\nYou can use Glue workflows to create and visualize complex\nextract, transform, and load (ETL) activities involving multiple crawlers,\njobs, and triggers. Standalone triggers are an anti-pattern, so you must\ncreate triggers from within a workflow using the L2 construct.\n\nWithin a workflow object, there are functions to create different\ntypes of triggers with actions and predicates. You then add those triggers\nto jobs.\n\nStartOnCreation defaults to true for all trigger types, but you can\noverride it if you prefer for your trigger not to start on creation.\n\nReference the workflow-triggers.test.ts unit tests for examples of creating\nworkflows and triggers.\n\n#### **1. On-Demand Triggers**\n\nOn-demand triggers can start glue jobs or crawlers. This construct provides\nconvenience functions to create on-demand crawler or job triggers. The constructor\ntakes an optional description parameter, but abstracts the requirement of an\nactions list using the job or crawler objects using conditional types.\n\n#### **2. Scheduled Triggers**\n\nYou can create scheduled triggers using cron expressions. This construct\nprovides daily, weekly, and monthly convenience functions,\nas well as a custom function that allows you to create your own\ncustom timing using the [existing event Schedule class](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.Schedule.html)\nwithout having to build your own cron expressions. The L2 extracts\nthe expression that Glue requires from the Schedule object. The constructor\ntakes an optional description and a list of jobs or crawlers as actions.\n\n#### **3. Notify Event Triggers**\n\nThere are two types of notify event triggers: batching and non-batching.\nFor batching triggers, you must specify `BatchSize`. For non-batching\ntriggers, `BatchSize` defaults to 1. For both triggers, `BatchWindow`\ndefaults to 900 seconds, but you can override the window to align with\nyour workload's requirements.\n\n#### **4. Conditional Triggers**\n\nConditional triggers have a predicate and actions associated with them.\nThe trigger actions are executed when the predicateCondition is true.\n\n### Connection Properties\n\nA `Connection` allows Glue jobs, crawlers and development endpoints to access\ncertain types of data stores.\n\n* **Secrets Management**\n You must specify JDBC connection credentials in Secrets Manager and\n provide the Secrets Manager Key name as a property to the job connection.\n\n* **Networking - the CDK determines the best fit subnet for Glue connection\nconfiguration**\n The prior version of the glue-alpha-module requires the developer to\n specify the subnet of the Connection when it’s defined. Now, you can still\n specify the specific subnet you want to use, but are no longer required\n to. You are only required to provide a VPC and either a public or private\n subnet selection. Without a specific subnet provided, the L2 leverages the\n existing [EC2 Subnet Selection](https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_ec2/SubnetSelection.html)\n library to make the best choice selection for the subnet.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n // The security groups granting AWS Glue inbound access to the data source within the VPC\n securityGroups: [securityGroup],\n // The VPC subnet which contains the data source\n subnet,\n});\n```\n\nFor RDS `Connection` by JDBC, it is recommended to manage credentials using AWS Secrets Manager. To use Secret, specify `SECRET_ID` in `properties` like the following code. Note that in this case, the subnet must have a route to the AWS Secrets Manager VPC endpoint or to the AWS Secrets Manager endpoint through a NAT gateway.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const db: rds.DatabaseCluster;\nnew glue.Connection(this, \"RdsConnection\", {\n type: glue.ConnectionType.JDBC,\n securityGroups: [securityGroup],\n subnet,\n properties: {\n JDBC_CONNECTION_URL: `jdbc:mysql://${db.clusterEndpoint.socketAddress}/databasename`,\n JDBC_ENFORCE_SSL: \"false\",\n SECRET_ID: db.secret!.secretName,\n },\n});\n```\n\nIf you need to use a connection type that doesn't exist as a static member on `ConnectionType`, you can instantiate a `ConnectionType` object, e.g: `new glue.ConnectionType('NEW_TYPE')`.\n\nSee [Adding a Connection to Your Data Store](https://docs.aws.amazon.com/glue/latest/dg/populate-add-connection.html) and [Connection Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-connections.html#aws-glue-api-catalog-connections-Connection) documentation for more information on the supported data stores and their configurations.\n\n## SecurityConfiguration\n\nA `SecurityConfiguration` is a set of security properties that can be used by AWS Glue to encrypt data at rest.\n\n```ts\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n },\n jobBookmarksEncryption: {\n mode: glue.JobBookmarksEncryptionMode.CLIENT_SIDE_KMS,\n },\n s3Encryption: {\n mode: glue.S3EncryptionMode.KMS,\n },\n});\n```\n\nBy default, a shared KMS key is created for use with the encryption configurations that require one. You can also supply your own key for each encryption config, for example, for CloudWatch encryption:\n\n```ts\ndeclare const key: kms.Key;\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n kmsKey: key,\n },\n});\n```\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html) for more info for Glue encrypting data written by Crawlers, Jobs, and Development Endpoints.\n\n## Database\n\nA `Database` is a logical grouping of `Tables` in the Glue Catalog.\n\n```ts\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n description: 'my_database_description',\n});\n```\n\n## Table\n\nA Glue table describes a table of data in S3: its structure (column names and types), location of data (S3 objects with a common prefix in a S3 bucket), and format for the files (Json, Avro, Parquet, etc.):\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }, {\n name: 'col2',\n type: glue.Schema.array(glue.Schema.STRING),\n comment: 'col2 is an array of strings' // comment is optional\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nBy default, a S3 bucket will be created to store the table's data but you can manually pass the `bucket` and `s3Prefix`:\n\n```ts\ndeclare const myBucket: s3.Bucket;\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n bucket: myBucket,\n s3Prefix: 'my-table/',\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can be configured to contain user-defined properties, to describe the physical storage of table data, through the `storageParameters` property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('separatorChar', ',')\n ],\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can also be configured to contain user-defined table properties through the [`parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters) property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n parameters: {\n key1: 'val1',\n key2: 'val2',\n },\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Keys\n\nTo improve query performance, a table can specify `partitionKeys` on which data is stored and queried separately. For example, you might partition a table by `year` and `month` to optimize queries based on a time window:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Indexes\n\nAnother way to improve query performance is to specify partition indexes. If no partition indexes are\npresent on the table, AWS Glue loads all partitions of the table and filters the loaded partitions using\nthe query expression. The query takes more time to run as the number of partitions increase. With an\nindex, the query will try to fetch a subset of the partitions instead of loading all partitions of the\ntable.\n\nThe keys of a partition index must be a subset of the partition keys of the table. You can have a\nmaximum of 3 partition indexes per table. To specify a partition index, you can use the `partitionIndexes`\nproperty:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n partitionIndexes: [{\n indexName: 'my-index', // optional\n keyNames: ['year'],\n }], // supply up to 3 indexes\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nAlternatively, you can call the `addPartitionIndex()` function on a table:\n\n```ts\ndeclare const myTable: glue.Table;\nmyTable.addPartitionIndex({\n indexName: 'my-index',\n keyNames: ['year'],\n});\n```\n\n### Partition Filtering\n\nIf you have a table with a large number of partitions that grows over time, consider using AWS Glue partition indexing and filtering.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n enablePartitionFiltering: true,\n});\n```\n\n### Partition Projection\n\nPartition projection allows Athena to automatically add new partitions as new data arrives, without requiring `ALTER TABLE ADD PARTITION` statements. This improves query performance and reduces management overhead by eliminating the need to manually manage partition metadata.\n\nFor more information, see the [AWS documentation on partition projection](https://docs.aws.amazon.com/athena/latest/ug/partition-projection.html).\n\n#### INTEGER Projection\n\nFor partition keys with sequential numeric values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.INTEGER,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n interval: 1, // optional, defaults to 1\n digits: 4, // optional, pads with leading zeros\n }),\n },\n});\n```\n\n#### DATE Projection\n\nFor partition keys with date or timestamp values. Supports both fixed dates and relative dates using `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});\n```\n\nYou can also use relative dates with `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: 'NOW-3YEARS',\n max: 'NOW',\n format: 'yyyy-MM-dd',\n }),\n },\n});\n```\n\n#### ENUM Projection\n\nFor partition keys with a known set of values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'region',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2', 'eu-west-1'],\n }),\n },\n});\n```\n\n#### INJECTED Projection\n\nFor custom partition values injected at query time:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'custom',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n custom: glue.PartitionProjectionConfiguration.injected(),\n },\n});\n```\n\n#### Multiple Partition Projections\n\nYou can configure partition projection for multiple partition keys:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [\n {\n name: 'year',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'month',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'region',\n type: glue.Schema.STRING,\n },\n ],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n }),\n month: glue.PartitionProjectionConfiguration.integer({\n min: 1,\n max: 12,\n digits: 2,\n }),\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2'],\n }),\n },\n});\n```\n\n### Glue Connections\n\nGlue connections allow external data connections to third party databases and data warehouses. However, these connections can also be assigned to Glue Tables, allowing you to query external data sources using the Glue Data Catalog.\n\nWhereas `S3Table` will point to (and if needed, create) a bucket to store the tables' data, `ExternalTable` will point to an existing table in a data source. For example, to create a table in Glue that points to a table in Redshift:\n\n```ts\ndeclare const myConnection: glue.Connection;\ndeclare const myDatabase: glue.Database;\nnew glue.ExternalTable(this, 'MyTable', {\n connection: myConnection,\n externalDataLocation: 'default_db_public_example', // A table in Redshift\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## [Encryption](https://docs.aws.amazon.com/athena/latest/ug/encryption.html)\n\nYou can enable encryption on a Table's data:\n\n* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - (default) Server side encryption (`SSE-S3`) with an Amazon S3-managed key.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.S3_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [Kms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [KmsManaged](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`), like `Kms`, except with an AWS KMS Key managed by the AWS Key Management Service.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [ClientSideKms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html#client-side-encryption-kms-managed-master-key-intro) - Client-side encryption (`CSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n*Note: you cannot provide a `Bucket` when creating the `S3Table` if you wish to use server-side encryption (`KMS`, `KMS_MANAGED` or `S3_MANAGED`)*.\n\n## Types\n\nA table's schema is a collection of columns, each of which have a `name` and a `type`. Types are recursive structures, consisting of primitive and complex types:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n columns: [{\n name: 'primitive_column',\n type: glue.Schema.STRING,\n }, {\n name: 'array_column',\n type: glue.Schema.array(glue.Schema.INTEGER),\n comment: 'array<integer>',\n }, {\n name: 'map_column',\n type: glue.Schema.map(\n glue.Schema.STRING,\n glue.Schema.TIMESTAMP),\n comment: 'map<string,string>',\n }, {\n name: 'struct_column',\n type: glue.Schema.struct([{\n name: 'nested_column',\n type: glue.Schema.DATE,\n comment: 'nested comment',\n }]),\n comment: \"struct<nested_column:date COMMENT 'nested comment'>\",\n }],\n // ...\n database: myDatabase,\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## Public FAQ\n\n### What are we launching today?\n\nWe’re launching new features to an AWS CDK Glue L2 Construct to provide\nbest-practice defaults and convenience methods to create Glue Jobs, Connections,\nTriggers, Workflows, and the underlying permissions and configuration.\n\n### Why should I use this Construct?\n\nDevelopers should use this Construct to reduce the amount of boilerplate\ncode and complexity each individual has to navigate, and make it easier to\ncreate best-practice Glue resources.\n\n### What’s not in scope?\n\nGlue Crawlers and other resources that are now managed by the AWS LakeFormation\nteam are not in scope for this effort. Developers should use existing methods\nto create these resources, and the new Glue L2 construct assumes they already\nexist as inputs. While best practice is for application and infrastructure code\nto be as close as possible for teams using fully-implemented DevOps mechanisms,\nin practice these ETL scripts are likely managed by a data science team who\nknow Python or Scala and don’t necessarily own or manage their own\ninfrastructure deployments. We want to meet developers where they are, and not\nassume that all of the code resides in the same repository, Developers can\nautomate this themselves via the CDK, however, if they do own both.\n\nValidating Glue version and feature use per AWS region at synth time is also\nnot in scope. AWS’ intention is for all features to eventually be propagated to\nall Global regions, so the complexity involved in creating and updating region-\nspecific configuration to match shifting feature sets does not out-weigh the\nlikelihood that a developer will use this construct to deploy resources to a\nregion without a particular new feature to a region that doesn’t yet support\nit without researching or manually attempting to use that feature before\ndeveloping it via IaC. The developer will, of course, still get feedback from\nthe underlying Glue APIs as CloudFormation deploys the resources similar to the\ncurrent CDK L1 Glue experience.\n"
8524
8524
  },
8525
8525
  "repository": {
8526
8526
  "directory": "packages/@aws-cdk/aws-glue-alpha",
@@ -10493,7 +10493,7 @@
10493
10493
  "kind": "interface",
10494
10494
  "locationInModule": {
10495
10495
  "filename": "lib/jobs/job.ts",
10496
- "line": 89
10496
+ "line": 90
10497
10497
  },
10498
10498
  "name": "ContinuousLoggingProps",
10499
10499
  "properties": [
@@ -10506,7 +10506,7 @@
10506
10506
  "immutable": true,
10507
10507
  "locationInModule": {
10508
10508
  "filename": "lib/jobs/job.ts",
10509
- "line": 93
10509
+ "line": 94
10510
10510
  },
10511
10511
  "name": "enabled",
10512
10512
  "type": {
@@ -10524,7 +10524,7 @@
10524
10524
  "immutable": true,
10525
10525
  "locationInModule": {
10526
10526
  "filename": "lib/jobs/job.ts",
10527
- "line": 123
10527
+ "line": 124
10528
10528
  },
10529
10529
  "name": "conversionPattern",
10530
10530
  "optional": true,
@@ -10542,7 +10542,7 @@
10542
10542
  "immutable": true,
10543
10543
  "locationInModule": {
10544
10544
  "filename": "lib/jobs/job.ts",
10545
- "line": 100
10545
+ "line": 101
10546
10546
  },
10547
10547
  "name": "logGroup",
10548
10548
  "optional": true,
@@ -10560,7 +10560,7 @@
10560
10560
  "immutable": true,
10561
10561
  "locationInModule": {
10562
10562
  "filename": "lib/jobs/job.ts",
10563
- "line": 107
10563
+ "line": 108
10564
10564
  },
10565
10565
  "name": "logStreamPrefix",
10566
10566
  "optional": true,
@@ -10578,7 +10578,7 @@
10578
10578
  "immutable": true,
10579
10579
  "locationInModule": {
10580
10580
  "filename": "lib/jobs/job.ts",
10581
- "line": 114
10581
+ "line": 115
10582
10582
  },
10583
10583
  "name": "quiet",
10584
10584
  "optional": true,
@@ -10737,7 +10737,7 @@
10737
10737
  "docs": {
10738
10738
  "stability": "experimental",
10739
10739
  "summary": "Defines the input/output formats and ser/de for a single DataFormat.",
10740
- "example": "declare 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});",
10740
+ "example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});",
10741
10741
  "custom": {
10742
10742
  "exampleMetadata": "infused"
10743
10743
  }
@@ -11101,7 +11101,7 @@
11101
11101
  },
11102
11102
  "locationInModule": {
11103
11103
  "filename": "lib/data-quality-ruleset.ts",
11104
- "line": 120
11104
+ "line": 121
11105
11105
  },
11106
11106
  "parameters": [
11107
11107
  {
@@ -11130,7 +11130,7 @@
11130
11130
  "kind": "class",
11131
11131
  "locationInModule": {
11132
11132
  "filename": "lib/data-quality-ruleset.ts",
11133
- "line": 87
11133
+ "line": 88
11134
11134
  },
11135
11135
  "methods": [
11136
11136
  {
@@ -11139,7 +11139,7 @@
11139
11139
  },
11140
11140
  "locationInModule": {
11141
11141
  "filename": "lib/data-quality-ruleset.ts",
11142
- "line": 92
11142
+ "line": 93
11143
11143
  },
11144
11144
  "name": "fromRulesetArn",
11145
11145
  "parameters": [
@@ -11175,7 +11175,7 @@
11175
11175
  },
11176
11176
  "locationInModule": {
11177
11177
  "filename": "lib/data-quality-ruleset.ts",
11178
- "line": 101
11178
+ "line": 102
11179
11179
  },
11180
11180
  "name": "fromRulesetName",
11181
11181
  "parameters": [
@@ -11217,7 +11217,7 @@
11217
11217
  "immutable": true,
11218
11218
  "locationInModule": {
11219
11219
  "filename": "lib/data-quality-ruleset.ts",
11220
- "line": 90
11220
+ "line": 91
11221
11221
  },
11222
11222
  "name": "PROPERTY_INJECTION_ID",
11223
11223
  "static": true,
@@ -11233,7 +11233,7 @@
11233
11233
  "immutable": true,
11234
11234
  "locationInModule": {
11235
11235
  "filename": "lib/data-quality-ruleset.ts",
11236
- "line": 148
11236
+ "line": 149
11237
11237
  },
11238
11238
  "name": "rulesetArn",
11239
11239
  "overrides": "@aws-cdk/aws-glue-alpha.IDataQualityRuleset",
@@ -11249,7 +11249,7 @@
11249
11249
  "immutable": true,
11250
11250
  "locationInModule": {
11251
11251
  "filename": "lib/data-quality-ruleset.ts",
11252
- "line": 140
11252
+ "line": 141
11253
11253
  },
11254
11254
  "name": "rulesetName",
11255
11255
  "overrides": "@aws-cdk/aws-glue-alpha.IDataQualityRuleset",
@@ -11275,7 +11275,7 @@
11275
11275
  "kind": "interface",
11276
11276
  "locationInModule": {
11277
11277
  "filename": "lib/data-quality-ruleset.ts",
11278
- "line": 46
11278
+ "line": 47
11279
11279
  },
11280
11280
  "name": "DataQualityRulesetProps",
11281
11281
  "properties": [
@@ -11291,7 +11291,7 @@
11291
11291
  "immutable": true,
11292
11292
  "locationInModule": {
11293
11293
  "filename": "lib/data-quality-ruleset.ts",
11294
- "line": 69
11294
+ "line": 70
11295
11295
  },
11296
11296
  "name": "rulesetDqdl",
11297
11297
  "type": {
@@ -11310,7 +11310,7 @@
11310
11310
  "immutable": true,
11311
11311
  "locationInModule": {
11312
11312
  "filename": "lib/data-quality-ruleset.ts",
11313
- "line": 81
11313
+ "line": 82
11314
11314
  },
11315
11315
  "name": "targetTable",
11316
11316
  "type": {
@@ -11329,7 +11329,7 @@
11329
11329
  "immutable": true,
11330
11330
  "locationInModule": {
11331
11331
  "filename": "lib/data-quality-ruleset.ts",
11332
- "line": 57
11332
+ "line": 58
11333
11333
  },
11334
11334
  "name": "clientToken",
11335
11335
  "optional": true,
@@ -11349,7 +11349,7 @@
11349
11349
  "immutable": true,
11350
11350
  "locationInModule": {
11351
11351
  "filename": "lib/data-quality-ruleset.ts",
11352
- "line": 63
11352
+ "line": 64
11353
11353
  },
11354
11354
  "name": "description",
11355
11355
  "optional": true,
@@ -11367,7 +11367,7 @@
11367
11367
  "immutable": true,
11368
11368
  "locationInModule": {
11369
11369
  "filename": "lib/data-quality-ruleset.ts",
11370
- "line": 51
11370
+ "line": 52
11371
11371
  },
11372
11372
  "name": "rulesetName",
11373
11373
  "optional": true,
@@ -11385,7 +11385,7 @@
11385
11385
  "immutable": true,
11386
11386
  "locationInModule": {
11387
11387
  "filename": "lib/data-quality-ruleset.ts",
11388
- "line": 75
11388
+ "line": 76
11389
11389
  },
11390
11390
  "name": "tags",
11391
11391
  "optional": true,
@@ -11418,7 +11418,7 @@
11418
11418
  },
11419
11419
  "locationInModule": {
11420
11420
  "filename": "lib/data-quality-ruleset.ts",
11421
- "line": 23
11421
+ "line": 24
11422
11422
  },
11423
11423
  "parameters": [
11424
11424
  {
@@ -11438,7 +11438,7 @@
11438
11438
  "kind": "class",
11439
11439
  "locationInModule": {
11440
11440
  "filename": "lib/data-quality-ruleset.ts",
11441
- "line": 12
11441
+ "line": 13
11442
11442
  },
11443
11443
  "name": "DataQualityTargetTable",
11444
11444
  "properties": [
@@ -11450,7 +11450,7 @@
11450
11450
  "immutable": true,
11451
11451
  "locationInModule": {
11452
11452
  "filename": "lib/data-quality-ruleset.ts",
11453
- "line": 16
11453
+ "line": 17
11454
11454
  },
11455
11455
  "name": "databaseName",
11456
11456
  "type": {
@@ -11465,7 +11465,7 @@
11465
11465
  "immutable": true,
11466
11466
  "locationInModule": {
11467
11467
  "filename": "lib/data-quality-ruleset.ts",
11468
- "line": 21
11468
+ "line": 22
11469
11469
  },
11470
11470
  "name": "tableName",
11471
11471
  "type": {
@@ -11493,7 +11493,7 @@
11493
11493
  },
11494
11494
  "locationInModule": {
11495
11495
  "filename": "lib/database.ts",
11496
- "line": 96
11496
+ "line": 97
11497
11497
  },
11498
11498
  "parameters": [
11499
11499
  {
@@ -11523,7 +11523,7 @@
11523
11523
  "kind": "class",
11524
11524
  "locationInModule": {
11525
11525
  "filename": "lib/database.ts",
11526
- "line": 61
11526
+ "line": 62
11527
11527
  },
11528
11528
  "methods": [
11529
11529
  {
@@ -11532,7 +11532,7 @@
11532
11532
  },
11533
11533
  "locationInModule": {
11534
11534
  "filename": "lib/database.ts",
11535
- "line": 66
11535
+ "line": 67
11536
11536
  },
11537
11537
  "name": "fromDatabaseArn",
11538
11538
  "parameters": [
@@ -11574,7 +11574,7 @@
11574
11574
  "immutable": true,
11575
11575
  "locationInModule": {
11576
11576
  "filename": "lib/database.ts",
11577
- "line": 64
11577
+ "line": 65
11578
11578
  },
11579
11579
  "name": "PROPERTY_INJECTION_ID",
11580
11580
  "static": true,
@@ -11590,7 +11590,7 @@
11590
11590
  "immutable": true,
11591
11591
  "locationInModule": {
11592
11592
  "filename": "lib/database.ts",
11593
- "line": 82
11593
+ "line": 83
11594
11594
  },
11595
11595
  "name": "catalogArn",
11596
11596
  "overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
@@ -11606,7 +11606,7 @@
11606
11606
  "immutable": true,
11607
11607
  "locationInModule": {
11608
11608
  "filename": "lib/database.ts",
11609
- "line": 87
11609
+ "line": 88
11610
11610
  },
11611
11611
  "name": "catalogId",
11612
11612
  "overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
@@ -11622,7 +11622,7 @@
11622
11622
  "immutable": true,
11623
11623
  "locationInModule": {
11624
11624
  "filename": "lib/database.ts",
11625
- "line": 142
11625
+ "line": 143
11626
11626
  },
11627
11627
  "name": "databaseArn",
11628
11628
  "overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
@@ -11638,7 +11638,7 @@
11638
11638
  "immutable": true,
11639
11639
  "locationInModule": {
11640
11640
  "filename": "lib/database.ts",
11641
- "line": 137
11641
+ "line": 138
11642
11642
  },
11643
11643
  "name": "databaseName",
11644
11644
  "overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
@@ -11653,7 +11653,7 @@
11653
11653
  },
11654
11654
  "locationInModule": {
11655
11655
  "filename": "lib/database.ts",
11656
- "line": 92
11656
+ "line": 93
11657
11657
  },
11658
11658
  "name": "locationUri",
11659
11659
  "optional": true,
@@ -11678,7 +11678,7 @@
11678
11678
  "kind": "interface",
11679
11679
  "locationInModule": {
11680
11680
  "filename": "lib/database.ts",
11681
- "line": 34
11681
+ "line": 35
11682
11682
  },
11683
11683
  "name": "DatabaseProps",
11684
11684
  "properties": [
@@ -11692,7 +11692,7 @@
11692
11692
  "immutable": true,
11693
11693
  "locationInModule": {
11694
11694
  "filename": "lib/database.ts",
11695
- "line": 40
11695
+ "line": 41
11696
11696
  },
11697
11697
  "name": "databaseName",
11698
11698
  "optional": true,
@@ -11710,7 +11710,7 @@
11710
11710
  "immutable": true,
11711
11711
  "locationInModule": {
11712
11712
  "filename": "lib/database.ts",
11713
- "line": 55
11713
+ "line": 56
11714
11714
  },
11715
11715
  "name": "description",
11716
11716
  "optional": true,
@@ -11729,7 +11729,7 @@
11729
11729
  "immutable": true,
11730
11730
  "locationInModule": {
11731
11731
  "filename": "lib/database.ts",
11732
- "line": 48
11732
+ "line": 49
11733
11733
  },
11734
11734
  "name": "locationUri",
11735
11735
  "optional": true,
@@ -11740,6 +11740,234 @@
11740
11740
  ],
11741
11741
  "symbolId": "lib/database:DatabaseProps"
11742
11742
  },
11743
+ "@aws-cdk/aws-glue-alpha.DateIntervalUnit": {
11744
+ "assembly": "@aws-cdk/aws-glue-alpha",
11745
+ "docs": {
11746
+ "see": "https://docs.aws.amazon.com/athena/latest/ug/partition-projection-supported-types.html#partition-projection-date-type",
11747
+ "stability": "experimental",
11748
+ "summary": "Date interval unit for partition projection.",
11749
+ "example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});",
11750
+ "custom": {
11751
+ "exampleMetadata": "infused"
11752
+ }
11753
+ },
11754
+ "fqn": "@aws-cdk/aws-glue-alpha.DateIntervalUnit",
11755
+ "kind": "enum",
11756
+ "locationInModule": {
11757
+ "filename": "lib/partition-projection.ts",
11758
+ "line": 37
11759
+ },
11760
+ "members": [
11761
+ {
11762
+ "docs": {
11763
+ "stability": "experimental",
11764
+ "summary": "Year interval."
11765
+ },
11766
+ "name": "YEARS"
11767
+ },
11768
+ {
11769
+ "docs": {
11770
+ "stability": "experimental",
11771
+ "summary": "Month interval."
11772
+ },
11773
+ "name": "MONTHS"
11774
+ },
11775
+ {
11776
+ "docs": {
11777
+ "stability": "experimental",
11778
+ "summary": "Week interval."
11779
+ },
11780
+ "name": "WEEKS"
11781
+ },
11782
+ {
11783
+ "docs": {
11784
+ "stability": "experimental",
11785
+ "summary": "Day interval (default)."
11786
+ },
11787
+ "name": "DAYS"
11788
+ },
11789
+ {
11790
+ "docs": {
11791
+ "stability": "experimental",
11792
+ "summary": "Hour interval."
11793
+ },
11794
+ "name": "HOURS"
11795
+ },
11796
+ {
11797
+ "docs": {
11798
+ "stability": "experimental",
11799
+ "summary": "Minute interval."
11800
+ },
11801
+ "name": "MINUTES"
11802
+ },
11803
+ {
11804
+ "docs": {
11805
+ "stability": "experimental",
11806
+ "summary": "Second interval."
11807
+ },
11808
+ "name": "SECONDS"
11809
+ }
11810
+ ],
11811
+ "name": "DateIntervalUnit",
11812
+ "symbolId": "lib/partition-projection:DateIntervalUnit"
11813
+ },
11814
+ "@aws-cdk/aws-glue-alpha.DatePartitionProjectionConfigurationProps": {
11815
+ "assembly": "@aws-cdk/aws-glue-alpha",
11816
+ "datatype": true,
11817
+ "docs": {
11818
+ "stability": "experimental",
11819
+ "summary": "Properties for DATE partition projection configuration.",
11820
+ "example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});",
11821
+ "custom": {
11822
+ "exampleMetadata": "infused"
11823
+ }
11824
+ },
11825
+ "fqn": "@aws-cdk/aws-glue-alpha.DatePartitionProjectionConfigurationProps",
11826
+ "kind": "interface",
11827
+ "locationInModule": {
11828
+ "filename": "lib/partition-projection.ts",
11829
+ "line": 108
11830
+ },
11831
+ "name": "DatePartitionProjectionConfigurationProps",
11832
+ "properties": [
11833
+ {
11834
+ "abstract": true,
11835
+ "docs": {
11836
+ "remarks": "Uses Java SimpleDateFormat patterns.",
11837
+ "see": "https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html",
11838
+ "stability": "experimental",
11839
+ "summary": "Date format for partition values."
11840
+ },
11841
+ "immutable": true,
11842
+ "locationInModule": {
11843
+ "filename": "lib/partition-projection.ts",
11844
+ "line": 140
11845
+ },
11846
+ "name": "format",
11847
+ "type": {
11848
+ "primitive": "string"
11849
+ }
11850
+ },
11851
+ {
11852
+ "abstract": true,
11853
+ "docs": {
11854
+ "remarks": "Can be either:\n- Fixed date in the format specified by `format` property\n- Relative date using NOW syntax\n\nSame format constraints as `min`.",
11855
+ "stability": "experimental",
11856
+ "summary": "End date for the partition range (inclusive)."
11857
+ },
11858
+ "immutable": true,
11859
+ "locationInModule": {
11860
+ "filename": "lib/partition-projection.ts",
11861
+ "line": 131
11862
+ },
11863
+ "name": "max",
11864
+ "type": {
11865
+ "primitive": "string"
11866
+ }
11867
+ },
11868
+ {
11869
+ "abstract": true,
11870
+ "docs": {
11871
+ "remarks": "Can be either:\n- Fixed date in the format specified by `format` property\n (e.g., '2020-01-01' for format 'yyyy-MM-dd')\n- Relative date using NOW syntax\n (e.g., 'NOW', 'NOW-3YEARS', 'NOW+1MONTH')",
11872
+ "see": "https://docs.aws.amazon.com/athena/latest/ug/partition-projection-supported-types.html#partition-projection-date-type",
11873
+ "stability": "experimental",
11874
+ "summary": "Start date for the partition range (inclusive)."
11875
+ },
11876
+ "immutable": true,
11877
+ "locationInModule": {
11878
+ "filename": "lib/partition-projection.ts",
11879
+ "line": 120
11880
+ },
11881
+ "name": "min",
11882
+ "type": {
11883
+ "primitive": "string"
11884
+ }
11885
+ },
11886
+ {
11887
+ "abstract": true,
11888
+ "docs": {
11889
+ "default": "- 1 for single-day or single-month precision, otherwise required",
11890
+ "remarks": "When the provided dates are at single-day or single-month precision,\nthe interval is optional and defaults to 1 day or 1 month, respectively.\nOtherwise, interval is required.",
11891
+ "stability": "experimental",
11892
+ "summary": "Interval between partition values."
11893
+ },
11894
+ "immutable": true,
11895
+ "locationInModule": {
11896
+ "filename": "lib/partition-projection.ts",
11897
+ "line": 151
11898
+ },
11899
+ "name": "interval",
11900
+ "optional": true,
11901
+ "type": {
11902
+ "primitive": "number"
11903
+ }
11904
+ },
11905
+ {
11906
+ "abstract": true,
11907
+ "docs": {
11908
+ "default": "- DAYS for single-day precision, MONTHS for single-month precision, otherwise required",
11909
+ "remarks": "When the provided dates are at single-day or single-month precision,\nthe intervalUnit is optional and defaults to 1 day or 1 month, respectively.\nOtherwise, the intervalUnit is required.",
11910
+ "stability": "experimental",
11911
+ "summary": "Unit for the interval."
11912
+ },
11913
+ "immutable": true,
11914
+ "locationInModule": {
11915
+ "filename": "lib/partition-projection.ts",
11916
+ "line": 162
11917
+ },
11918
+ "name": "intervalUnit",
11919
+ "optional": true,
11920
+ "type": {
11921
+ "fqn": "@aws-cdk/aws-glue-alpha.DateIntervalUnit"
11922
+ }
11923
+ }
11924
+ ],
11925
+ "symbolId": "lib/partition-projection:DatePartitionProjectionConfigurationProps"
11926
+ },
11927
+ "@aws-cdk/aws-glue-alpha.EnumPartitionProjectionConfigurationProps": {
11928
+ "assembly": "@aws-cdk/aws-glue-alpha",
11929
+ "datatype": true,
11930
+ "docs": {
11931
+ "stability": "experimental",
11932
+ "summary": "Properties for ENUM partition projection configuration.",
11933
+ "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: '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});",
11934
+ "custom": {
11935
+ "exampleMetadata": "infused"
11936
+ }
11937
+ },
11938
+ "fqn": "@aws-cdk/aws-glue-alpha.EnumPartitionProjectionConfigurationProps",
11939
+ "kind": "interface",
11940
+ "locationInModule": {
11941
+ "filename": "lib/partition-projection.ts",
11942
+ "line": 168
11943
+ },
11944
+ "name": "EnumPartitionProjectionConfigurationProps",
11945
+ "properties": [
11946
+ {
11947
+ "abstract": true,
11948
+ "docs": {
11949
+ "example": "['us-east-1', 'us-west-2', 'eu-west-1']",
11950
+ "stability": "experimental",
11951
+ "summary": "Explicit list of partition values."
11952
+ },
11953
+ "immutable": true,
11954
+ "locationInModule": {
11955
+ "filename": "lib/partition-projection.ts",
11956
+ "line": 174
11957
+ },
11958
+ "name": "values",
11959
+ "type": {
11960
+ "collection": {
11961
+ "elementtype": {
11962
+ "primitive": "string"
11963
+ },
11964
+ "kind": "array"
11965
+ }
11966
+ }
11967
+ }
11968
+ ],
11969
+ "symbolId": "lib/partition-projection:EnumPartitionProjectionConfigurationProps"
11970
+ },
11743
11971
  "@aws-cdk/aws-glue-alpha.EventBatchingCondition": {
11744
11972
  "assembly": "@aws-cdk/aws-glue-alpha",
11745
11973
  "datatype": true,
@@ -11847,7 +12075,7 @@
11847
12075
  },
11848
12076
  "locationInModule": {
11849
12077
  "filename": "lib/external-table.ts",
11850
- "line": 53
12078
+ "line": 54
11851
12079
  },
11852
12080
  "parameters": [
11853
12081
  {
@@ -11873,7 +12101,7 @@
11873
12101
  "kind": "class",
11874
12102
  "locationInModule": {
11875
12103
  "filename": "lib/external-table.ts",
11876
- "line": 34
12104
+ "line": 35
11877
12105
  },
11878
12106
  "methods": [
11879
12107
  {
@@ -11883,7 +12111,7 @@
11883
12111
  },
11884
12112
  "locationInModule": {
11885
12113
  "filename": "lib/external-table.ts",
11886
- "line": 136
12114
+ "line": 137
11887
12115
  },
11888
12116
  "name": "grantRead",
11889
12117
  "overrides": "@aws-cdk/aws-glue-alpha.TableBase",
@@ -11911,7 +12139,7 @@
11911
12139
  },
11912
12140
  "locationInModule": {
11913
12141
  "filename": "lib/external-table.ts",
11914
- "line": 160
12142
+ "line": 161
11915
12143
  },
11916
12144
  "name": "grantReadWrite",
11917
12145
  "overrides": "@aws-cdk/aws-glue-alpha.TableBase",
@@ -11939,7 +12167,7 @@
11939
12167
  },
11940
12168
  "locationInModule": {
11941
12169
  "filename": "lib/external-table.ts",
11942
- "line": 148
12170
+ "line": 149
11943
12171
  },
11944
12172
  "name": "grantWrite",
11945
12173
  "overrides": "@aws-cdk/aws-glue-alpha.TableBase",
@@ -11972,7 +12200,7 @@
11972
12200
  "immutable": true,
11973
12201
  "locationInModule": {
11974
12202
  "filename": "lib/external-table.ts",
11975
- "line": 37
12203
+ "line": 38
11976
12204
  },
11977
12205
  "name": "PROPERTY_INJECTION_ID",
11978
12206
  "static": true,
@@ -11988,7 +12216,7 @@
11988
12216
  "immutable": true,
11989
12217
  "locationInModule": {
11990
12218
  "filename": "lib/external-table.ts",
11991
- "line": 42
12219
+ "line": 43
11992
12220
  },
11993
12221
  "name": "connection",
11994
12222
  "type": {
@@ -12003,7 +12231,7 @@
12003
12231
  "immutable": true,
12004
12232
  "locationInModule": {
12005
12233
  "filename": "lib/external-table.ts",
12006
- "line": 121
12234
+ "line": 122
12007
12235
  },
12008
12236
  "name": "tableArn",
12009
12237
  "overrides": "@aws-cdk/aws-glue-alpha.TableBase",
@@ -12019,7 +12247,7 @@
12019
12247
  "immutable": true,
12020
12248
  "locationInModule": {
12021
12249
  "filename": "lib/external-table.ts",
12022
- "line": 113
12250
+ "line": 114
12023
12251
  },
12024
12252
  "name": "tableName",
12025
12253
  "overrides": "@aws-cdk/aws-glue-alpha.TableBase",
@@ -12034,7 +12262,7 @@
12034
12262
  "immutable": true,
12035
12263
  "locationInModule": {
12036
12264
  "filename": "lib/external-table.ts",
12037
- "line": 49
12265
+ "line": 50
12038
12266
  },
12039
12267
  "name": "tableResource",
12040
12268
  "overrides": "@aws-cdk/aws-glue-alpha.TableBase",
@@ -12051,7 +12279,7 @@
12051
12279
  "immutable": true,
12052
12280
  "locationInModule": {
12053
12281
  "filename": "lib/external-table.ts",
12054
- "line": 47
12282
+ "line": 48
12055
12283
  },
12056
12284
  "name": "partitionIndexes",
12057
12285
  "optional": true,
@@ -12085,7 +12313,7 @@
12085
12313
  "kind": "interface",
12086
12314
  "locationInModule": {
12087
12315
  "filename": "lib/external-table.ts",
12088
- "line": 12
12316
+ "line": 13
12089
12317
  },
12090
12318
  "name": "ExternalTableProps",
12091
12319
  "properties": [
@@ -12099,7 +12327,7 @@
12099
12327
  "immutable": true,
12100
12328
  "locationInModule": {
12101
12329
  "filename": "lib/external-table.ts",
12102
- "line": 18
12330
+ "line": 19
12103
12331
  },
12104
12332
  "name": "connection",
12105
12333
  "type": {
@@ -12117,7 +12345,7 @@
12117
12345
  "immutable": true,
12118
12346
  "locationInModule": {
12119
12347
  "filename": "lib/external-table.ts",
12120
- "line": 27
12348
+ "line": 28
12121
12349
  },
12122
12350
  "name": "externalDataLocation",
12123
12351
  "type": {
@@ -12268,7 +12496,7 @@
12268
12496
  "kind": "interface",
12269
12497
  "locationInModule": {
12270
12498
  "filename": "lib/data-quality-ruleset.ts",
12271
- "line": 29
12499
+ "line": 30
12272
12500
  },
12273
12501
  "name": "IDataQualityRuleset",
12274
12502
  "properties": [
@@ -12284,7 +12512,7 @@
12284
12512
  "immutable": true,
12285
12513
  "locationInModule": {
12286
12514
  "filename": "lib/data-quality-ruleset.ts",
12287
- "line": 34
12515
+ "line": 35
12288
12516
  },
12289
12517
  "name": "rulesetArn",
12290
12518
  "type": {
@@ -12303,7 +12531,7 @@
12303
12531
  "immutable": true,
12304
12532
  "locationInModule": {
12305
12533
  "filename": "lib/data-quality-ruleset.ts",
12306
- "line": 40
12534
+ "line": 41
12307
12535
  },
12308
12536
  "name": "rulesetName",
12309
12537
  "type": {
@@ -12325,7 +12553,7 @@
12325
12553
  "kind": "interface",
12326
12554
  "locationInModule": {
12327
12555
  "filename": "lib/database.ts",
12328
- "line": 8
12556
+ "line": 9
12329
12557
  },
12330
12558
  "name": "IDatabase",
12331
12559
  "properties": [
@@ -12338,7 +12566,7 @@
12338
12566
  "immutable": true,
12339
12567
  "locationInModule": {
12340
12568
  "filename": "lib/database.ts",
12341
- "line": 12
12569
+ "line": 13
12342
12570
  },
12343
12571
  "name": "catalogArn",
12344
12572
  "type": {
@@ -12354,7 +12582,7 @@
12354
12582
  "immutable": true,
12355
12583
  "locationInModule": {
12356
12584
  "filename": "lib/database.ts",
12357
- "line": 17
12585
+ "line": 18
12358
12586
  },
12359
12587
  "name": "catalogId",
12360
12588
  "type": {
@@ -12373,7 +12601,7 @@
12373
12601
  "immutable": true,
12374
12602
  "locationInModule": {
12375
12603
  "filename": "lib/database.ts",
12376
- "line": 24
12604
+ "line": 25
12377
12605
  },
12378
12606
  "name": "databaseArn",
12379
12607
  "type": {
@@ -12392,7 +12620,7 @@
12392
12620
  "immutable": true,
12393
12621
  "locationInModule": {
12394
12622
  "filename": "lib/database.ts",
12395
- "line": 31
12623
+ "line": 32
12396
12624
  },
12397
12625
  "name": "databaseName",
12398
12626
  "type": {
@@ -12416,7 +12644,7 @@
12416
12644
  "kind": "interface",
12417
12645
  "locationInModule": {
12418
12646
  "filename": "lib/jobs/job.ts",
12419
- "line": 15
12647
+ "line": 16
12420
12648
  },
12421
12649
  "methods": [
12422
12650
  {
@@ -12428,7 +12656,7 @@
12428
12656
  },
12429
12657
  "locationInModule": {
12430
12658
  "filename": "lib/jobs/job.ts",
12431
- "line": 65
12659
+ "line": 66
12432
12660
  },
12433
12661
  "name": "metric",
12434
12662
  "parameters": [
@@ -12475,7 +12703,7 @@
12475
12703
  },
12476
12704
  "locationInModule": {
12477
12705
  "filename": "lib/jobs/job.ts",
12478
- "line": 75
12706
+ "line": 76
12479
12707
  },
12480
12708
  "name": "metricFailure",
12481
12709
  "parameters": [
@@ -12501,7 +12729,7 @@
12501
12729
  },
12502
12730
  "locationInModule": {
12503
12731
  "filename": "lib/jobs/job.ts",
12504
- "line": 70
12732
+ "line": 71
12505
12733
  },
12506
12734
  "name": "metricSuccess",
12507
12735
  "parameters": [
@@ -12527,7 +12755,7 @@
12527
12755
  },
12528
12756
  "locationInModule": {
12529
12757
  "filename": "lib/jobs/job.ts",
12530
- "line": 80
12758
+ "line": 81
12531
12759
  },
12532
12760
  "name": "metricTimeout",
12533
12761
  "parameters": [
@@ -12554,7 +12782,7 @@
12554
12782
  },
12555
12783
  "locationInModule": {
12556
12784
  "filename": "lib/jobs/job.ts",
12557
- "line": 33
12785
+ "line": 34
12558
12786
  },
12559
12787
  "name": "onEvent",
12560
12788
  "parameters": [
@@ -12587,7 +12815,7 @@
12587
12815
  },
12588
12816
  "locationInModule": {
12589
12817
  "filename": "lib/jobs/job.ts",
12590
- "line": 47
12818
+ "line": 48
12591
12819
  },
12592
12820
  "name": "onFailure",
12593
12821
  "parameters": [
@@ -12620,7 +12848,7 @@
12620
12848
  },
12621
12849
  "locationInModule": {
12622
12850
  "filename": "lib/jobs/job.ts",
12623
- "line": 40
12851
+ "line": 41
12624
12852
  },
12625
12853
  "name": "onSuccess",
12626
12854
  "parameters": [
@@ -12653,7 +12881,7 @@
12653
12881
  },
12654
12882
  "locationInModule": {
12655
12883
  "filename": "lib/jobs/job.ts",
12656
- "line": 54
12884
+ "line": 55
12657
12885
  },
12658
12886
  "name": "onTimeout",
12659
12887
  "parameters": [
@@ -12692,7 +12920,7 @@
12692
12920
  "immutable": true,
12693
12921
  "locationInModule": {
12694
12922
  "filename": "lib/jobs/job.ts",
12695
- "line": 26
12923
+ "line": 27
12696
12924
  },
12697
12925
  "name": "jobArn",
12698
12926
  "type": {
@@ -12711,7 +12939,7 @@
12711
12939
  "immutable": true,
12712
12940
  "locationInModule": {
12713
12941
  "filename": "lib/jobs/job.ts",
12714
- "line": 20
12942
+ "line": 21
12715
12943
  },
12716
12944
  "name": "jobName",
12717
12945
  "type": {
@@ -12772,7 +13000,7 @@
12772
13000
  "kind": "interface",
12773
13001
  "locationInModule": {
12774
13002
  "filename": "lib/table-base.ts",
12775
- "line": 30
13003
+ "line": 32
12776
13004
  },
12777
13005
  "name": "ITable",
12778
13006
  "properties": [
@@ -12787,7 +13015,7 @@
12787
13015
  "immutable": true,
12788
13016
  "locationInModule": {
12789
13017
  "filename": "lib/table-base.ts",
12790
- "line": 34
13018
+ "line": 36
12791
13019
  },
12792
13020
  "name": "tableArn",
12793
13021
  "type": {
@@ -12805,7 +13033,7 @@
12805
13033
  "immutable": true,
12806
13034
  "locationInModule": {
12807
13035
  "filename": "lib/table-base.ts",
12808
- "line": 39
13036
+ "line": 41
12809
13037
  },
12810
13038
  "name": "tableName",
12811
13039
  "type": {
@@ -12829,7 +13057,7 @@
12829
13057
  "kind": "interface",
12830
13058
  "locationInModule": {
12831
13059
  "filename": "lib/triggers/workflow.ts",
12832
- "line": 28
13060
+ "line": 30
12833
13061
  },
12834
13062
  "methods": [
12835
13063
  {
@@ -12840,7 +13068,7 @@
12840
13068
  },
12841
13069
  "locationInModule": {
12842
13070
  "filename": "lib/triggers/workflow.ts",
12843
- "line": 59
13071
+ "line": 61
12844
13072
  },
12845
13073
  "name": "addCustomScheduledTrigger",
12846
13074
  "parameters": [
@@ -12871,7 +13099,7 @@
12871
13099
  },
12872
13100
  "locationInModule": {
12873
13101
  "filename": "lib/triggers/workflow.ts",
12874
- "line": 49
13102
+ "line": 51
12875
13103
  },
12876
13104
  "name": "addDailyScheduledTrigger",
12877
13105
  "parameters": [
@@ -12902,7 +13130,7 @@
12902
13130
  },
12903
13131
  "locationInModule": {
12904
13132
  "filename": "lib/triggers/workflow.ts",
12905
- "line": 44
13133
+ "line": 46
12906
13134
  },
12907
13135
  "name": "addOnDemandTrigger",
12908
13136
  "parameters": [
@@ -12933,7 +13161,7 @@
12933
13161
  },
12934
13162
  "locationInModule": {
12935
13163
  "filename": "lib/triggers/workflow.ts",
12936
- "line": 54
13164
+ "line": 56
12937
13165
  },
12938
13166
  "name": "addWeeklyScheduledTrigger",
12939
13167
  "parameters": [
@@ -12971,7 +13199,7 @@
12971
13199
  "immutable": true,
12972
13200
  "locationInModule": {
12973
13201
  "filename": "lib/triggers/workflow.ts",
12974
- "line": 39
13202
+ "line": 41
12975
13203
  },
12976
13204
  "name": "workflowArn",
12977
13205
  "type": {
@@ -12990,7 +13218,7 @@
12990
13218
  "immutable": true,
12991
13219
  "locationInModule": {
12992
13220
  "filename": "lib/triggers/workflow.ts",
12993
- "line": 33
13221
+ "line": 35
12994
13222
  },
12995
13223
  "name": "workflowName",
12996
13224
  "type": {
@@ -13143,6 +13371,97 @@
13143
13371
  ],
13144
13372
  "symbolId": "lib/data-format:InputFormat"
13145
13373
  },
13374
+ "@aws-cdk/aws-glue-alpha.IntegerPartitionProjectionConfigurationProps": {
13375
+ "assembly": "@aws-cdk/aws-glue-alpha",
13376
+ "datatype": true,
13377
+ "docs": {
13378
+ "stability": "experimental",
13379
+ "summary": "Properties for INTEGER partition projection configuration.",
13380
+ "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: '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});",
13381
+ "custom": {
13382
+ "exampleMetadata": "infused"
13383
+ }
13384
+ },
13385
+ "fqn": "@aws-cdk/aws-glue-alpha.IntegerPartitionProjectionConfigurationProps",
13386
+ "kind": "interface",
13387
+ "locationInModule": {
13388
+ "filename": "lib/partition-projection.ts",
13389
+ "line": 77
13390
+ },
13391
+ "name": "IntegerPartitionProjectionConfigurationProps",
13392
+ "properties": [
13393
+ {
13394
+ "abstract": true,
13395
+ "docs": {
13396
+ "stability": "experimental",
13397
+ "summary": "Maximum value for the integer partition range (inclusive)."
13398
+ },
13399
+ "immutable": true,
13400
+ "locationInModule": {
13401
+ "filename": "lib/partition-projection.ts",
13402
+ "line": 86
13403
+ },
13404
+ "name": "max",
13405
+ "type": {
13406
+ "primitive": "number"
13407
+ }
13408
+ },
13409
+ {
13410
+ "abstract": true,
13411
+ "docs": {
13412
+ "stability": "experimental",
13413
+ "summary": "Minimum value for the integer partition range (inclusive)."
13414
+ },
13415
+ "immutable": true,
13416
+ "locationInModule": {
13417
+ "filename": "lib/partition-projection.ts",
13418
+ "line": 81
13419
+ },
13420
+ "name": "min",
13421
+ "type": {
13422
+ "primitive": "number"
13423
+ }
13424
+ },
13425
+ {
13426
+ "abstract": true,
13427
+ "docs": {
13428
+ "default": "- no static number of digits and no leading zeroes",
13429
+ "remarks": "With digits: 4, partition values: 0001, 0002, ..., 0100",
13430
+ "stability": "experimental",
13431
+ "summary": "Number of digits to pad the partition value with leading zeros."
13432
+ },
13433
+ "immutable": true,
13434
+ "locationInModule": {
13435
+ "filename": "lib/partition-projection.ts",
13436
+ "line": 102
13437
+ },
13438
+ "name": "digits",
13439
+ "optional": true,
13440
+ "type": {
13441
+ "primitive": "number"
13442
+ }
13443
+ },
13444
+ {
13445
+ "abstract": true,
13446
+ "docs": {
13447
+ "default": "1",
13448
+ "stability": "experimental",
13449
+ "summary": "Interval between partition values."
13450
+ },
13451
+ "immutable": true,
13452
+ "locationInModule": {
13453
+ "filename": "lib/partition-projection.ts",
13454
+ "line": 93
13455
+ },
13456
+ "name": "interval",
13457
+ "optional": true,
13458
+ "type": {
13459
+ "primitive": "number"
13460
+ }
13461
+ }
13462
+ ],
13463
+ "symbolId": "lib/partition-projection:IntegerPartitionProjectionConfigurationProps"
13464
+ },
13146
13465
  "@aws-cdk/aws-glue-alpha.InvalidCharHandlingAction": {
13147
13466
  "assembly": "@aws-cdk/aws-glue-alpha",
13148
13467
  "docs": {
@@ -13216,7 +13535,7 @@
13216
13535
  },
13217
13536
  "locationInModule": {
13218
13537
  "filename": "core/lib/resource.ts",
13219
- "line": 119
13538
+ "line": 122
13220
13539
  },
13221
13540
  "parameters": [
13222
13541
  {
@@ -13243,7 +13562,7 @@
13243
13562
  "kind": "class",
13244
13563
  "locationInModule": {
13245
13564
  "filename": "lib/jobs/job.ts",
13246
- "line": 457
13565
+ "line": 458
13247
13566
  },
13248
13567
  "methods": [
13249
13568
  {
@@ -13253,7 +13572,7 @@
13253
13572
  },
13254
13573
  "locationInModule": {
13255
13574
  "filename": "lib/jobs/job.ts",
13256
- "line": 466
13575
+ "line": 467
13257
13576
  },
13258
13577
  "name": "fromJobAttributes",
13259
13578
  "parameters": [
@@ -13300,7 +13619,7 @@
13300
13619
  },
13301
13620
  "locationInModule": {
13302
13621
  "filename": "lib/jobs/job.ts",
13303
- "line": 486
13622
+ "line": 487
13304
13623
  },
13305
13624
  "name": "checkNoReservedArgs",
13306
13625
  "parameters": [
@@ -13336,7 +13655,7 @@
13336
13655
  },
13337
13656
  "locationInModule": {
13338
13657
  "filename": "lib/jobs/job.ts",
13339
- "line": 536
13658
+ "line": 537
13340
13659
  },
13341
13660
  "name": "codeS3ObjectUrl",
13342
13661
  "parameters": [
@@ -13362,7 +13681,7 @@
13362
13681
  },
13363
13682
  "locationInModule": {
13364
13683
  "filename": "lib/jobs/job.ts",
13365
- "line": 504
13684
+ "line": 505
13366
13685
  },
13367
13686
  "name": "setupContinuousLogging",
13368
13687
  "parameters": [
@@ -13405,7 +13724,7 @@
13405
13724
  "immutable": true,
13406
13725
  "locationInModule": {
13407
13726
  "filename": "lib/jobs/job.ts",
13408
- "line": 479
13727
+ "line": 480
13409
13728
  },
13410
13729
  "name": "role",
13411
13730
  "type": {
@@ -13431,7 +13750,7 @@
13431
13750
  "kind": "interface",
13432
13751
  "locationInModule": {
13433
13752
  "filename": "lib/jobs/job.ts",
13434
- "line": 288
13753
+ "line": 289
13435
13754
  },
13436
13755
  "name": "JobAttributes",
13437
13756
  "properties": [
@@ -13444,7 +13763,7 @@
13444
13763
  "immutable": true,
13445
13764
  "locationInModule": {
13446
13765
  "filename": "lib/jobs/job.ts",
13447
- "line": 292
13766
+ "line": 293
13448
13767
  },
13449
13768
  "name": "jobName",
13450
13769
  "type": {
@@ -13461,7 +13780,7 @@
13461
13780
  "immutable": true,
13462
13781
  "locationInModule": {
13463
13782
  "filename": "lib/jobs/job.ts",
13464
- "line": 299
13783
+ "line": 300
13465
13784
  },
13466
13785
  "name": "role",
13467
13786
  "optional": true,
@@ -13488,7 +13807,7 @@
13488
13807
  },
13489
13808
  "locationInModule": {
13490
13809
  "filename": "core/lib/resource.ts",
13491
- "line": 119
13810
+ "line": 122
13492
13811
  },
13493
13812
  "parameters": [
13494
13813
  {
@@ -13518,7 +13837,7 @@
13518
13837
  "kind": "class",
13519
13838
  "locationInModule": {
13520
13839
  "filename": "lib/jobs/job.ts",
13521
- "line": 133
13840
+ "line": 134
13522
13841
  },
13523
13842
  "methods": [
13524
13843
  {
@@ -13528,7 +13847,7 @@
13528
13847
  },
13529
13848
  "locationInModule": {
13530
13849
  "filename": "lib/jobs/job.ts",
13531
- "line": 274
13850
+ "line": 275
13532
13851
  },
13533
13852
  "name": "buildJobArn",
13534
13853
  "parameters": [
@@ -13560,7 +13879,7 @@
13560
13879
  },
13561
13880
  "locationInModule": {
13562
13881
  "filename": "lib/jobs/job.ts",
13563
- "line": 221
13882
+ "line": 222
13564
13883
  },
13565
13884
  "name": "metric",
13566
13885
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -13608,7 +13927,7 @@
13608
13927
  },
13609
13928
  "locationInModule": {
13610
13929
  "filename": "lib/jobs/job.ts",
13611
- "line": 248
13930
+ "line": 249
13612
13931
  },
13613
13932
  "name": "metricFailure",
13614
13933
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -13635,7 +13954,7 @@
13635
13954
  },
13636
13955
  "locationInModule": {
13637
13956
  "filename": "lib/jobs/job.ts",
13638
- "line": 239
13957
+ "line": 240
13639
13958
  },
13640
13959
  "name": "metricSuccess",
13641
13960
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -13662,7 +13981,7 @@
13662
13981
  },
13663
13982
  "locationInModule": {
13664
13983
  "filename": "lib/jobs/job.ts",
13665
- "line": 257
13984
+ "line": 258
13666
13985
  },
13667
13986
  "name": "metricTimeout",
13668
13987
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -13689,7 +14008,7 @@
13689
14008
  },
13690
14009
  "locationInModule": {
13691
14010
  "filename": "lib/jobs/job.ts",
13692
- "line": 149
14011
+ "line": 150
13693
14012
  },
13694
14013
  "name": "onEvent",
13695
14014
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -13728,7 +14047,7 @@
13728
14047
  },
13729
14048
  "locationInModule": {
13730
14049
  "filename": "lib/jobs/job.ts",
13731
- "line": 198
14050
+ "line": 199
13732
14051
  },
13733
14052
  "name": "onFailure",
13734
14053
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -13767,7 +14086,7 @@
13767
14086
  },
13768
14087
  "locationInModule": {
13769
14088
  "filename": "lib/jobs/job.ts",
13770
- "line": 169
14089
+ "line": 170
13771
14090
  },
13772
14091
  "name": "onStateChange",
13773
14092
  "parameters": [
@@ -13814,7 +14133,7 @@
13814
14133
  },
13815
14134
  "locationInModule": {
13816
14135
  "filename": "lib/jobs/job.ts",
13817
- "line": 188
14136
+ "line": 189
13818
14137
  },
13819
14138
  "name": "onSuccess",
13820
14139
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -13853,7 +14172,7 @@
13853
14172
  },
13854
14173
  "locationInModule": {
13855
14174
  "filename": "lib/jobs/job.ts",
13856
- "line": 208
14175
+ "line": 209
13857
14176
  },
13858
14177
  "name": "onTimeout",
13859
14178
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -13897,7 +14216,7 @@
13897
14216
  "immutable": true,
13898
14217
  "locationInModule": {
13899
14218
  "filename": "lib/jobs/job.ts",
13900
- "line": 136
14219
+ "line": 137
13901
14220
  },
13902
14221
  "name": "grantPrincipal",
13903
14222
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -13914,7 +14233,7 @@
13914
14233
  "immutable": true,
13915
14234
  "locationInModule": {
13916
14235
  "filename": "lib/jobs/job.ts",
13917
- "line": 134
14236
+ "line": 135
13918
14237
  },
13919
14238
  "name": "jobArn",
13920
14239
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -13931,7 +14250,7 @@
13931
14250
  "immutable": true,
13932
14251
  "locationInModule": {
13933
14252
  "filename": "lib/jobs/job.ts",
13934
- "line": 135
14253
+ "line": 136
13935
14254
  },
13936
14255
  "name": "jobName",
13937
14256
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -14074,7 +14393,7 @@
14074
14393
  "kind": "interface",
14075
14394
  "locationInModule": {
14076
14395
  "filename": "lib/jobs/job.ts",
14077
- "line": 306
14396
+ "line": 307
14078
14397
  },
14079
14398
  "name": "JobProps",
14080
14399
  "properties": [
@@ -14088,7 +14407,7 @@
14088
14407
  "immutable": true,
14089
14408
  "locationInModule": {
14090
14409
  "filename": "lib/jobs/job.ts",
14091
- "line": 325
14410
+ "line": 326
14092
14411
  },
14093
14412
  "name": "role",
14094
14413
  "type": {
@@ -14105,7 +14424,7 @@
14105
14424
  "immutable": true,
14106
14425
  "locationInModule": {
14107
14426
  "filename": "lib/jobs/job.ts",
14108
- "line": 313
14427
+ "line": 314
14109
14428
  },
14110
14429
  "name": "script",
14111
14430
  "type": {
@@ -14122,7 +14441,7 @@
14122
14441
  "immutable": true,
14123
14442
  "locationInModule": {
14124
14443
  "filename": "lib/jobs/job.ts",
14125
- "line": 389
14444
+ "line": 390
14126
14445
  },
14127
14446
  "name": "connections",
14128
14447
  "optional": true,
@@ -14146,7 +14465,7 @@
14146
14465
  "immutable": true,
14147
14466
  "locationInModule": {
14148
14467
  "filename": "lib/jobs/job.ts",
14149
- "line": 450
14468
+ "line": 451
14150
14469
  },
14151
14470
  "name": "continuousLogging",
14152
14471
  "optional": true,
@@ -14165,7 +14484,7 @@
14165
14484
  "immutable": true,
14166
14485
  "locationInModule": {
14167
14486
  "filename": "lib/jobs/job.ts",
14168
- "line": 380
14487
+ "line": 381
14169
14488
  },
14170
14489
  "name": "defaultArguments",
14171
14490
  "optional": true,
@@ -14188,7 +14507,7 @@
14188
14507
  "immutable": true,
14189
14508
  "locationInModule": {
14190
14509
  "filename": "lib/jobs/job.ts",
14191
- "line": 341
14510
+ "line": 342
14192
14511
  },
14193
14512
  "name": "description",
14194
14513
  "optional": true,
@@ -14207,7 +14526,7 @@
14207
14526
  "immutable": true,
14208
14527
  "locationInModule": {
14209
14528
  "filename": "lib/jobs/job.ts",
14210
- "line": 440
14529
+ "line": 441
14211
14530
  },
14212
14531
  "name": "enableProfilingMetrics",
14213
14532
  "optional": true,
@@ -14225,7 +14544,7 @@
14225
14544
  "immutable": true,
14226
14545
  "locationInModule": {
14227
14546
  "filename": "lib/jobs/job.ts",
14228
- "line": 431
14547
+ "line": 432
14229
14548
  },
14230
14549
  "name": "glueVersion",
14231
14550
  "optional": true,
@@ -14243,7 +14562,7 @@
14243
14562
  "immutable": true,
14244
14563
  "locationInModule": {
14245
14564
  "filename": "lib/jobs/job.ts",
14246
- "line": 333
14565
+ "line": 334
14247
14566
  },
14248
14567
  "name": "jobName",
14249
14568
  "optional": true,
@@ -14262,7 +14581,7 @@
14262
14581
  "immutable": true,
14263
14582
  "locationInModule": {
14264
14583
  "filename": "lib/jobs/job.ts",
14265
- "line": 369
14584
+ "line": 370
14266
14585
  },
14267
14586
  "name": "maxConcurrentRuns",
14268
14587
  "optional": true,
@@ -14280,7 +14599,7 @@
14280
14599
  "immutable": true,
14281
14600
  "locationInModule": {
14282
14601
  "filename": "lib/jobs/job.ts",
14283
- "line": 397
14602
+ "line": 398
14284
14603
  },
14285
14604
  "name": "maxRetries",
14286
14605
  "optional": true,
@@ -14298,7 +14617,7 @@
14298
14617
  "immutable": true,
14299
14618
  "locationInModule": {
14300
14619
  "filename": "lib/jobs/job.ts",
14301
- "line": 349
14620
+ "line": 350
14302
14621
  },
14303
14622
  "name": "numberOfWorkers",
14304
14623
  "optional": true,
@@ -14316,7 +14635,7 @@
14316
14635
  "immutable": true,
14317
14636
  "locationInModule": {
14318
14637
  "filename": "lib/jobs/job.ts",
14319
- "line": 415
14638
+ "line": 416
14320
14639
  },
14321
14640
  "name": "securityConfiguration",
14322
14641
  "optional": true,
@@ -14334,7 +14653,7 @@
14334
14653
  "immutable": true,
14335
14654
  "locationInModule": {
14336
14655
  "filename": "lib/jobs/job.ts",
14337
- "line": 423
14656
+ "line": 424
14338
14657
  },
14339
14658
  "name": "tags",
14340
14659
  "optional": true,
@@ -14358,7 +14677,7 @@
14358
14677
  "immutable": true,
14359
14678
  "locationInModule": {
14360
14679
  "filename": "lib/jobs/job.ts",
14361
- "line": 407
14680
+ "line": 408
14362
14681
  },
14363
14682
  "name": "timeout",
14364
14683
  "optional": true,
@@ -14377,7 +14696,7 @@
14377
14696
  "immutable": true,
14378
14697
  "locationInModule": {
14379
14698
  "filename": "lib/jobs/job.ts",
14380
- "line": 358
14699
+ "line": 359
14381
14700
  },
14382
14701
  "name": "workerType",
14383
14702
  "optional": true,
@@ -14851,7 +15170,7 @@
14851
15170
  "kind": "interface",
14852
15171
  "locationInModule": {
14853
15172
  "filename": "lib/table-base.ts",
14854
- "line": 15
15173
+ "line": 17
14855
15174
  },
14856
15175
  "name": "PartitionIndex",
14857
15176
  "properties": [
@@ -14865,7 +15184,7 @@
14865
15184
  "immutable": true,
14866
15185
  "locationInModule": {
14867
15186
  "filename": "lib/table-base.ts",
14868
- "line": 28
15187
+ "line": 30
14869
15188
  },
14870
15189
  "name": "keyNames",
14871
15190
  "type": {
@@ -14887,7 +15206,7 @@
14887
15206
  "immutable": true,
14888
15207
  "locationInModule": {
14889
15208
  "filename": "lib/table-base.ts",
14890
- "line": 21
15209
+ "line": 23
14891
15210
  },
14892
15211
  "name": "indexName",
14893
15212
  "optional": true,
@@ -14898,6 +15217,314 @@
14898
15217
  ],
14899
15218
  "symbolId": "lib/table-base:PartitionIndex"
14900
15219
  },
15220
+ "@aws-cdk/aws-glue-alpha.PartitionProjectionConfiguration": {
15221
+ "assembly": "@aws-cdk/aws-glue-alpha",
15222
+ "docs": {
15223
+ "stability": "experimental",
15224
+ "summary": "Factory class for creating partition projection configurations.",
15225
+ "example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});",
15226
+ "custom": {
15227
+ "exampleMetadata": "infused"
15228
+ }
15229
+ },
15230
+ "fqn": "@aws-cdk/aws-glue-alpha.PartitionProjectionConfiguration",
15231
+ "kind": "class",
15232
+ "locationInModule": {
15233
+ "filename": "lib/partition-projection.ts",
15234
+ "line": 229
15235
+ },
15236
+ "methods": [
15237
+ {
15238
+ "docs": {
15239
+ "stability": "experimental",
15240
+ "summary": "Create a DATE partition projection configuration."
15241
+ },
15242
+ "locationInModule": {
15243
+ "filename": "lib/partition-projection.ts",
15244
+ "line": 283
15245
+ },
15246
+ "name": "date",
15247
+ "parameters": [
15248
+ {
15249
+ "name": "props",
15250
+ "type": {
15251
+ "fqn": "@aws-cdk/aws-glue-alpha.DatePartitionProjectionConfigurationProps"
15252
+ }
15253
+ }
15254
+ ],
15255
+ "returns": {
15256
+ "type": {
15257
+ "fqn": "@aws-cdk/aws-glue-alpha.PartitionProjectionConfiguration"
15258
+ }
15259
+ },
15260
+ "static": true
15261
+ },
15262
+ {
15263
+ "docs": {
15264
+ "stability": "experimental",
15265
+ "summary": "Create an ENUM partition projection configuration."
15266
+ },
15267
+ "locationInModule": {
15268
+ "filename": "lib/partition-projection.ts",
15269
+ "line": 363
15270
+ },
15271
+ "name": "enum",
15272
+ "parameters": [
15273
+ {
15274
+ "name": "props",
15275
+ "type": {
15276
+ "fqn": "@aws-cdk/aws-glue-alpha.EnumPartitionProjectionConfigurationProps"
15277
+ }
15278
+ }
15279
+ ],
15280
+ "returns": {
15281
+ "type": {
15282
+ "fqn": "@aws-cdk/aws-glue-alpha.PartitionProjectionConfiguration"
15283
+ }
15284
+ },
15285
+ "static": true
15286
+ },
15287
+ {
15288
+ "docs": {
15289
+ "remarks": "Partition values are injected at query time through the query statement.",
15290
+ "see": "https://docs.aws.amazon.com/athena/latest/ug/partition-projection-supported-types.html#partition-projection-injected-type",
15291
+ "stability": "experimental",
15292
+ "summary": "Create an INJECTED partition projection configuration."
15293
+ },
15294
+ "locationInModule": {
15295
+ "filename": "lib/partition-projection.ts",
15296
+ "line": 400
15297
+ },
15298
+ "name": "injected",
15299
+ "returns": {
15300
+ "type": {
15301
+ "fqn": "@aws-cdk/aws-glue-alpha.PartitionProjectionConfiguration"
15302
+ }
15303
+ },
15304
+ "static": true
15305
+ },
15306
+ {
15307
+ "docs": {
15308
+ "stability": "experimental",
15309
+ "summary": "Create an INTEGER partition projection configuration."
15310
+ },
15311
+ "locationInModule": {
15312
+ "filename": "lib/partition-projection.ts",
15313
+ "line": 233
15314
+ },
15315
+ "name": "integer",
15316
+ "parameters": [
15317
+ {
15318
+ "name": "props",
15319
+ "type": {
15320
+ "fqn": "@aws-cdk/aws-glue-alpha.IntegerPartitionProjectionConfigurationProps"
15321
+ }
15322
+ }
15323
+ ],
15324
+ "returns": {
15325
+ "type": {
15326
+ "fqn": "@aws-cdk/aws-glue-alpha.PartitionProjectionConfiguration"
15327
+ }
15328
+ },
15329
+ "static": true
15330
+ }
15331
+ ],
15332
+ "name": "PartitionProjectionConfiguration",
15333
+ "properties": [
15334
+ {
15335
+ "docs": {
15336
+ "stability": "experimental",
15337
+ "summary": "The type of partition projection."
15338
+ },
15339
+ "immutable": true,
15340
+ "locationInModule": {
15341
+ "filename": "lib/partition-projection.ts",
15342
+ "line": 409
15343
+ },
15344
+ "name": "type",
15345
+ "type": {
15346
+ "fqn": "@aws-cdk/aws-glue-alpha.PartitionProjectionType"
15347
+ }
15348
+ },
15349
+ {
15350
+ "docs": {
15351
+ "remarks": "Array of [start, end] as date strings.",
15352
+ "stability": "experimental",
15353
+ "summary": "Range of partition values for DATE type."
15354
+ },
15355
+ "immutable": true,
15356
+ "locationInModule": {
15357
+ "filename": "lib/partition-projection.ts",
15358
+ "line": 423
15359
+ },
15360
+ "name": "dateRange",
15361
+ "optional": true,
15362
+ "type": {
15363
+ "collection": {
15364
+ "elementtype": {
15365
+ "primitive": "string"
15366
+ },
15367
+ "kind": "array"
15368
+ }
15369
+ }
15370
+ },
15371
+ {
15372
+ "docs": {
15373
+ "stability": "experimental",
15374
+ "summary": "Number of digits to pad INTEGER partition values."
15375
+ },
15376
+ "immutable": true,
15377
+ "locationInModule": {
15378
+ "filename": "lib/partition-projection.ts",
15379
+ "line": 433
15380
+ },
15381
+ "name": "digits",
15382
+ "optional": true,
15383
+ "type": {
15384
+ "primitive": "number"
15385
+ }
15386
+ },
15387
+ {
15388
+ "docs": {
15389
+ "stability": "experimental",
15390
+ "summary": "Date format for DATE partition values (Java SimpleDateFormat)."
15391
+ },
15392
+ "immutable": true,
15393
+ "locationInModule": {
15394
+ "filename": "lib/partition-projection.ts",
15395
+ "line": 438
15396
+ },
15397
+ "name": "format",
15398
+ "optional": true,
15399
+ "type": {
15400
+ "primitive": "string"
15401
+ }
15402
+ },
15403
+ {
15404
+ "docs": {
15405
+ "remarks": "Array of [min, max] as numbers.",
15406
+ "stability": "experimental",
15407
+ "summary": "Range of partition values for INTEGER type."
15408
+ },
15409
+ "immutable": true,
15410
+ "locationInModule": {
15411
+ "filename": "lib/partition-projection.ts",
15412
+ "line": 416
15413
+ },
15414
+ "name": "integerRange",
15415
+ "optional": true,
15416
+ "type": {
15417
+ "collection": {
15418
+ "elementtype": {
15419
+ "primitive": "number"
15420
+ },
15421
+ "kind": "array"
15422
+ }
15423
+ }
15424
+ },
15425
+ {
15426
+ "docs": {
15427
+ "stability": "experimental",
15428
+ "summary": "Interval between partition values."
15429
+ },
15430
+ "immutable": true,
15431
+ "locationInModule": {
15432
+ "filename": "lib/partition-projection.ts",
15433
+ "line": 428
15434
+ },
15435
+ "name": "interval",
15436
+ "optional": true,
15437
+ "type": {
15438
+ "primitive": "number"
15439
+ }
15440
+ },
15441
+ {
15442
+ "docs": {
15443
+ "stability": "experimental",
15444
+ "summary": "Unit for DATE partition interval."
15445
+ },
15446
+ "immutable": true,
15447
+ "locationInModule": {
15448
+ "filename": "lib/partition-projection.ts",
15449
+ "line": 443
15450
+ },
15451
+ "name": "intervalUnit",
15452
+ "optional": true,
15453
+ "type": {
15454
+ "fqn": "@aws-cdk/aws-glue-alpha.DateIntervalUnit"
15455
+ }
15456
+ },
15457
+ {
15458
+ "docs": {
15459
+ "stability": "experimental",
15460
+ "summary": "Explicit list of values for ENUM partitions."
15461
+ },
15462
+ "immutable": true,
15463
+ "locationInModule": {
15464
+ "filename": "lib/partition-projection.ts",
15465
+ "line": 448
15466
+ },
15467
+ "name": "values",
15468
+ "optional": true,
15469
+ "type": {
15470
+ "collection": {
15471
+ "elementtype": {
15472
+ "primitive": "string"
15473
+ },
15474
+ "kind": "array"
15475
+ }
15476
+ }
15477
+ }
15478
+ ],
15479
+ "symbolId": "lib/partition-projection:PartitionProjectionConfiguration"
15480
+ },
15481
+ "@aws-cdk/aws-glue-alpha.PartitionProjectionType": {
15482
+ "assembly": "@aws-cdk/aws-glue-alpha",
15483
+ "docs": {
15484
+ "remarks": "Determines how Athena projects partition values.",
15485
+ "see": "https://docs.aws.amazon.com/athena/latest/ug/partition-projection-supported-types.html",
15486
+ "stability": "experimental",
15487
+ "summary": "Partition projection type."
15488
+ },
15489
+ "fqn": "@aws-cdk/aws-glue-alpha.PartitionProjectionType",
15490
+ "kind": "enum",
15491
+ "locationInModule": {
15492
+ "filename": "lib/partition-projection.ts",
15493
+ "line": 10
15494
+ },
15495
+ "members": [
15496
+ {
15497
+ "docs": {
15498
+ "stability": "experimental",
15499
+ "summary": "Project partition values as integers within a range."
15500
+ },
15501
+ "name": "INTEGER"
15502
+ },
15503
+ {
15504
+ "docs": {
15505
+ "stability": "experimental",
15506
+ "summary": "Project partition values as dates within a range."
15507
+ },
15508
+ "name": "DATE"
15509
+ },
15510
+ {
15511
+ "docs": {
15512
+ "stability": "experimental",
15513
+ "summary": "Project partition values from an explicit list of values."
15514
+ },
15515
+ "name": "ENUM"
15516
+ },
15517
+ {
15518
+ "docs": {
15519
+ "stability": "experimental",
15520
+ "summary": "Project partition values that are injected at query time."
15521
+ },
15522
+ "name": "INJECTED"
15523
+ }
15524
+ ],
15525
+ "name": "PartitionProjectionType",
15526
+ "symbolId": "lib/partition-projection:PartitionProjectionType"
15527
+ },
14901
15528
  "@aws-cdk/aws-glue-alpha.Predicate": {
14902
15529
  "assembly": "@aws-cdk/aws-glue-alpha",
14903
15530
  "datatype": true,
@@ -15011,7 +15638,7 @@
15011
15638
  },
15012
15639
  "locationInModule": {
15013
15640
  "filename": "lib/jobs/pyspark-etl-job.ts",
15014
- "line": 81
15641
+ "line": 82
15015
15642
  },
15016
15643
  "parameters": [
15017
15644
  {
@@ -15037,7 +15664,7 @@
15037
15664
  "kind": "class",
15038
15665
  "locationInModule": {
15039
15666
  "filename": "lib/jobs/pyspark-etl-job.ts",
15040
- "line": 72
15667
+ "line": 73
15041
15668
  },
15042
15669
  "name": "PySparkEtlJob",
15043
15670
  "properties": [
@@ -15050,7 +15677,7 @@
15050
15677
  "immutable": true,
15051
15678
  "locationInModule": {
15052
15679
  "filename": "lib/jobs/pyspark-etl-job.ts",
15053
- "line": 75
15680
+ "line": 76
15054
15681
  },
15055
15682
  "name": "PROPERTY_INJECTION_ID",
15056
15683
  "static": true,
@@ -15066,7 +15693,7 @@
15066
15693
  "immutable": true,
15067
15694
  "locationInModule": {
15068
15695
  "filename": "lib/jobs/pyspark-etl-job.ts",
15069
- "line": 115
15696
+ "line": 116
15070
15697
  },
15071
15698
  "name": "jobArn",
15072
15699
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -15082,7 +15709,7 @@
15082
15709
  "immutable": true,
15083
15710
  "locationInModule": {
15084
15711
  "filename": "lib/jobs/pyspark-etl-job.ts",
15085
- "line": 120
15712
+ "line": 121
15086
15713
  },
15087
15714
  "name": "jobName",
15088
15715
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -15111,7 +15738,7 @@
15111
15738
  "kind": "interface",
15112
15739
  "locationInModule": {
15113
15740
  "filename": "lib/jobs/pyspark-etl-job.ts",
15114
- "line": 13
15741
+ "line": 14
15115
15742
  },
15116
15743
  "name": "PySparkEtlJobProps",
15117
15744
  "properties": [
@@ -15126,7 +15753,7 @@
15126
15753
  "immutable": true,
15127
15754
  "locationInModule": {
15128
15755
  "filename": "lib/jobs/pyspark-etl-job.ts",
15129
- "line": 29
15756
+ "line": 30
15130
15757
  },
15131
15758
  "name": "extraFiles",
15132
15759
  "optional": true,
@@ -15149,7 +15776,7 @@
15149
15776
  "immutable": true,
15150
15777
  "locationInModule": {
15151
15778
  "filename": "lib/jobs/pyspark-etl-job.ts",
15152
- "line": 36
15779
+ "line": 37
15153
15780
  },
15154
15781
  "name": "extraJars",
15155
15782
  "optional": true,
@@ -15173,7 +15800,7 @@
15173
15800
  "immutable": true,
15174
15801
  "locationInModule": {
15175
15802
  "filename": "lib/jobs/pyspark-etl-job.ts",
15176
- "line": 45
15803
+ "line": 46
15177
15804
  },
15178
15805
  "name": "extraJarsFirst",
15179
15806
  "optional": true,
@@ -15191,7 +15818,7 @@
15191
15818
  "immutable": true,
15192
15819
  "locationInModule": {
15193
15820
  "filename": "lib/jobs/pyspark-etl-job.ts",
15194
- "line": 20
15821
+ "line": 21
15195
15822
  },
15196
15823
  "name": "extraPythonFiles",
15197
15824
  "optional": true,
@@ -15215,7 +15842,7 @@
15215
15842
  "immutable": true,
15216
15843
  "locationInModule": {
15217
15844
  "filename": "lib/jobs/pyspark-etl-job.ts",
15218
- "line": 57
15845
+ "line": 58
15219
15846
  },
15220
15847
  "name": "jobRunQueuingEnabled",
15221
15848
  "optional": true,
@@ -15246,7 +15873,7 @@
15246
15873
  },
15247
15874
  "locationInModule": {
15248
15875
  "filename": "lib/jobs/pyspark-flex-etl-job.ts",
15249
- "line": 77
15876
+ "line": 78
15250
15877
  },
15251
15878
  "parameters": [
15252
15879
  {
@@ -15272,7 +15899,7 @@
15272
15899
  "kind": "class",
15273
15900
  "locationInModule": {
15274
15901
  "filename": "lib/jobs/pyspark-flex-etl-job.ts",
15275
- "line": 68
15902
+ "line": 69
15276
15903
  },
15277
15904
  "name": "PySparkFlexEtlJob",
15278
15905
  "properties": [
@@ -15285,7 +15912,7 @@
15285
15912
  "immutable": true,
15286
15913
  "locationInModule": {
15287
15914
  "filename": "lib/jobs/pyspark-flex-etl-job.ts",
15288
- "line": 71
15915
+ "line": 72
15289
15916
  },
15290
15917
  "name": "PROPERTY_INJECTION_ID",
15291
15918
  "static": true,
@@ -15301,7 +15928,7 @@
15301
15928
  "immutable": true,
15302
15929
  "locationInModule": {
15303
15930
  "filename": "lib/jobs/pyspark-flex-etl-job.ts",
15304
- "line": 114
15931
+ "line": 115
15305
15932
  },
15306
15933
  "name": "jobArn",
15307
15934
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -15317,7 +15944,7 @@
15317
15944
  "immutable": true,
15318
15945
  "locationInModule": {
15319
15946
  "filename": "lib/jobs/pyspark-flex-etl-job.ts",
15320
- "line": 119
15947
+ "line": 120
15321
15948
  },
15322
15949
  "name": "jobName",
15323
15950
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -15346,7 +15973,7 @@
15346
15973
  "kind": "interface",
15347
15974
  "locationInModule": {
15348
15975
  "filename": "lib/jobs/pyspark-flex-etl-job.ts",
15349
- "line": 14
15976
+ "line": 15
15350
15977
  },
15351
15978
  "name": "PySparkFlexEtlJobProps",
15352
15979
  "properties": [
@@ -15361,7 +15988,7 @@
15361
15988
  "immutable": true,
15362
15989
  "locationInModule": {
15363
15990
  "filename": "lib/jobs/pyspark-flex-etl-job.ts",
15364
- "line": 37
15991
+ "line": 38
15365
15992
  },
15366
15993
  "name": "extraFiles",
15367
15994
  "optional": true,
@@ -15384,7 +16011,7 @@
15384
16011
  "immutable": true,
15385
16012
  "locationInModule": {
15386
16013
  "filename": "lib/jobs/pyspark-flex-etl-job.ts",
15387
- "line": 44
16014
+ "line": 45
15388
16015
  },
15389
16016
  "name": "extraJars",
15390
16017
  "optional": true,
@@ -15408,7 +16035,7 @@
15408
16035
  "immutable": true,
15409
16036
  "locationInModule": {
15410
16037
  "filename": "lib/jobs/pyspark-flex-etl-job.ts",
15411
- "line": 53
16038
+ "line": 54
15412
16039
  },
15413
16040
  "name": "extraJarsFirst",
15414
16041
  "optional": true,
@@ -15426,7 +16053,7 @@
15426
16053
  "immutable": true,
15427
16054
  "locationInModule": {
15428
16055
  "filename": "lib/jobs/pyspark-flex-etl-job.ts",
15429
- "line": 28
16056
+ "line": 29
15430
16057
  },
15431
16058
  "name": "extraPythonFiles",
15432
16059
  "optional": true,
@@ -15450,7 +16077,7 @@
15450
16077
  "immutable": true,
15451
16078
  "locationInModule": {
15452
16079
  "filename": "lib/jobs/pyspark-flex-etl-job.ts",
15453
- "line": 20
16080
+ "line": 21
15454
16081
  },
15455
16082
  "name": "notifyDelayAfter",
15456
16083
  "optional": true,
@@ -15481,7 +16108,7 @@
15481
16108
  },
15482
16109
  "locationInModule": {
15483
16110
  "filename": "lib/jobs/pyspark-streaming-job.ts",
15484
- "line": 81
16111
+ "line": 82
15485
16112
  },
15486
16113
  "parameters": [
15487
16114
  {
@@ -15507,7 +16134,7 @@
15507
16134
  "kind": "class",
15508
16135
  "locationInModule": {
15509
16136
  "filename": "lib/jobs/pyspark-streaming-job.ts",
15510
- "line": 72
16137
+ "line": 73
15511
16138
  },
15512
16139
  "name": "PySparkStreamingJob",
15513
16140
  "properties": [
@@ -15520,7 +16147,7 @@
15520
16147
  "immutable": true,
15521
16148
  "locationInModule": {
15522
16149
  "filename": "lib/jobs/pyspark-streaming-job.ts",
15523
- "line": 75
16150
+ "line": 76
15524
16151
  },
15525
16152
  "name": "PROPERTY_INJECTION_ID",
15526
16153
  "static": true,
@@ -15536,7 +16163,7 @@
15536
16163
  "immutable": true,
15537
16164
  "locationInModule": {
15538
16165
  "filename": "lib/jobs/pyspark-streaming-job.ts",
15539
- "line": 115
16166
+ "line": 116
15540
16167
  },
15541
16168
  "name": "jobArn",
15542
16169
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -15552,7 +16179,7 @@
15552
16179
  "immutable": true,
15553
16180
  "locationInModule": {
15554
16181
  "filename": "lib/jobs/pyspark-streaming-job.ts",
15555
- "line": 120
16182
+ "line": 121
15556
16183
  },
15557
16184
  "name": "jobName",
15558
16185
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -15581,7 +16208,7 @@
15581
16208
  "kind": "interface",
15582
16209
  "locationInModule": {
15583
16210
  "filename": "lib/jobs/pyspark-streaming-job.ts",
15584
- "line": 13
16211
+ "line": 14
15585
16212
  },
15586
16213
  "name": "PySparkStreamingJobProps",
15587
16214
  "properties": [
@@ -15596,7 +16223,7 @@
15596
16223
  "immutable": true,
15597
16224
  "locationInModule": {
15598
16225
  "filename": "lib/jobs/pyspark-streaming-job.ts",
15599
- "line": 29
16226
+ "line": 30
15600
16227
  },
15601
16228
  "name": "extraFiles",
15602
16229
  "optional": true,
@@ -15619,7 +16246,7 @@
15619
16246
  "immutable": true,
15620
16247
  "locationInModule": {
15621
16248
  "filename": "lib/jobs/pyspark-streaming-job.ts",
15622
- "line": 36
16249
+ "line": 37
15623
16250
  },
15624
16251
  "name": "extraJars",
15625
16252
  "optional": true,
@@ -15643,7 +16270,7 @@
15643
16270
  "immutable": true,
15644
16271
  "locationInModule": {
15645
16272
  "filename": "lib/jobs/pyspark-streaming-job.ts",
15646
- "line": 45
16273
+ "line": 46
15647
16274
  },
15648
16275
  "name": "extraJarsFirst",
15649
16276
  "optional": true,
@@ -15661,7 +16288,7 @@
15661
16288
  "immutable": true,
15662
16289
  "locationInModule": {
15663
16290
  "filename": "lib/jobs/pyspark-streaming-job.ts",
15664
- "line": 20
16291
+ "line": 21
15665
16292
  },
15666
16293
  "name": "extraPythonFiles",
15667
16294
  "optional": true,
@@ -15685,7 +16312,7 @@
15685
16312
  "immutable": true,
15686
16313
  "locationInModule": {
15687
16314
  "filename": "lib/jobs/pyspark-streaming-job.ts",
15688
- "line": 57
16315
+ "line": 58
15689
16316
  },
15690
16317
  "name": "jobRunQueuingEnabled",
15691
16318
  "optional": true,
@@ -15716,7 +16343,7 @@
15716
16343
  },
15717
16344
  "locationInModule": {
15718
16345
  "filename": "lib/jobs/python-shell-job.ts",
15719
- "line": 59
16346
+ "line": 60
15720
16347
  },
15721
16348
  "parameters": [
15722
16349
  {
@@ -15742,7 +16369,7 @@
15742
16369
  "kind": "class",
15743
16370
  "locationInModule": {
15744
16371
  "filename": "lib/jobs/python-shell-job.ts",
15745
- "line": 48
16372
+ "line": 49
15746
16373
  },
15747
16374
  "name": "PythonShellJob",
15748
16375
  "properties": [
@@ -15755,7 +16382,7 @@
15755
16382
  "immutable": true,
15756
16383
  "locationInModule": {
15757
16384
  "filename": "lib/jobs/python-shell-job.ts",
15758
- "line": 51
16385
+ "line": 52
15759
16386
  },
15760
16387
  "name": "PROPERTY_INJECTION_ID",
15761
16388
  "static": true,
@@ -15771,7 +16398,7 @@
15771
16398
  "immutable": true,
15772
16399
  "locationInModule": {
15773
16400
  "filename": "lib/jobs/python-shell-job.ts",
15774
- "line": 53
16401
+ "line": 54
15775
16402
  },
15776
16403
  "name": "grantPrincipal",
15777
16404
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -15787,7 +16414,7 @@
15787
16414
  "immutable": true,
15788
16415
  "locationInModule": {
15789
16416
  "filename": "lib/jobs/python-shell-job.ts",
15790
- "line": 107
16417
+ "line": 108
15791
16418
  },
15792
16419
  "name": "jobArn",
15793
16420
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -15803,7 +16430,7 @@
15803
16430
  "immutable": true,
15804
16431
  "locationInModule": {
15805
16432
  "filename": "lib/jobs/python-shell-job.ts",
15806
- "line": 112
16433
+ "line": 113
15807
16434
  },
15808
16435
  "name": "jobName",
15809
16436
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -15819,7 +16446,7 @@
15819
16446
  "immutable": true,
15820
16447
  "locationInModule": {
15821
16448
  "filename": "lib/jobs/python-shell-job.ts",
15822
- "line": 52
16449
+ "line": 53
15823
16450
  },
15824
16451
  "name": "role",
15825
16452
  "overrides": "@aws-cdk/aws-glue-alpha.Job",
@@ -15848,7 +16475,7 @@
15848
16475
  "kind": "interface",
15849
16476
  "locationInModule": {
15850
16477
  "filename": "lib/jobs/python-shell-job.ts",
15851
- "line": 13
16478
+ "line": 14
15852
16479
  },
15853
16480
  "name": "PythonShellJobProps",
15854
16481
  "properties": [
@@ -15863,7 +16490,7 @@
15863
16490
  "immutable": true,
15864
16491
  "locationInModule": {
15865
16492
  "filename": "lib/jobs/python-shell-job.ts",
15866
- "line": 38
16493
+ "line": 39
15867
16494
  },
15868
16495
  "name": "jobRunQueuingEnabled",
15869
16496
  "optional": true,
@@ -15881,7 +16508,7 @@
15881
16508
  "immutable": true,
15882
16509
  "locationInModule": {
15883
16510
  "filename": "lib/jobs/python-shell-job.ts",
15884
- "line": 26
16511
+ "line": 27
15885
16512
  },
15886
16513
  "name": "maxCapacity",
15887
16514
  "optional": true,
@@ -15899,7 +16526,7 @@
15899
16526
  "immutable": true,
15900
16527
  "locationInModule": {
15901
16528
  "filename": "lib/jobs/python-shell-job.ts",
15902
- "line": 19
16529
+ "line": 20
15903
16530
  },
15904
16531
  "name": "pythonVersion",
15905
16532
  "optional": true,
@@ -15972,7 +16599,7 @@
15972
16599
  },
15973
16600
  "locationInModule": {
15974
16601
  "filename": "lib/jobs/ray-job.ts",
15975
- "line": 72
16602
+ "line": 73
15976
16603
  },
15977
16604
  "parameters": [
15978
16605
  {
@@ -15998,7 +16625,7 @@
15998
16625
  "kind": "class",
15999
16626
  "locationInModule": {
16000
16627
  "filename": "lib/jobs/ray-job.ts",
16001
- "line": 61
16628
+ "line": 62
16002
16629
  },
16003
16630
  "name": "RayJob",
16004
16631
  "properties": [
@@ -16011,7 +16638,7 @@
16011
16638
  "immutable": true,
16012
16639
  "locationInModule": {
16013
16640
  "filename": "lib/jobs/ray-job.ts",
16014
- "line": 64
16641
+ "line": 65
16015
16642
  },
16016
16643
  "name": "PROPERTY_INJECTION_ID",
16017
16644
  "static": true,
@@ -16027,7 +16654,7 @@
16027
16654
  "immutable": true,
16028
16655
  "locationInModule": {
16029
16656
  "filename": "lib/jobs/ray-job.ts",
16030
- "line": 66
16657
+ "line": 67
16031
16658
  },
16032
16659
  "name": "grantPrincipal",
16033
16660
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -16043,7 +16670,7 @@
16043
16670
  "immutable": true,
16044
16671
  "locationInModule": {
16045
16672
  "filename": "lib/jobs/ray-job.ts",
16046
- "line": 125
16673
+ "line": 126
16047
16674
  },
16048
16675
  "name": "jobArn",
16049
16676
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -16059,7 +16686,7 @@
16059
16686
  "immutable": true,
16060
16687
  "locationInModule": {
16061
16688
  "filename": "lib/jobs/ray-job.ts",
16062
- "line": 130
16689
+ "line": 131
16063
16690
  },
16064
16691
  "name": "jobName",
16065
16692
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -16075,7 +16702,7 @@
16075
16702
  "immutable": true,
16076
16703
  "locationInModule": {
16077
16704
  "filename": "lib/jobs/ray-job.ts",
16078
- "line": 65
16705
+ "line": 66
16079
16706
  },
16080
16707
  "name": "role",
16081
16708
  "overrides": "@aws-cdk/aws-glue-alpha.Job",
@@ -16104,7 +16731,7 @@
16104
16731
  "kind": "interface",
16105
16732
  "locationInModule": {
16106
16733
  "filename": "lib/jobs/ray-job.ts",
16107
- "line": 14
16734
+ "line": 15
16108
16735
  },
16109
16736
  "name": "RayJobProps",
16110
16737
  "properties": [
@@ -16119,7 +16746,7 @@
16119
16746
  "immutable": true,
16120
16747
  "locationInModule": {
16121
16748
  "filename": "lib/jobs/ray-job.ts",
16122
- "line": 41
16749
+ "line": 42
16123
16750
  },
16124
16751
  "name": "enableMetrics",
16125
16752
  "optional": true,
@@ -16138,7 +16765,7 @@
16138
16765
  "immutable": true,
16139
16766
  "locationInModule": {
16140
16767
  "filename": "lib/jobs/ray-job.ts",
16141
- "line": 50
16768
+ "line": 51
16142
16769
  },
16143
16770
  "name": "enableObservabilityMetrics",
16144
16771
  "optional": true,
@@ -16157,7 +16784,7 @@
16157
16784
  "immutable": true,
16158
16785
  "locationInModule": {
16159
16786
  "filename": "lib/jobs/ray-job.ts",
16160
- "line": 32
16787
+ "line": 33
16161
16788
  },
16162
16789
  "name": "jobRunQueuingEnabled",
16163
16790
  "optional": true,
@@ -16175,7 +16802,7 @@
16175
16802
  "immutable": true,
16176
16803
  "locationInModule": {
16177
16804
  "filename": "lib/jobs/ray-job.ts",
16178
- "line": 20
16805
+ "line": 21
16179
16806
  },
16180
16807
  "name": "runtime",
16181
16808
  "optional": true,
@@ -16394,7 +17021,7 @@
16394
17021
  },
16395
17022
  "stability": "experimental",
16396
17023
  "summary": "A Glue table that targets a S3 dataset.",
16397
- "example": "declare 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});"
17024
+ "example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});"
16398
17025
  },
16399
17026
  "fqn": "@aws-cdk/aws-glue-alpha.S3Table",
16400
17027
  "initializer": {
@@ -16403,7 +17030,7 @@
16403
17030
  },
16404
17031
  "locationInModule": {
16405
17032
  "filename": "lib/s3-table.ts",
16406
- "line": 121
17033
+ "line": 122
16407
17034
  },
16408
17035
  "parameters": [
16409
17036
  {
@@ -16429,7 +17056,7 @@
16429
17056
  "kind": "class",
16430
17057
  "locationInModule": {
16431
17058
  "filename": "lib/s3-table.ts",
16432
- "line": 87
17059
+ "line": 88
16433
17060
  },
16434
17061
  "methods": [
16435
17062
  {
@@ -16438,7 +17065,7 @@
16438
17065
  },
16439
17066
  "locationInModule": {
16440
17067
  "filename": "lib/s3-table.ts",
16441
- "line": 244
17068
+ "line": 245
16442
17069
  },
16443
17070
  "name": "generateS3PrefixForGrant",
16444
17071
  "protected": true,
@@ -16456,7 +17083,7 @@
16456
17083
  },
16457
17084
  "locationInModule": {
16458
17085
  "filename": "lib/s3-table.ts",
16459
- "line": 208
17086
+ "line": 209
16460
17087
  },
16461
17088
  "name": "grantRead",
16462
17089
  "overrides": "@aws-cdk/aws-glue-alpha.TableBase",
@@ -16485,7 +17112,7 @@
16485
17112
  },
16486
17113
  "locationInModule": {
16487
17114
  "filename": "lib/s3-table.ts",
16488
- "line": 236
17115
+ "line": 237
16489
17116
  },
16490
17117
  "name": "grantReadWrite",
16491
17118
  "overrides": "@aws-cdk/aws-glue-alpha.TableBase",
@@ -16514,7 +17141,7 @@
16514
17141
  },
16515
17142
  "locationInModule": {
16516
17143
  "filename": "lib/s3-table.ts",
16517
- "line": 222
17144
+ "line": 223
16518
17145
  },
16519
17146
  "name": "grantWrite",
16520
17147
  "overrides": "@aws-cdk/aws-glue-alpha.TableBase",
@@ -16547,7 +17174,7 @@
16547
17174
  "immutable": true,
16548
17175
  "locationInModule": {
16549
17176
  "filename": "lib/s3-table.ts",
16550
- "line": 90
17177
+ "line": 91
16551
17178
  },
16552
17179
  "name": "PROPERTY_INJECTION_ID",
16553
17180
  "static": true,
@@ -16563,7 +17190,7 @@
16563
17190
  "immutable": true,
16564
17191
  "locationInModule": {
16565
17192
  "filename": "lib/s3-table.ts",
16566
- "line": 97
17193
+ "line": 98
16567
17194
  },
16568
17195
  "name": "bucket",
16569
17196
  "type": {
@@ -16578,7 +17205,7 @@
16578
17205
  "immutable": true,
16579
17206
  "locationInModule": {
16580
17207
  "filename": "lib/s3-table.ts",
16581
- "line": 107
17208
+ "line": 108
16582
17209
  },
16583
17210
  "name": "encryption",
16584
17211
  "type": {
@@ -16593,7 +17220,7 @@
16593
17220
  "immutable": true,
16594
17221
  "locationInModule": {
16595
17222
  "filename": "lib/s3-table.ts",
16596
- "line": 102
17223
+ "line": 103
16597
17224
  },
16598
17225
  "name": "s3Prefix",
16599
17226
  "type": {
@@ -16608,7 +17235,7 @@
16608
17235
  "immutable": true,
16609
17236
  "locationInModule": {
16610
17237
  "filename": "lib/s3-table.ts",
16611
- "line": 193
17238
+ "line": 194
16612
17239
  },
16613
17240
  "name": "tableArn",
16614
17241
  "overrides": "@aws-cdk/aws-glue-alpha.TableBase",
@@ -16624,7 +17251,7 @@
16624
17251
  "immutable": true,
16625
17252
  "locationInModule": {
16626
17253
  "filename": "lib/s3-table.ts",
16627
- "line": 185
17254
+ "line": 186
16628
17255
  },
16629
17256
  "name": "tableName",
16630
17257
  "overrides": "@aws-cdk/aws-glue-alpha.TableBase",
@@ -16639,7 +17266,7 @@
16639
17266
  "immutable": true,
16640
17267
  "locationInModule": {
16641
17268
  "filename": "lib/s3-table.ts",
16642
- "line": 119
17269
+ "line": 120
16643
17270
  },
16644
17271
  "name": "tableResource",
16645
17272
  "overrides": "@aws-cdk/aws-glue-alpha.TableBase",
@@ -16657,7 +17284,7 @@
16657
17284
  "immutable": true,
16658
17285
  "locationInModule": {
16659
17286
  "filename": "lib/s3-table.ts",
16660
- "line": 112
17287
+ "line": 113
16661
17288
  },
16662
17289
  "name": "encryptionKey",
16663
17290
  "optional": true,
@@ -16673,7 +17300,7 @@
16673
17300
  "immutable": true,
16674
17301
  "locationInModule": {
16675
17302
  "filename": "lib/s3-table.ts",
16676
- "line": 117
17303
+ "line": 118
16677
17304
  },
16678
17305
  "name": "partitionIndexes",
16679
17306
  "optional": true,
@@ -16695,7 +17322,7 @@
16695
17322
  "datatype": true,
16696
17323
  "docs": {
16697
17324
  "stability": "experimental",
16698
- "example": "declare 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});",
17325
+ "example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});",
16699
17326
  "custom": {
16700
17327
  "exampleMetadata": "infused"
16701
17328
  }
@@ -16707,7 +17334,7 @@
16707
17334
  "kind": "interface",
16708
17335
  "locationInModule": {
16709
17336
  "filename": "lib/s3-table.ts",
16710
- "line": 46
17337
+ "line": 47
16711
17338
  },
16712
17339
  "name": "S3TableProps",
16713
17340
  "properties": [
@@ -16721,7 +17348,7 @@
16721
17348
  "immutable": true,
16722
17349
  "locationInModule": {
16723
17350
  "filename": "lib/s3-table.ts",
16724
- "line": 52
17351
+ "line": 53
16725
17352
  },
16726
17353
  "name": "bucket",
16727
17354
  "optional": true,
@@ -16740,7 +17367,7 @@
16740
17367
  "immutable": true,
16741
17368
  "locationInModule": {
16742
17369
  "filename": "lib/s3-table.ts",
16743
- "line": 71
17370
+ "line": 72
16744
17371
  },
16745
17372
  "name": "encryption",
16746
17373
  "optional": true,
@@ -16759,7 +17386,7 @@
16759
17386
  "immutable": true,
16760
17387
  "locationInModule": {
16761
17388
  "filename": "lib/s3-table.ts",
16762
- "line": 80
17389
+ "line": 81
16763
17390
  },
16764
17391
  "name": "encryptionKey",
16765
17392
  "optional": true,
@@ -16777,7 +17404,7 @@
16777
17404
  "immutable": true,
16778
17405
  "locationInModule": {
16779
17406
  "filename": "lib/s3-table.ts",
16780
- "line": 59
17407
+ "line": 60
16781
17408
  },
16782
17409
  "name": "s3Prefix",
16783
17410
  "optional": true,
@@ -16808,7 +17435,7 @@
16808
17435
  },
16809
17436
  "locationInModule": {
16810
17437
  "filename": "lib/jobs/scala-spark-etl-job.ts",
16811
- "line": 81
17438
+ "line": 82
16812
17439
  },
16813
17440
  "parameters": [
16814
17441
  {
@@ -16834,7 +17461,7 @@
16834
17461
  "kind": "class",
16835
17462
  "locationInModule": {
16836
17463
  "filename": "lib/jobs/scala-spark-etl-job.ts",
16837
- "line": 72
17464
+ "line": 73
16838
17465
  },
16839
17466
  "name": "ScalaSparkEtlJob",
16840
17467
  "properties": [
@@ -16847,7 +17474,7 @@
16847
17474
  "immutable": true,
16848
17475
  "locationInModule": {
16849
17476
  "filename": "lib/jobs/scala-spark-etl-job.ts",
16850
- "line": 75
17477
+ "line": 76
16851
17478
  },
16852
17479
  "name": "PROPERTY_INJECTION_ID",
16853
17480
  "static": true,
@@ -16863,7 +17490,7 @@
16863
17490
  "immutable": true,
16864
17491
  "locationInModule": {
16865
17492
  "filename": "lib/jobs/scala-spark-etl-job.ts",
16866
- "line": 118
17493
+ "line": 119
16867
17494
  },
16868
17495
  "name": "jobArn",
16869
17496
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -16879,7 +17506,7 @@
16879
17506
  "immutable": true,
16880
17507
  "locationInModule": {
16881
17508
  "filename": "lib/jobs/scala-spark-etl-job.ts",
16882
- "line": 123
17509
+ "line": 124
16883
17510
  },
16884
17511
  "name": "jobName",
16885
17512
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -16908,7 +17535,7 @@
16908
17535
  "kind": "interface",
16909
17536
  "locationInModule": {
16910
17537
  "filename": "lib/jobs/scala-spark-etl-job.ts",
16911
- "line": 14
17538
+ "line": 15
16912
17539
  },
16913
17540
  "name": "ScalaSparkEtlJobProps",
16914
17541
  "properties": [
@@ -16921,7 +17548,7 @@
16921
17548
  "immutable": true,
16922
17549
  "locationInModule": {
16923
17550
  "filename": "lib/jobs/scala-spark-etl-job.ts",
16924
- "line": 20
17551
+ "line": 21
16925
17552
  },
16926
17553
  "name": "className",
16927
17554
  "type": {
@@ -16939,7 +17566,7 @@
16939
17566
  "immutable": true,
16940
17567
  "locationInModule": {
16941
17568
  "filename": "lib/jobs/scala-spark-etl-job.ts",
16942
- "line": 29
17569
+ "line": 30
16943
17570
  },
16944
17571
  "name": "extraFiles",
16945
17572
  "optional": true,
@@ -16962,7 +17589,7 @@
16962
17589
  "immutable": true,
16963
17590
  "locationInModule": {
16964
17591
  "filename": "lib/jobs/scala-spark-etl-job.ts",
16965
- "line": 36
17592
+ "line": 37
16966
17593
  },
16967
17594
  "name": "extraJars",
16968
17595
  "optional": true,
@@ -16986,7 +17613,7 @@
16986
17613
  "immutable": true,
16987
17614
  "locationInModule": {
16988
17615
  "filename": "lib/jobs/scala-spark-etl-job.ts",
16989
- "line": 45
17616
+ "line": 46
16990
17617
  },
16991
17618
  "name": "extraJarsFirst",
16992
17619
  "optional": true,
@@ -17005,7 +17632,7 @@
17005
17632
  "immutable": true,
17006
17633
  "locationInModule": {
17007
17634
  "filename": "lib/jobs/scala-spark-etl-job.ts",
17008
- "line": 57
17635
+ "line": 58
17009
17636
  },
17010
17637
  "name": "jobRunQueuingEnabled",
17011
17638
  "optional": true,
@@ -17036,7 +17663,7 @@
17036
17663
  },
17037
17664
  "locationInModule": {
17038
17665
  "filename": "lib/jobs/scala-spark-flex-etl-job.ts",
17039
- "line": 86
17666
+ "line": 87
17040
17667
  },
17041
17668
  "parameters": [
17042
17669
  {
@@ -17062,7 +17689,7 @@
17062
17689
  "kind": "class",
17063
17690
  "locationInModule": {
17064
17691
  "filename": "lib/jobs/scala-spark-flex-etl-job.ts",
17065
- "line": 77
17692
+ "line": 78
17066
17693
  },
17067
17694
  "name": "ScalaSparkFlexEtlJob",
17068
17695
  "properties": [
@@ -17075,7 +17702,7 @@
17075
17702
  "immutable": true,
17076
17703
  "locationInModule": {
17077
17704
  "filename": "lib/jobs/scala-spark-flex-etl-job.ts",
17078
- "line": 80
17705
+ "line": 81
17079
17706
  },
17080
17707
  "name": "PROPERTY_INJECTION_ID",
17081
17708
  "static": true,
@@ -17091,7 +17718,7 @@
17091
17718
  "immutable": true,
17092
17719
  "locationInModule": {
17093
17720
  "filename": "lib/jobs/scala-spark-flex-etl-job.ts",
17094
- "line": 121
17721
+ "line": 122
17095
17722
  },
17096
17723
  "name": "jobArn",
17097
17724
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -17107,7 +17734,7 @@
17107
17734
  "immutable": true,
17108
17735
  "locationInModule": {
17109
17736
  "filename": "lib/jobs/scala-spark-flex-etl-job.ts",
17110
- "line": 126
17737
+ "line": 127
17111
17738
  },
17112
17739
  "name": "jobName",
17113
17740
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -17137,7 +17764,7 @@
17137
17764
  "kind": "interface",
17138
17765
  "locationInModule": {
17139
17766
  "filename": "lib/jobs/scala-spark-flex-etl-job.ts",
17140
- "line": 24
17767
+ "line": 25
17141
17768
  },
17142
17769
  "name": "ScalaSparkFlexEtlJobProps",
17143
17770
  "properties": [
@@ -17151,7 +17778,7 @@
17151
17778
  "immutable": true,
17152
17779
  "locationInModule": {
17153
17780
  "filename": "lib/jobs/scala-spark-flex-etl-job.ts",
17154
- "line": 37
17781
+ "line": 38
17155
17782
  },
17156
17783
  "name": "className",
17157
17784
  "type": {
@@ -17169,7 +17796,7 @@
17169
17796
  "immutable": true,
17170
17797
  "locationInModule": {
17171
17798
  "filename": "lib/jobs/scala-spark-flex-etl-job.ts",
17172
- "line": 46
17799
+ "line": 47
17173
17800
  },
17174
17801
  "name": "extraFiles",
17175
17802
  "optional": true,
@@ -17192,7 +17819,7 @@
17192
17819
  "immutable": true,
17193
17820
  "locationInModule": {
17194
17821
  "filename": "lib/jobs/scala-spark-flex-etl-job.ts",
17195
- "line": 53
17822
+ "line": 54
17196
17823
  },
17197
17824
  "name": "extraJars",
17198
17825
  "optional": true,
@@ -17216,7 +17843,7 @@
17216
17843
  "immutable": true,
17217
17844
  "locationInModule": {
17218
17845
  "filename": "lib/jobs/scala-spark-flex-etl-job.ts",
17219
- "line": 62
17846
+ "line": 63
17220
17847
  },
17221
17848
  "name": "extraJarsFirst",
17222
17849
  "optional": true,
@@ -17235,7 +17862,7 @@
17235
17862
  "immutable": true,
17236
17863
  "locationInModule": {
17237
17864
  "filename": "lib/jobs/scala-spark-flex-etl-job.ts",
17238
- "line": 30
17865
+ "line": 31
17239
17866
  },
17240
17867
  "name": "notifyDelayAfter",
17241
17868
  "optional": true,
@@ -17266,7 +17893,7 @@
17266
17893
  },
17267
17894
  "locationInModule": {
17268
17895
  "filename": "lib/jobs/scala-spark-streaming-job.ts",
17269
- "line": 81
17896
+ "line": 82
17270
17897
  },
17271
17898
  "parameters": [
17272
17899
  {
@@ -17292,7 +17919,7 @@
17292
17919
  "kind": "class",
17293
17920
  "locationInModule": {
17294
17921
  "filename": "lib/jobs/scala-spark-streaming-job.ts",
17295
- "line": 72
17922
+ "line": 73
17296
17923
  },
17297
17924
  "name": "ScalaSparkStreamingJob",
17298
17925
  "properties": [
@@ -17305,7 +17932,7 @@
17305
17932
  "immutable": true,
17306
17933
  "locationInModule": {
17307
17934
  "filename": "lib/jobs/scala-spark-streaming-job.ts",
17308
- "line": 75
17935
+ "line": 76
17309
17936
  },
17310
17937
  "name": "PROPERTY_INJECTION_ID",
17311
17938
  "static": true,
@@ -17321,7 +17948,7 @@
17321
17948
  "immutable": true,
17322
17949
  "locationInModule": {
17323
17950
  "filename": "lib/jobs/scala-spark-streaming-job.ts",
17324
- "line": 118
17951
+ "line": 119
17325
17952
  },
17326
17953
  "name": "jobArn",
17327
17954
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -17337,7 +17964,7 @@
17337
17964
  "immutable": true,
17338
17965
  "locationInModule": {
17339
17966
  "filename": "lib/jobs/scala-spark-streaming-job.ts",
17340
- "line": 123
17967
+ "line": 124
17341
17968
  },
17342
17969
  "name": "jobName",
17343
17970
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -17366,7 +17993,7 @@
17366
17993
  "kind": "interface",
17367
17994
  "locationInModule": {
17368
17995
  "filename": "lib/jobs/scala-spark-streaming-job.ts",
17369
- "line": 14
17996
+ "line": 15
17370
17997
  },
17371
17998
  "name": "ScalaSparkStreamingJobProps",
17372
17999
  "properties": [
@@ -17379,7 +18006,7 @@
17379
18006
  "immutable": true,
17380
18007
  "locationInModule": {
17381
18008
  "filename": "lib/jobs/scala-spark-streaming-job.ts",
17382
- "line": 20
18009
+ "line": 21
17383
18010
  },
17384
18011
  "name": "className",
17385
18012
  "type": {
@@ -17397,7 +18024,7 @@
17397
18024
  "immutable": true,
17398
18025
  "locationInModule": {
17399
18026
  "filename": "lib/jobs/scala-spark-streaming-job.ts",
17400
- "line": 29
18027
+ "line": 30
17401
18028
  },
17402
18029
  "name": "extraFiles",
17403
18030
  "optional": true,
@@ -17420,7 +18047,7 @@
17420
18047
  "immutable": true,
17421
18048
  "locationInModule": {
17422
18049
  "filename": "lib/jobs/scala-spark-streaming-job.ts",
17423
- "line": 36
18050
+ "line": 37
17424
18051
  },
17425
18052
  "name": "extraJars",
17426
18053
  "optional": true,
@@ -17444,7 +18071,7 @@
17444
18071
  "immutable": true,
17445
18072
  "locationInModule": {
17446
18073
  "filename": "lib/jobs/scala-spark-streaming-job.ts",
17447
- "line": 45
18074
+ "line": 46
17448
18075
  },
17449
18076
  "name": "extraJarsFirst",
17450
18077
  "optional": true,
@@ -17463,7 +18090,7 @@
17463
18090
  "immutable": true,
17464
18091
  "locationInModule": {
17465
18092
  "filename": "lib/jobs/scala-spark-streaming-job.ts",
17466
- "line": 57
18093
+ "line": 58
17467
18094
  },
17468
18095
  "name": "jobRunQueuingEnabled",
17469
18096
  "optional": true,
@@ -17479,7 +18106,7 @@
17479
18106
  "docs": {
17480
18107
  "see": "https://docs.aws.amazon.com/athena/latest/ug/data-types.html",
17481
18108
  "stability": "experimental",
17482
- "example": "declare 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});",
18109
+ "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});",
17483
18110
  "custom": {
17484
18111
  "exampleMetadata": "infused"
17485
18112
  }
@@ -18395,7 +19022,7 @@
18395
19022
  "kind": "interface",
18396
19023
  "locationInModule": {
18397
19024
  "filename": "lib/jobs/spark-job.ts",
18398
- "line": 13
19025
+ "line": 14
18399
19026
  },
18400
19027
  "name": "SparkExtraCodeProps",
18401
19028
  "properties": [
@@ -18410,7 +19037,7 @@
18410
19037
  "immutable": true,
18411
19038
  "locationInModule": {
18412
19039
  "filename": "lib/jobs/spark-job.ts",
18413
- "line": 29
19040
+ "line": 30
18414
19041
  },
18415
19042
  "name": "extraFiles",
18416
19043
  "optional": true,
@@ -18433,7 +19060,7 @@
18433
19060
  "immutable": true,
18434
19061
  "locationInModule": {
18435
19062
  "filename": "lib/jobs/spark-job.ts",
18436
- "line": 36
19063
+ "line": 37
18437
19064
  },
18438
19065
  "name": "extraJars",
18439
19066
  "optional": true,
@@ -18457,7 +19084,7 @@
18457
19084
  "immutable": true,
18458
19085
  "locationInModule": {
18459
19086
  "filename": "lib/jobs/spark-job.ts",
18460
- "line": 45
19087
+ "line": 46
18461
19088
  },
18462
19089
  "name": "extraJarsFirst",
18463
19090
  "optional": true,
@@ -18475,7 +19102,7 @@
18475
19102
  "immutable": true,
18476
19103
  "locationInModule": {
18477
19104
  "filename": "lib/jobs/spark-job.ts",
18478
- "line": 20
19105
+ "line": 21
18479
19106
  },
18480
19107
  "name": "extraPythonFiles",
18481
19108
  "optional": true,
@@ -18510,7 +19137,7 @@
18510
19137
  },
18511
19138
  "locationInModule": {
18512
19139
  "filename": "lib/jobs/spark-job.ts",
18513
- "line": 139
19140
+ "line": 140
18514
19141
  },
18515
19142
  "parameters": [
18516
19143
  {
@@ -18536,7 +19163,7 @@
18536
19163
  "kind": "class",
18537
19164
  "locationInModule": {
18538
19165
  "filename": "lib/jobs/spark-job.ts",
18539
- "line": 127
19166
+ "line": 128
18540
19167
  },
18541
19168
  "methods": [
18542
19169
  {
@@ -18545,7 +19172,7 @@
18545
19172
  },
18546
19173
  "locationInModule": {
18547
19174
  "filename": "lib/jobs/spark-job.ts",
18548
- "line": 152
19175
+ "line": 153
18549
19176
  },
18550
19177
  "name": "nonExecutableCommonArguments",
18551
19178
  "parameters": [
@@ -18575,7 +19202,7 @@
18575
19202
  },
18576
19203
  "locationInModule": {
18577
19204
  "filename": "lib/jobs/spark-job.ts",
18578
- "line": 178
19205
+ "line": 179
18579
19206
  },
18580
19207
  "name": "setupExtraCodeArguments",
18581
19208
  "parameters": [
@@ -18610,7 +19237,7 @@
18610
19237
  "immutable": true,
18611
19238
  "locationInModule": {
18612
19239
  "filename": "lib/jobs/spark-job.ts",
18613
- "line": 129
19240
+ "line": 130
18614
19241
  },
18615
19242
  "name": "grantPrincipal",
18616
19243
  "overrides": "@aws-cdk/aws-glue-alpha.JobBase",
@@ -18626,7 +19253,7 @@
18626
19253
  "immutable": true,
18627
19254
  "locationInModule": {
18628
19255
  "filename": "lib/jobs/spark-job.ts",
18629
- "line": 128
19256
+ "line": 129
18630
19257
  },
18631
19258
  "name": "role",
18632
19259
  "overrides": "@aws-cdk/aws-glue-alpha.Job",
@@ -18643,7 +19270,7 @@
18643
19270
  "immutable": true,
18644
19271
  "locationInModule": {
18645
19272
  "filename": "lib/jobs/spark-job.ts",
18646
- "line": 137
19273
+ "line": 138
18647
19274
  },
18648
19275
  "name": "sparkUILoggingLocation",
18649
19276
  "optional": true,
@@ -18672,7 +19299,7 @@
18672
19299
  "kind": "interface",
18673
19300
  "locationInModule": {
18674
19301
  "filename": "lib/jobs/spark-job.ts",
18675
- "line": 94
19302
+ "line": 95
18676
19303
  },
18677
19304
  "name": "SparkJobProps",
18678
19305
  "properties": [
@@ -18687,7 +19314,7 @@
18687
19314
  "immutable": true,
18688
19315
  "locationInModule": {
18689
19316
  "filename": "lib/jobs/spark-job.ts",
18690
- "line": 112
19317
+ "line": 113
18691
19318
  },
18692
19319
  "name": "enableMetrics",
18693
19320
  "optional": true,
@@ -18706,7 +19333,7 @@
18706
19333
  "immutable": true,
18707
19334
  "locationInModule": {
18708
19335
  "filename": "lib/jobs/spark-job.ts",
18709
- "line": 121
19336
+ "line": 122
18710
19337
  },
18711
19338
  "name": "enableObservabilityMetrics",
18712
19339
  "optional": true,
@@ -18725,7 +19352,7 @@
18725
19352
  "immutable": true,
18726
19353
  "locationInModule": {
18727
19354
  "filename": "lib/jobs/spark-job.ts",
18728
- "line": 103
19355
+ "line": 104
18729
19356
  },
18730
19357
  "name": "sparkUI",
18731
19358
  "optional": true,
@@ -18752,7 +19379,7 @@
18752
19379
  "kind": "interface",
18753
19380
  "locationInModule": {
18754
19381
  "filename": "lib/jobs/spark-job.ts",
18755
- "line": 77
19382
+ "line": 78
18756
19383
  },
18757
19384
  "name": "SparkUILoggingLocation",
18758
19385
  "properties": [
@@ -18765,7 +19392,7 @@
18765
19392
  "immutable": true,
18766
19393
  "locationInModule": {
18767
19394
  "filename": "lib/jobs/spark-job.ts",
18768
- "line": 81
19395
+ "line": 82
18769
19396
  },
18770
19397
  "name": "bucket",
18771
19398
  "type": {
@@ -18782,7 +19409,7 @@
18782
19409
  "immutable": true,
18783
19410
  "locationInModule": {
18784
19411
  "filename": "lib/jobs/spark-job.ts",
18785
- "line": 88
19412
+ "line": 89
18786
19413
  },
18787
19414
  "name": "prefix",
18788
19415
  "optional": true,
@@ -18809,7 +19436,7 @@
18809
19436
  "kind": "interface",
18810
19437
  "locationInModule": {
18811
19438
  "filename": "lib/jobs/spark-job.ts",
18812
- "line": 54
19439
+ "line": 55
18813
19440
  },
18814
19441
  "name": "SparkUIProps",
18815
19442
  "properties": [
@@ -18823,7 +19450,7 @@
18823
19450
  "immutable": true,
18824
19451
  "locationInModule": {
18825
19452
  "filename": "lib/jobs/spark-job.ts",
18826
- "line": 60
19453
+ "line": 61
18827
19454
  },
18828
19455
  "name": "bucket",
18829
19456
  "optional": true,
@@ -18842,7 +19469,7 @@
18842
19469
  "immutable": true,
18843
19470
  "locationInModule": {
18844
19471
  "filename": "lib/jobs/spark-job.ts",
18845
- "line": 68
19472
+ "line": 69
18846
19473
  },
18847
19474
  "name": "prefix",
18848
19475
  "optional": true,
@@ -19613,7 +20240,7 @@
19613
20240
  },
19614
20241
  "locationInModule": {
19615
20242
  "filename": "lib/s3-table.ts",
19616
- "line": 121
20243
+ "line": 122
19617
20244
  },
19618
20245
  "parameters": [
19619
20246
  {
@@ -19639,7 +20266,7 @@
19639
20266
  "kind": "class",
19640
20267
  "locationInModule": {
19641
20268
  "filename": "lib/table-deprecated.ts",
19642
- "line": 11
20269
+ "line": 12
19643
20270
  },
19644
20271
  "name": "Table",
19645
20272
  "properties": [
@@ -19652,7 +20279,7 @@
19652
20279
  "immutable": true,
19653
20280
  "locationInModule": {
19654
20281
  "filename": "lib/table-deprecated.ts",
19655
- "line": 14
20282
+ "line": 15
19656
20283
  },
19657
20284
  "name": "PROPERTY_INJECTION_ID",
19658
20285
  "overrides": "@aws-cdk/aws-glue-alpha.S3Table",
@@ -19678,7 +20305,7 @@
19678
20305
  "kind": "interface",
19679
20306
  "locationInModule": {
19680
20307
  "filename": "lib/table-base.ts",
19681
- "line": 42
20308
+ "line": 44
19682
20309
  },
19683
20310
  "name": "TableAttributes",
19684
20311
  "properties": [
@@ -19690,7 +20317,7 @@
19690
20317
  "immutable": true,
19691
20318
  "locationInModule": {
19692
20319
  "filename": "lib/table-base.ts",
19693
- "line": 43
20320
+ "line": 45
19694
20321
  },
19695
20322
  "name": "tableArn",
19696
20323
  "type": {
@@ -19705,7 +20332,7 @@
19705
20332
  "immutable": true,
19706
20333
  "locationInModule": {
19707
20334
  "filename": "lib/table-base.ts",
19708
- "line": 44
20335
+ "line": 46
19709
20336
  },
19710
20337
  "name": "tableName",
19711
20338
  "type": {
@@ -19734,7 +20361,7 @@
19734
20361
  },
19735
20362
  "locationInModule": {
19736
20363
  "filename": "lib/table-base.ts",
19737
- "line": 239
20364
+ "line": 258
19738
20365
  },
19739
20366
  "parameters": [
19740
20367
  {
@@ -19763,7 +20390,7 @@
19763
20390
  "kind": "class",
19764
20391
  "locationInModule": {
19765
20392
  "filename": "lib/table-base.ts",
19766
- "line": 165
20393
+ "line": 179
19767
20394
  },
19768
20395
  "methods": [
19769
20396
  {
@@ -19772,7 +20399,7 @@
19772
20399
  },
19773
20400
  "locationInModule": {
19774
20401
  "filename": "lib/table-base.ts",
19775
- "line": 166
20402
+ "line": 180
19776
20403
  },
19777
20404
  "name": "fromTableArn",
19778
20405
  "parameters": [
@@ -19809,7 +20436,7 @@
19809
20436
  },
19810
20437
  "locationInModule": {
19811
20438
  "filename": "lib/table-base.ts",
19812
- "line": 182
20439
+ "line": 196
19813
20440
  },
19814
20441
  "name": "fromTableAttributes",
19815
20442
  "parameters": [
@@ -19857,7 +20484,7 @@
19857
20484
  },
19858
20485
  "locationInModule": {
19859
20486
  "filename": "lib/table-base.ts",
19860
- "line": 270
20487
+ "line": 292
19861
20488
  },
19862
20489
  "name": "addPartitionIndex",
19863
20490
  "parameters": [
@@ -19877,7 +20504,7 @@
19877
20504
  },
19878
20505
  "locationInModule": {
19879
20506
  "filename": "lib/table-base.ts",
19880
- "line": 334
20507
+ "line": 415
19881
20508
  },
19882
20509
  "name": "grant",
19883
20510
  "parameters": [
@@ -19912,7 +20539,7 @@
19912
20539
  },
19913
20540
  "locationInModule": {
19914
20541
  "filename": "lib/table-base.ts",
19915
- "line": 259
20542
+ "line": 281
19916
20543
  },
19917
20544
  "name": "grantRead",
19918
20545
  "parameters": [
@@ -19936,7 +20563,7 @@
19936
20563
  },
19937
20564
  "locationInModule": {
19938
20565
  "filename": "lib/table-base.ts",
19939
- "line": 261
20566
+ "line": 283
19940
20567
  },
19941
20568
  "name": "grantReadWrite",
19942
20569
  "parameters": [
@@ -19961,7 +20588,7 @@
19961
20588
  },
19962
20589
  "locationInModule": {
19963
20590
  "filename": "lib/table-base.ts",
19964
- "line": 347
20591
+ "line": 428
19965
20592
  },
19966
20593
  "name": "grantToUnderlyingResources",
19967
20594
  "parameters": [
@@ -19996,7 +20623,7 @@
19996
20623
  },
19997
20624
  "locationInModule": {
19998
20625
  "filename": "lib/table-base.ts",
19999
- "line": 260
20626
+ "line": 282
20000
20627
  },
20001
20628
  "name": "grantWrite",
20002
20629
  "parameters": [
@@ -20024,7 +20651,7 @@
20024
20651
  "immutable": true,
20025
20652
  "locationInModule": {
20026
20653
  "filename": "lib/table-base.ts",
20027
- "line": 214
20654
+ "line": 228
20028
20655
  },
20029
20656
  "name": "columns",
20030
20657
  "type": {
@@ -20044,7 +20671,7 @@
20044
20671
  "immutable": true,
20045
20672
  "locationInModule": {
20046
20673
  "filename": "lib/table-base.ts",
20047
- "line": 204
20674
+ "line": 218
20048
20675
  },
20049
20676
  "name": "compressed",
20050
20677
  "type": {
@@ -20059,7 +20686,7 @@
20059
20686
  "immutable": true,
20060
20687
  "locationInModule": {
20061
20688
  "filename": "lib/table-base.ts",
20062
- "line": 199
20689
+ "line": 213
20063
20690
  },
20064
20691
  "name": "database",
20065
20692
  "type": {
@@ -20074,7 +20701,7 @@
20074
20701
  "immutable": true,
20075
20702
  "locationInModule": {
20076
20703
  "filename": "lib/table-base.ts",
20077
- "line": 209
20704
+ "line": 223
20078
20705
  },
20079
20706
  "name": "dataFormat",
20080
20707
  "type": {
@@ -20090,7 +20717,7 @@
20090
20717
  "immutable": true,
20091
20718
  "locationInModule": {
20092
20719
  "filename": "lib/table-base.ts",
20093
- "line": 230
20720
+ "line": 249
20094
20721
  },
20095
20722
  "name": "parameters",
20096
20723
  "protected": true,
@@ -20111,7 +20738,7 @@
20111
20738
  "immutable": true,
20112
20739
  "locationInModule": {
20113
20740
  "filename": "lib/table-base.ts",
20114
- "line": 193
20741
+ "line": 207
20115
20742
  },
20116
20743
  "name": "tableArn",
20117
20744
  "overrides": "@aws-cdk/aws-glue-alpha.ITable",
@@ -20127,7 +20754,7 @@
20127
20754
  "immutable": true,
20128
20755
  "locationInModule": {
20129
20756
  "filename": "lib/table-base.ts",
20130
- "line": 192
20757
+ "line": 206
20131
20758
  },
20132
20759
  "name": "tableName",
20133
20760
  "overrides": "@aws-cdk/aws-glue-alpha.ITable",
@@ -20143,7 +20770,7 @@
20143
20770
  "immutable": true,
20144
20771
  "locationInModule": {
20145
20772
  "filename": "lib/table-base.ts",
20146
- "line": 191
20773
+ "line": 205
20147
20774
  },
20148
20775
  "name": "tableResource",
20149
20776
  "protected": true,
@@ -20159,7 +20786,7 @@
20159
20786
  "immutable": true,
20160
20787
  "locationInModule": {
20161
20788
  "filename": "lib/table-base.ts",
20162
- "line": 194
20789
+ "line": 208
20163
20790
  },
20164
20791
  "name": "partitionIndexes",
20165
20792
  "optional": true,
@@ -20180,7 +20807,7 @@
20180
20807
  "immutable": true,
20181
20808
  "locationInModule": {
20182
20809
  "filename": "lib/table-base.ts",
20183
- "line": 219
20810
+ "line": 233
20184
20811
  },
20185
20812
  "name": "partitionKeys",
20186
20813
  "optional": true,
@@ -20193,6 +20820,27 @@
20193
20820
  }
20194
20821
  }
20195
20822
  },
20823
+ {
20824
+ "docs": {
20825
+ "stability": "experimental",
20826
+ "summary": "This table's partition projection configuration if enabled."
20827
+ },
20828
+ "immutable": true,
20829
+ "locationInModule": {
20830
+ "filename": "lib/table-base.ts",
20831
+ "line": 243
20832
+ },
20833
+ "name": "partitionProjection",
20834
+ "optional": true,
20835
+ "type": {
20836
+ "collection": {
20837
+ "elementtype": {
20838
+ "fqn": "@aws-cdk/aws-glue-alpha.PartitionProjectionConfiguration"
20839
+ },
20840
+ "kind": "map"
20841
+ }
20842
+ }
20843
+ },
20196
20844
  {
20197
20845
  "docs": {
20198
20846
  "stability": "experimental",
@@ -20201,7 +20849,7 @@
20201
20849
  "immutable": true,
20202
20850
  "locationInModule": {
20203
20851
  "filename": "lib/table-base.ts",
20204
- "line": 224
20852
+ "line": 238
20205
20853
  },
20206
20854
  "name": "storageParameters",
20207
20855
  "optional": true,
@@ -20222,7 +20870,7 @@
20222
20870
  "datatype": true,
20223
20871
  "docs": {
20224
20872
  "stability": "experimental",
20225
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\n\ndeclare const database: glue_alpha.Database;\ndeclare const dataFormat: glue_alpha.DataFormat;\ndeclare const storageParameter: glue_alpha.StorageParameter;\nconst tableBaseProps: glue_alpha.TableBaseProps = {\n columns: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n database: database,\n dataFormat: dataFormat,\n\n // the properties below are optional\n compressed: false,\n description: 'description',\n enablePartitionFiltering: false,\n parameters: {\n parametersKey: 'parameters',\n },\n partitionIndexes: [{\n keyNames: ['keyNames'],\n\n // the properties below are optional\n indexName: 'indexName',\n }],\n partitionKeys: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n storageParameters: [storageParameter],\n storedAsSubDirectories: false,\n tableName: 'tableName',\n};",
20873
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\n\ndeclare const database: glue_alpha.Database;\ndeclare const dataFormat: glue_alpha.DataFormat;\ndeclare const partitionProjectionConfiguration: glue_alpha.PartitionProjectionConfiguration;\ndeclare const storageParameter: glue_alpha.StorageParameter;\nconst tableBaseProps: glue_alpha.TableBaseProps = {\n columns: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n database: database,\n dataFormat: dataFormat,\n\n // the properties below are optional\n compressed: false,\n description: 'description',\n enablePartitionFiltering: false,\n parameters: {\n parametersKey: 'parameters',\n },\n partitionIndexes: [{\n keyNames: ['keyNames'],\n\n // the properties below are optional\n indexName: 'indexName',\n }],\n partitionKeys: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n partitionProjection: {\n partitionProjectionKey: partitionProjectionConfiguration,\n },\n storageParameters: [storageParameter],\n storedAsSubDirectories: false,\n tableName: 'tableName',\n};",
20226
20874
  "custom": {
20227
20875
  "exampleMetadata": "fixture=_generated"
20228
20876
  }
@@ -20231,7 +20879,7 @@
20231
20879
  "kind": "interface",
20232
20880
  "locationInModule": {
20233
20881
  "filename": "lib/table-base.ts",
20234
- "line": 47
20882
+ "line": 49
20235
20883
  },
20236
20884
  "name": "TableBaseProps",
20237
20885
  "properties": [
@@ -20244,7 +20892,7 @@
20244
20892
  "immutable": true,
20245
20893
  "locationInModule": {
20246
20894
  "filename": "lib/table-base.ts",
20247
- "line": 70
20895
+ "line": 72
20248
20896
  },
20249
20897
  "name": "columns",
20250
20898
  "type": {
@@ -20265,7 +20913,7 @@
20265
20913
  "immutable": true,
20266
20914
  "locationInModule": {
20267
20915
  "filename": "lib/table-base.ts",
20268
- "line": 65
20916
+ "line": 67
20269
20917
  },
20270
20918
  "name": "database",
20271
20919
  "type": {
@@ -20281,7 +20929,7 @@
20281
20929
  "immutable": true,
20282
20930
  "locationInModule": {
20283
20931
  "filename": "lib/table-base.ts",
20284
- "line": 91
20932
+ "line": 93
20285
20933
  },
20286
20934
  "name": "dataFormat",
20287
20935
  "type": {
@@ -20298,7 +20946,7 @@
20298
20946
  "immutable": true,
20299
20947
  "locationInModule": {
20300
20948
  "filename": "lib/table-base.ts",
20301
- "line": 98
20949
+ "line": 100
20302
20950
  },
20303
20951
  "name": "compressed",
20304
20952
  "optional": true,
@@ -20316,7 +20964,7 @@
20316
20964
  "immutable": true,
20317
20965
  "locationInModule": {
20318
20966
  "filename": "lib/table-base.ts",
20319
- "line": 60
20967
+ "line": 62
20320
20968
  },
20321
20969
  "name": "description",
20322
20970
  "optional": true,
@@ -20335,7 +20983,7 @@
20335
20983
  "immutable": true,
20336
20984
  "locationInModule": {
20337
20985
  "filename": "lib/table-base.ts",
20338
- "line": 114
20986
+ "line": 116
20339
20987
  },
20340
20988
  "name": "enablePartitionFiltering",
20341
20989
  "optional": true,
@@ -20355,7 +21003,7 @@
20355
21003
  "immutable": true,
20356
21004
  "locationInModule": {
20357
21005
  "filename": "lib/table-base.ts",
20358
- "line": 159
21006
+ "line": 161
20359
21007
  },
20360
21008
  "name": "parameters",
20361
21009
  "optional": true,
@@ -20379,7 +21027,7 @@
20379
21027
  "immutable": true,
20380
21028
  "locationInModule": {
20381
21029
  "filename": "lib/table-base.ts",
20382
- "line": 86
21030
+ "line": 88
20383
21031
  },
20384
21032
  "name": "partitionIndexes",
20385
21033
  "optional": true,
@@ -20402,7 +21050,7 @@
20402
21050
  "immutable": true,
20403
21051
  "locationInModule": {
20404
21052
  "filename": "lib/table-base.ts",
20405
- "line": 77
21053
+ "line": 79
20406
21054
  },
20407
21055
  "name": "partitionKeys",
20408
21056
  "optional": true,
@@ -20415,6 +21063,31 @@
20415
21063
  }
20416
21064
  }
20417
21065
  },
21066
+ {
21067
+ "abstract": true,
21068
+ "docs": {
21069
+ "default": "- No partition projection",
21070
+ "remarks": "Partition projection allows Athena to automatically add new partitions\nwithout requiring `ALTER TABLE ADD PARTITION` statements.",
21071
+ "see": "https://docs.aws.amazon.com/athena/latest/ug/partition-projection.html",
21072
+ "stability": "experimental",
21073
+ "summary": "Partition projection configuration for this table."
21074
+ },
21075
+ "immutable": true,
21076
+ "locationInModule": {
21077
+ "filename": "lib/table-base.ts",
21078
+ "line": 173
21079
+ },
21080
+ "name": "partitionProjection",
21081
+ "optional": true,
21082
+ "type": {
21083
+ "collection": {
21084
+ "elementtype": {
21085
+ "fqn": "@aws-cdk/aws-glue-alpha.PartitionProjectionConfiguration"
21086
+ },
21087
+ "kind": "map"
21088
+ }
21089
+ }
21090
+ },
20418
21091
  {
20419
21092
  "abstract": true,
20420
21093
  "docs": {
@@ -20428,7 +21101,7 @@
20428
21101
  "immutable": true,
20429
21102
  "locationInModule": {
20430
21103
  "filename": "lib/table-base.ts",
20431
- "line": 149
21104
+ "line": 151
20432
21105
  },
20433
21106
  "name": "storageParameters",
20434
21107
  "optional": true,
@@ -20451,7 +21124,7 @@
20451
21124
  "immutable": true,
20452
21125
  "locationInModule": {
20453
21126
  "filename": "lib/table-base.ts",
20454
- "line": 105
21127
+ "line": 107
20455
21128
  },
20456
21129
  "name": "storedAsSubDirectories",
20457
21130
  "optional": true,
@@ -20469,7 +21142,7 @@
20469
21142
  "immutable": true,
20470
21143
  "locationInModule": {
20471
21144
  "filename": "lib/table-base.ts",
20472
- "line": 53
21145
+ "line": 55
20473
21146
  },
20474
21147
  "name": "tableName",
20475
21148
  "optional": true,
@@ -20495,7 +21168,7 @@
20495
21168
  "kind": "enum",
20496
21169
  "locationInModule": {
20497
21170
  "filename": "lib/s3-table.ts",
20498
- "line": 18
21171
+ "line": 19
20499
21172
  },
20500
21173
  "members": [
20501
21174
  {
@@ -20538,7 +21211,7 @@
20538
21211
  "datatype": true,
20539
21212
  "docs": {
20540
21213
  "stability": "experimental",
20541
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport { aws_kms as kms } from 'aws-cdk-lib';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\ndeclare const database: glue_alpha.Database;\ndeclare const dataFormat: glue_alpha.DataFormat;\ndeclare const key: kms.Key;\ndeclare const storageParameter: glue_alpha.StorageParameter;\nconst tableProps: glue_alpha.TableProps = {\n columns: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n database: database,\n dataFormat: dataFormat,\n\n // the properties below are optional\n bucket: bucket,\n compressed: false,\n description: 'description',\n enablePartitionFiltering: false,\n encryption: glue_alpha.TableEncryption.S3_MANAGED,\n encryptionKey: key,\n parameters: {\n parametersKey: 'parameters',\n },\n partitionIndexes: [{\n keyNames: ['keyNames'],\n\n // the properties below are optional\n indexName: 'indexName',\n }],\n partitionKeys: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n s3Prefix: 's3Prefix',\n storageParameters: [storageParameter],\n storedAsSubDirectories: false,\n tableName: 'tableName',\n};",
21214
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport { aws_kms as kms } from 'aws-cdk-lib';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\ndeclare const database: glue_alpha.Database;\ndeclare const dataFormat: glue_alpha.DataFormat;\ndeclare const key: kms.Key;\ndeclare const partitionProjectionConfiguration: glue_alpha.PartitionProjectionConfiguration;\ndeclare const storageParameter: glue_alpha.StorageParameter;\nconst tableProps: glue_alpha.TableProps = {\n columns: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n database: database,\n dataFormat: dataFormat,\n\n // the properties below are optional\n bucket: bucket,\n compressed: false,\n description: 'description',\n enablePartitionFiltering: false,\n encryption: glue_alpha.TableEncryption.S3_MANAGED,\n encryptionKey: key,\n parameters: {\n parametersKey: 'parameters',\n },\n partitionIndexes: [{\n keyNames: ['keyNames'],\n\n // the properties below are optional\n indexName: 'indexName',\n }],\n partitionKeys: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n partitionProjection: {\n partitionProjectionKey: partitionProjectionConfiguration,\n },\n s3Prefix: 's3Prefix',\n storageParameters: [storageParameter],\n storedAsSubDirectories: false,\n tableName: 'tableName',\n};",
20542
21215
  "custom": {
20543
21216
  "exampleMetadata": "fixture=_generated"
20544
21217
  }
@@ -20550,7 +21223,7 @@
20550
21223
  "kind": "interface",
20551
21224
  "locationInModule": {
20552
21225
  "filename": "lib/table-deprecated.ts",
20553
- "line": 4
21226
+ "line": 5
20554
21227
  },
20555
21228
  "name": "TableProps",
20556
21229
  "symbolId": "lib/table-deprecated:TableProps"
@@ -20736,7 +21409,7 @@
20736
21409
  "docs": {
20737
21410
  "stability": "experimental",
20738
21411
  "summary": "Represents a type of a column in a table schema.",
20739
- "example": "declare 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});",
21412
+ "example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});",
20740
21413
  "custom": {
20741
21414
  "exampleMetadata": "infused"
20742
21415
  }
@@ -20939,7 +21612,7 @@
20939
21612
  },
20940
21613
  "locationInModule": {
20941
21614
  "filename": "lib/triggers/workflow.ts",
20942
- "line": 412
21615
+ "line": 414
20943
21616
  },
20944
21617
  "parameters": [
20945
21618
  {
@@ -20966,7 +21639,7 @@
20966
21639
  "kind": "class",
20967
21640
  "locationInModule": {
20968
21641
  "filename": "lib/triggers/workflow.ts",
20969
- "line": 374
21642
+ "line": 376
20970
21643
  },
20971
21644
  "methods": [
20972
21645
  {
@@ -20976,7 +21649,7 @@
20976
21649
  },
20977
21650
  "locationInModule": {
20978
21651
  "filename": "lib/triggers/workflow.ts",
20979
- "line": 391
21652
+ "line": 393
20980
21653
  },
20981
21654
  "name": "fromWorkflowArn",
20982
21655
  "parameters": [
@@ -21013,7 +21686,7 @@
21013
21686
  },
21014
21687
  "locationInModule": {
21015
21688
  "filename": "lib/triggers/workflow.ts",
21016
- "line": 401
21689
+ "line": 403
21017
21690
  },
21018
21691
  "name": "fromWorkflowAttributes",
21019
21692
  "parameters": [
@@ -21050,7 +21723,7 @@
21050
21723
  },
21051
21724
  "locationInModule": {
21052
21725
  "filename": "lib/triggers/workflow.ts",
21053
- "line": 382
21726
+ "line": 384
21054
21727
  },
21055
21728
  "name": "fromWorkflowName",
21056
21729
  "parameters": [
@@ -21092,7 +21765,7 @@
21092
21765
  "immutable": true,
21093
21766
  "locationInModule": {
21094
21767
  "filename": "lib/triggers/workflow.ts",
21095
- "line": 377
21768
+ "line": 379
21096
21769
  },
21097
21770
  "name": "PROPERTY_INJECTION_ID",
21098
21771
  "static": true,
@@ -21108,7 +21781,7 @@
21108
21781
  "immutable": true,
21109
21782
  "locationInModule": {
21110
21783
  "filename": "lib/triggers/workflow.ts",
21111
- "line": 432
21784
+ "line": 434
21112
21785
  },
21113
21786
  "name": "workflowArn",
21114
21787
  "overrides": "@aws-cdk/aws-glue-alpha.WorkflowBase",
@@ -21124,7 +21797,7 @@
21124
21797
  "immutable": true,
21125
21798
  "locationInModule": {
21126
21799
  "filename": "lib/triggers/workflow.ts",
21127
- "line": 427
21800
+ "line": 429
21128
21801
  },
21129
21802
  "name": "workflowName",
21130
21803
  "overrides": "@aws-cdk/aws-glue-alpha.WorkflowBase",
@@ -21150,7 +21823,7 @@
21150
21823
  "kind": "interface",
21151
21824
  "locationInModule": {
21152
21825
  "filename": "lib/triggers/workflow.ts",
21153
- "line": 65
21826
+ "line": 67
21154
21827
  },
21155
21828
  "name": "WorkflowAttributes",
21156
21829
  "properties": [
@@ -21163,7 +21836,7 @@
21163
21836
  "immutable": true,
21164
21837
  "locationInModule": {
21165
21838
  "filename": "lib/triggers/workflow.ts",
21166
- "line": 69
21839
+ "line": 71
21167
21840
  },
21168
21841
  "name": "workflowName",
21169
21842
  "type": {
@@ -21180,7 +21853,7 @@
21180
21853
  "immutable": true,
21181
21854
  "locationInModule": {
21182
21855
  "filename": "lib/triggers/workflow.ts",
21183
- "line": 75
21856
+ "line": 77
21184
21857
  },
21185
21858
  "name": "workflowArn",
21186
21859
  "optional": true,
@@ -21207,7 +21880,7 @@
21207
21880
  },
21208
21881
  "locationInModule": {
21209
21882
  "filename": "core/lib/resource.ts",
21210
- "line": 119
21883
+ "line": 122
21211
21884
  },
21212
21885
  "parameters": [
21213
21886
  {
@@ -21237,7 +21910,7 @@
21237
21910
  "kind": "class",
21238
21911
  "locationInModule": {
21239
21912
  "filename": "lib/triggers/workflow.ts",
21240
- "line": 116
21913
+ "line": 118
21241
21914
  },
21242
21915
  "methods": [
21243
21916
  {
@@ -21247,7 +21920,7 @@
21247
21920
  },
21248
21921
  "locationInModule": {
21249
21922
  "filename": "lib/triggers/workflow.ts",
21250
- "line": 120
21923
+ "line": 122
21251
21924
  },
21252
21925
  "name": "extractNameFromArn",
21253
21926
  "parameters": [
@@ -21283,7 +21956,7 @@
21283
21956
  },
21284
21957
  "locationInModule": {
21285
21958
  "filename": "lib/triggers/workflow.ts",
21286
- "line": 253
21959
+ "line": 255
21287
21960
  },
21288
21961
  "name": "addConditionalTrigger",
21289
21962
  "parameters": [
@@ -21323,7 +21996,7 @@
21323
21996
  },
21324
21997
  "locationInModule": {
21325
21998
  "filename": "lib/triggers/workflow.ts",
21326
- "line": 210
21999
+ "line": 212
21327
22000
  },
21328
22001
  "name": "addCustomScheduledTrigger",
21329
22002
  "overrides": "@aws-cdk/aws-glue-alpha.IWorkflow",
@@ -21364,7 +22037,7 @@
21364
22037
  },
21365
22038
  "locationInModule": {
21366
22039
  "filename": "lib/triggers/workflow.ts",
21367
- "line": 157
22040
+ "line": 159
21368
22041
  },
21369
22042
  "name": "addDailyScheduledTrigger",
21370
22043
  "overrides": "@aws-cdk/aws-glue-alpha.IWorkflow",
@@ -21405,7 +22078,7 @@
21405
22078
  },
21406
22079
  "locationInModule": {
21407
22080
  "filename": "lib/triggers/workflow.ts",
21408
- "line": 231
22081
+ "line": 233
21409
22082
  },
21410
22083
  "name": "addNotifyEventTrigger",
21411
22084
  "parameters": [
@@ -21445,7 +22118,7 @@
21445
22118
  },
21446
22119
  "locationInModule": {
21447
22120
  "filename": "lib/triggers/workflow.ts",
21448
- "line": 137
22121
+ "line": 139
21449
22122
  },
21450
22123
  "name": "addOnDemandTrigger",
21451
22124
  "overrides": "@aws-cdk/aws-glue-alpha.IWorkflow",
@@ -21486,7 +22159,7 @@
21486
22159
  },
21487
22160
  "locationInModule": {
21488
22161
  "filename": "lib/triggers/workflow.ts",
21489
- "line": 183
22162
+ "line": 185
21490
22163
  },
21491
22164
  "name": "addWeeklyScheduledTrigger",
21492
22165
  "overrides": "@aws-cdk/aws-glue-alpha.IWorkflow",
@@ -21522,7 +22195,7 @@
21522
22195
  },
21523
22196
  "locationInModule": {
21524
22197
  "filename": "lib/triggers/workflow.ts",
21525
- "line": 335
22198
+ "line": 337
21526
22199
  },
21527
22200
  "name": "buildWorkflowArn",
21528
22201
  "parameters": [
@@ -21558,7 +22231,7 @@
21558
22231
  "immutable": true,
21559
22232
  "locationInModule": {
21560
22233
  "filename": "lib/triggers/workflow.ts",
21561
- "line": 127
22234
+ "line": 129
21562
22235
  },
21563
22236
  "name": "workflowArn",
21564
22237
  "overrides": "@aws-cdk/aws-glue-alpha.IWorkflow",
@@ -21575,7 +22248,7 @@
21575
22248
  "immutable": true,
21576
22249
  "locationInModule": {
21577
22250
  "filename": "lib/triggers/workflow.ts",
21578
- "line": 126
22251
+ "line": 128
21579
22252
  },
21580
22253
  "name": "workflowName",
21581
22254
  "overrides": "@aws-cdk/aws-glue-alpha.IWorkflow",
@@ -21601,7 +22274,7 @@
21601
22274
  "kind": "interface",
21602
22275
  "locationInModule": {
21603
22276
  "filename": "lib/triggers/workflow.ts",
21604
- "line": 81
22277
+ "line": 83
21605
22278
  },
21606
22279
  "name": "WorkflowProps",
21607
22280
  "properties": [
@@ -21615,7 +22288,7 @@
21615
22288
  "immutable": true,
21616
22289
  "locationInModule": {
21617
22290
  "filename": "lib/triggers/workflow.ts",
21618
- "line": 101
22291
+ "line": 103
21619
22292
  },
21620
22293
  "name": "defaultRunProperties",
21621
22294
  "optional": true,
@@ -21638,7 +22311,7 @@
21638
22311
  "immutable": true,
21639
22312
  "locationInModule": {
21640
22313
  "filename": "lib/triggers/workflow.ts",
21641
- "line": 94
22314
+ "line": 96
21642
22315
  },
21643
22316
  "name": "description",
21644
22317
  "optional": true,
@@ -21656,7 +22329,7 @@
21656
22329
  "immutable": true,
21657
22330
  "locationInModule": {
21658
22331
  "filename": "lib/triggers/workflow.ts",
21659
- "line": 108
22332
+ "line": 110
21660
22333
  },
21661
22334
  "name": "maxConcurrentRuns",
21662
22335
  "optional": true,
@@ -21674,7 +22347,7 @@
21674
22347
  "immutable": true,
21675
22348
  "locationInModule": {
21676
22349
  "filename": "lib/triggers/workflow.ts",
21677
- "line": 87
22350
+ "line": 89
21678
22351
  },
21679
22352
  "name": "workflowName",
21680
22353
  "optional": true,
@@ -21719,6 +22392,6 @@
21719
22392
  "symbolId": "lib/storage-parameter:WriteParallel"
21720
22393
  }
21721
22394
  },
21722
- "version": "2.237.1-alpha.0",
22395
+ "version": "2.238.0-alpha.0",
21723
22396
  "fingerprint": "**********"
21724
22397
  }