@aws-cdk/aws-glue-alpha 2.86.0-alpha.0 → 2.88.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "2.86.0",
11
+ "aws-cdk-lib": "2.88.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -3187,6 +3187,19 @@
3187
3187
  }
3188
3188
  }
3189
3189
  },
3190
+ "aws-cdk-lib.aws_verifiedpermissions": {
3191
+ "targets": {
3192
+ "dotnet": {
3193
+ "package": "Amazon.CDK.AWS.VerifiedPermissions"
3194
+ },
3195
+ "java": {
3196
+ "package": "services.verifiedpermissions"
3197
+ },
3198
+ "python": {
3199
+ "module": "aws_cdk.aws_verifiedpermissions"
3200
+ }
3201
+ }
3202
+ },
3190
3203
  "aws-cdk-lib.aws_voiceid": {
3191
3204
  "targets": {
3192
3205
  "dotnet": {
@@ -3479,7 +3492,7 @@
3479
3492
  "stability": "experimental"
3480
3493
  },
3481
3494
  "homepage": "https://github.com/aws/aws-cdk",
3482
- "jsiiVersion": "5.0.11 (build 5e2d6be)",
3495
+ "jsiiVersion": "5.1.8 (build acd3d7c)",
3483
3496
  "keywords": [
3484
3497
  "aws",
3485
3498
  "cdk",
@@ -3500,7 +3513,7 @@
3500
3513
  },
3501
3514
  "name": "@aws-cdk/aws-glue-alpha",
3502
3515
  "readme": {
3503
- "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## Job\n\nA `Job` encapsulates a script that connects to data sources, processes them, and then writes output to a data target.\n\nThere are 3 types of jobs supported by AWS Glue: Spark ETL, Spark Streaming, and Python Shell jobs.\n\nThe `glue.JobExecutable` allows you to specify the type of job, the language to use and the code assets required by the job.\n\n`glue.Code` allows you to refer to the different code assets required by the job, either from an existing S3 location or from a local file path.\n\n### Spark Jobs\n\nThese jobs run in an Apache Spark environment managed by AWS Glue.\n\n#### ETL Jobs\n\nAn ETL job processes data in batches using Apache Spark.\n\n```ts\ndeclare const bucket: s3.Bucket;\nnew glue.Job(this, 'ScalaSparkEtlJob', {\n executable: glue.JobExecutable.scalaEtl({\n glueVersion: glue.GlueVersion.V4_0,\n script: glue.Code.fromBucket(bucket, 'src/com/example/HelloWorld.scala'),\n className: 'com.example.HelloWorld',\n extraJars: [glue.Code.fromBucket(bucket, 'jars/HelloWorld.jar')],\n }),\n workerType: glue.WorkerType.G_8X,\n description: 'an example Scala ETL job',\n});\n```\n\n#### Streaming Jobs\n\nA Streaming job is similar to an ETL job, except that it performs ETL on data streams. It uses the Apache Spark Structured Streaming framework. Some Spark job features are not available to streaming ETL jobs.\n\n```ts\nnew glue.Job(this, 'PythonSparkStreamingJob', {\n executable: glue.JobExecutable.pythonStreaming({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n description: 'an example Python Streaming job',\n});\n```\n\n### Python Shell Jobs\n\nA Python shell job runs Python scripts as a shell and supports a Python version that depends on the AWS Glue version you are using.\nThis can be used to schedule and run tasks that don't require an Apache Spark environment. Currently, three flavors are supported:\n\n* PythonVersion.TWO (2.7; EOL)\n* PythonVersion.THREE (3.6)\n* PythonVersion.THREE_NINE (3.9)\n\n```ts\ndeclare const bucket: s3.Bucket;\nnew glue.Job(this, 'PythonShellJob', {\n executable: glue.JobExecutable.pythonShell({\n glueVersion: glue.GlueVersion.V1_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromBucket(bucket, 'script.py'),\n }),\n description: 'an example Python Shell job',\n});\n```\n\n### Ray Jobs\n\nThese jobs run in a Ray environment managed by AWS Glue.\n\n```ts\nnew glue.Job(this, 'RayJob', {\n executable: glue.JobExecutable.pythonRay({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE_NINE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n workerType: glue.WorkerType.Z_2X,\n workerCount: 2,\n description: 'an example Ray job'\n});\n```\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) for more information on adding jobs in Glue.\n\n## Connection\n\nA `Connection` allows Glue jobs, crawlers and development endpoints to access certain types of data stores. For example, to create a network connection to connect to a data source within a VPC:\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```\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.Table(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.Table(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\nBy default, an S3 bucket will be created to store the table's data and stored in the bucket root. You can also manually pass the `bucket` and `s3Prefix`:\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.Table(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.Table(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.Table(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## [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.Table(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.Table(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.Table(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.Table(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.Table(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.Table(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 `Table` 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.Table(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### Primitives\n\n#### Numeric\n\n| Name \t| Type \t| Comments |\n|-----------\t|----------\t|------------------------------------------------------------------------------------------------------------------\t|\n| FLOAT \t| Constant \t| A 32-bit single-precision floating point number |\n| INTEGER \t| Constant \t| A 32-bit signed value in two's complement format, with a minimum value of -2^31 and a maximum value of 2^31-1 \t|\n| DOUBLE \t| Constant \t| A 64-bit double-precision floating point number |\n| BIG_INT \t| Constant \t| A 64-bit signed INTEGER in two’s complement format, with a minimum value of -2^63 and a maximum value of 2^63 -1 |\n| SMALL_INT \t| Constant \t| A 16-bit signed INTEGER in two’s complement format, with a minimum value of -2^15 and a maximum value of 2^15-1 |\n| TINY_INT \t| Constant \t| A 8-bit signed INTEGER in two’s complement format, with a minimum value of -2^7 and a maximum value of 2^7-1 |\n\n#### Date and time\n\n| Name \t| Type \t| Comments \t|\n|-----------\t|----------\t|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\t|\n| DATE \t| Constant \t| A date in UNIX format, such as YYYY-MM-DD. \t|\n| TIMESTAMP \t| Constant \t| Date and time instant in the UNiX format, such as yyyy-mm-dd hh:mm:ss[.f...]. For example, TIMESTAMP '2008-09-15 03:04:05.324'. This format uses the session time zone. \t|\n\n#### String\n\n| Name \t| Type \t| Comments \t|\n|--------------------------------------------\t|----------\t|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\t|\n| STRING \t| Constant \t| A string literal enclosed in single or double quotes \t|\n| decimal(precision: number, scale?: number) \t| Function \t| `precision` is the total number of digits. `scale` (optional) is the number of digits in fractional part with a default of 0. For example, use these type definitions: decimal(11,5), decimal(15) \t|\n| char(length: number) \t| Function \t| Fixed length character data, with a specified length between 1 and 255, such as char(10) \t|\n| varchar(length: number) \t| Function \t| Variable length character data, with a specified length between 1 and 65535, such as varchar(10) \t|\n\n#### Miscellaneous\n\n| Name \t| Type \t| Comments \t|\n|---------\t|----------\t|-------------------------------\t|\n| BOOLEAN \t| Constant \t| Values are `true` and `false` \t|\n| BINARY \t| Constant \t| Value is in binary \t|\n\n### Complex\n\n| Name \t| Type \t| Comments \t|\n|-------------------------------------\t|----------\t|-------------------------------------------------------------------\t|\n| array(itemType: Type) \t| Function \t| An array of some other type \t|\n| map(keyType: Type, valueType: Type) \t| Function \t| A map of some primitive key type to any value type \t|\n| struct(collumns: Column[]) \t| Function \t| Nested structure containing individually named and typed collumns \t|\n"
3516
+ "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## Job\n\nA `Job` encapsulates a script that connects to data sources, processes them, and then writes output to a data target.\n\nThere are 3 types of jobs supported by AWS Glue: Spark ETL, Spark Streaming, and Python Shell jobs.\n\nThe `glue.JobExecutable` allows you to specify the type of job, the language to use and the code assets required by the job.\n\n`glue.Code` allows you to refer to the different code assets required by the job, either from an existing S3 location or from a local file path.\n\n`glue.ExecutionClass` allows you to specify `FLEX` or `STANDARD`. `FLEX` is appropriate for non-urgent jobs such as pre-production jobs, testing, and one-time data loads.\n\n### Spark Jobs\n\nThese jobs run in an Apache Spark environment managed by AWS Glue.\n\n#### ETL Jobs\n\nAn ETL job processes data in batches using Apache Spark.\n\n```ts\ndeclare const bucket: s3.Bucket;\nnew glue.Job(this, 'ScalaSparkEtlJob', {\n executable: glue.JobExecutable.scalaEtl({\n glueVersion: glue.GlueVersion.V4_0,\n script: glue.Code.fromBucket(bucket, 'src/com/example/HelloWorld.scala'),\n className: 'com.example.HelloWorld',\n extraJars: [glue.Code.fromBucket(bucket, 'jars/HelloWorld.jar')],\n }),\n workerType: glue.WorkerType.G_8X,\n description: 'an example Scala ETL job',\n});\n```\n\n#### Streaming Jobs\n\nA Streaming job is similar to an ETL job, except that it performs ETL on data streams. It uses the Apache Spark Structured Streaming framework. Some Spark job features are not available to streaming ETL jobs.\n\n```ts\nnew glue.Job(this, 'PythonSparkStreamingJob', {\n executable: glue.JobExecutable.pythonStreaming({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n description: 'an example Python Streaming job',\n});\n```\n\n### Python Shell Jobs\n\nA Python shell job runs Python scripts as a shell and supports a Python version that depends on the AWS Glue version you are using.\nThis can be used to schedule and run tasks that don't require an Apache Spark environment. Currently, three flavors are supported:\n\n* PythonVersion.TWO (2.7; EOL)\n* PythonVersion.THREE (3.6)\n* PythonVersion.THREE_NINE (3.9)\n\n```ts\ndeclare const bucket: s3.Bucket;\nnew glue.Job(this, 'PythonShellJob', {\n executable: glue.JobExecutable.pythonShell({\n glueVersion: glue.GlueVersion.V1_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromBucket(bucket, 'script.py'),\n }),\n description: 'an example Python Shell job',\n});\n```\n\n### Ray Jobs\n\nThese jobs run in a Ray environment managed by AWS Glue.\n\n```ts\nnew glue.Job(this, 'RayJob', {\n executable: glue.JobExecutable.pythonRay({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE_NINE,\n runtime: glue.Runtime.RAY_TWO_FOUR,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n workerType: glue.WorkerType.Z_2X,\n workerCount: 2,\n description: 'an example Ray job'\n});\n```\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) for more information on adding jobs in Glue.\n\n## Connection\n\nA `Connection` allows Glue jobs, crawlers and development endpoints to access certain types of data stores. For example, to create a network connection to connect to a data source within a VPC:\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```\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.Table(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.Table(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\nBy default, an S3 bucket will be created to store the table's data and stored in the bucket root. You can also manually pass the `bucket` and `s3Prefix`:\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.Table(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.Table(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.Table(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## [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.Table(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.Table(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.Table(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.Table(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.Table(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.Table(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 `Table` 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.Table(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### Primitives\n\n#### Numeric\n\n| Name \t| Type \t| Comments |\n|-----------\t|----------\t|------------------------------------------------------------------------------------------------------------------\t|\n| FLOAT \t| Constant \t| A 32-bit single-precision floating point number |\n| INTEGER \t| Constant \t| A 32-bit signed value in two's complement format, with a minimum value of -2^31 and a maximum value of 2^31-1 \t|\n| DOUBLE \t| Constant \t| A 64-bit double-precision floating point number |\n| BIG_INT \t| Constant \t| A 64-bit signed INTEGER in two’s complement format, with a minimum value of -2^63 and a maximum value of 2^63 -1 |\n| SMALL_INT \t| Constant \t| A 16-bit signed INTEGER in two’s complement format, with a minimum value of -2^15 and a maximum value of 2^15-1 |\n| TINY_INT \t| Constant \t| A 8-bit signed INTEGER in two’s complement format, with a minimum value of -2^7 and a maximum value of 2^7-1 |\n\n#### Date and time\n\n| Name \t| Type \t| Comments \t|\n|-----------\t|----------\t|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\t|\n| DATE \t| Constant \t| A date in UNIX format, such as YYYY-MM-DD. \t|\n| TIMESTAMP \t| Constant \t| Date and time instant in the UNiX format, such as yyyy-mm-dd hh:mm:ss[.f...]. For example, TIMESTAMP '2008-09-15 03:04:05.324'. This format uses the session time zone. \t|\n\n#### String\n\n| Name \t| Type \t| Comments \t|\n|--------------------------------------------\t|----------\t|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\t|\n| STRING \t| Constant \t| A string literal enclosed in single or double quotes \t|\n| decimal(precision: number, scale?: number) \t| Function \t| `precision` is the total number of digits. `scale` (optional) is the number of digits in fractional part with a default of 0. For example, use these type definitions: decimal(11,5), decimal(15) \t|\n| char(length: number) \t| Function \t| Fixed length character data, with a specified length between 1 and 255, such as char(10) \t|\n| varchar(length: number) \t| Function \t| Variable length character data, with a specified length between 1 and 65535, such as varchar(10) \t|\n\n#### Miscellaneous\n\n| Name \t| Type \t| Comments \t|\n|---------\t|----------\t|-------------------------------\t|\n| BOOLEAN \t| Constant \t| Values are `true` and `false` \t|\n| BINARY \t| Constant \t| Value is in binary \t|\n\n### Complex\n\n| Name \t| Type \t| Comments \t|\n|-------------------------------------\t|----------\t|-------------------------------------------------------------------\t|\n| array(itemType: Type) \t| Function \t| An array of some other type \t|\n| map(keyType: Type, valueType: Type) \t| Function \t| A map of some primitive key type to any value type \t|\n| struct(collumns: Column[]) \t| Function \t| Nested structure containing individually named and typed collumns \t|\n\n## Data Quality Ruleset\n\nA `DataQualityRuleset` specifies a data quality ruleset with DQDL rules applied to a specified AWS Glue table. For example, to create a data quality ruleset for a given table:\n\n```ts\nnew glue.DataQualityRuleset(this, 'MyDataQualityRuleset', {\n clientToken: 'client_token',\n description: 'description',\n rulesetName: 'ruleset_name',\n rulesetDqdl: 'ruleset_dqdl',\n tags: {\n key1: 'value1',\n key2: 'value2',\n },\n targetTable: new glue.DataQualityTargetTable('database_name', 'table_name'),\n});\n```\n\nFor more information, see [AWS Glue Data Quality](https://docs.aws.amazon.com/glue/latest/dg/glue-data-quality.html).\n"
3504
3517
  },
3505
3518
  "repository": {
3506
3519
  "directory": "packages/@aws-cdk/aws-glue-alpha",
@@ -3544,7 +3557,7 @@
3544
3557
  "docs": {
3545
3558
  "stability": "experimental",
3546
3559
  "summary": "Job Code from a local file.",
3547
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_iam as iam } from 'aws-cdk-lib';\n\ndeclare const dockerImage: cdk.DockerImage;\ndeclare const grantable: iam.IGrantable;\ndeclare const localBundling: cdk.ILocalBundling;\nconst assetCode = new glue_alpha.AssetCode('path', /* all optional props */ {\n assetHash: 'assetHash',\n assetHashType: cdk.AssetHashType.SOURCE,\n bundling: {\n image: dockerImage,\n\n // the properties below are optional\n bundlingFileAccess: cdk.BundlingFileAccess.VOLUME_COPY,\n command: ['command'],\n entrypoint: ['entrypoint'],\n environment: {\n environmentKey: 'environment',\n },\n local: localBundling,\n network: 'network',\n outputType: cdk.BundlingOutput.ARCHIVED,\n securityOpt: 'securityOpt',\n user: 'user',\n volumes: [{\n containerPath: 'containerPath',\n hostPath: 'hostPath',\n\n // the properties below are optional\n consistency: cdk.DockerVolumeConsistency.CONSISTENT,\n }],\n volumesFrom: ['volumesFrom'],\n workingDirectory: 'workingDirectory',\n },\n deployTime: false,\n exclude: ['exclude'],\n followSymlinks: cdk.SymlinkFollowMode.NEVER,\n ignoreMode: cdk.IgnoreMode.GLOB,\n readers: [grantable],\n});",
3560
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_iam as iam } from 'aws-cdk-lib';\n\ndeclare const dockerImage: cdk.DockerImage;\ndeclare const grantable: iam.IGrantable;\ndeclare const localBundling: cdk.ILocalBundling;\nconst assetCode = new glue_alpha.AssetCode('path', /* all optional props */ {\n assetHash: 'assetHash',\n assetHashType: cdk.AssetHashType.SOURCE,\n bundling: {\n image: dockerImage,\n\n // the properties below are optional\n bundlingFileAccess: cdk.BundlingFileAccess.VOLUME_COPY,\n command: ['command'],\n entrypoint: ['entrypoint'],\n environment: {\n environmentKey: 'environment',\n },\n local: localBundling,\n network: 'network',\n outputType: cdk.BundlingOutput.ARCHIVED,\n platform: 'platform',\n securityOpt: 'securityOpt',\n user: 'user',\n volumes: [{\n containerPath: 'containerPath',\n hostPath: 'hostPath',\n\n // the properties below are optional\n consistency: cdk.DockerVolumeConsistency.CONSISTENT,\n }],\n volumesFrom: ['volumesFrom'],\n workingDirectory: 'workingDirectory',\n },\n deployTime: false,\n exclude: ['exclude'],\n followSymlinks: cdk.SymlinkFollowMode.NEVER,\n ignoreMode: cdk.IgnoreMode.GLOB,\n readers: [grantable],\n});",
3548
3561
  "custom": {
3549
3562
  "exampleMetadata": "fixture=_generated"
3550
3563
  }
@@ -3865,7 +3878,7 @@
3865
3878
  "docs": {
3866
3879
  "stability": "experimental",
3867
3880
  "summary": "Represents a Glue Job's Code assets (an asset can be a scripts, a jar, a python file or any other file).",
3868
- "example": "new glue.Job(this, 'PythonSparkStreamingJob', {\n executable: glue.JobExecutable.pythonStreaming({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n description: 'an example Python Streaming job',\n});",
3881
+ "example": "declare const bucket: s3.Bucket;\nnew glue.Job(this, 'ScalaSparkEtlJob', {\n executable: glue.JobExecutable.scalaEtl({\n glueVersion: glue.GlueVersion.V4_0,\n script: glue.Code.fromBucket(bucket, 'src/com/example/HelloWorld.scala'),\n className: 'com.example.HelloWorld',\n extraJars: [glue.Code.fromBucket(bucket, 'jars/HelloWorld.jar')],\n }),\n workerType: glue.WorkerType.G_8X,\n description: 'an example Scala ETL job',\n});",
3869
3882
  "custom": {
3870
3883
  "exampleMetadata": "infused"
3871
3884
  }
@@ -4655,7 +4668,7 @@
4655
4668
  "kind": "interface",
4656
4669
  "locationInModule": {
4657
4670
  "filename": "lib/job.ts",
4658
- "line": 404
4671
+ "line": 424
4659
4672
  },
4660
4673
  "name": "ContinuousLoggingProps",
4661
4674
  "properties": [
@@ -4668,7 +4681,7 @@
4668
4681
  "immutable": true,
4669
4682
  "locationInModule": {
4670
4683
  "filename": "lib/job.ts",
4671
- "line": 408
4684
+ "line": 428
4672
4685
  },
4673
4686
  "name": "enabled",
4674
4687
  "type": {
@@ -4686,7 +4699,7 @@
4686
4699
  "immutable": true,
4687
4700
  "locationInModule": {
4688
4701
  "filename": "lib/job.ts",
4689
- "line": 438
4702
+ "line": 458
4690
4703
  },
4691
4704
  "name": "conversionPattern",
4692
4705
  "optional": true,
@@ -4704,7 +4717,7 @@
4704
4717
  "immutable": true,
4705
4718
  "locationInModule": {
4706
4719
  "filename": "lib/job.ts",
4707
- "line": 415
4720
+ "line": 435
4708
4721
  },
4709
4722
  "name": "logGroup",
4710
4723
  "optional": true,
@@ -4722,7 +4735,7 @@
4722
4735
  "immutable": true,
4723
4736
  "locationInModule": {
4724
4737
  "filename": "lib/job.ts",
4725
- "line": 422
4738
+ "line": 442
4726
4739
  },
4727
4740
  "name": "logStreamPrefix",
4728
4741
  "optional": true,
@@ -4740,7 +4753,7 @@
4740
4753
  "immutable": true,
4741
4754
  "locationInModule": {
4742
4755
  "filename": "lib/job.ts",
4743
- "line": 429
4756
+ "line": 449
4744
4757
  },
4745
4758
  "name": "quiet",
4746
4759
  "optional": true,
@@ -5102,6 +5115,381 @@
5102
5115
  ],
5103
5116
  "symbolId": "lib/data-format:DataFormatProps"
5104
5117
  },
5118
+ "@aws-cdk/aws-glue-alpha.DataQualityRuleset": {
5119
+ "assembly": "@aws-cdk/aws-glue-alpha",
5120
+ "base": "aws-cdk-lib.Resource",
5121
+ "docs": {
5122
+ "stability": "experimental",
5123
+ "summary": "A Glue Data Quality ruleset.",
5124
+ "example": "new glue.DataQualityRuleset(this, 'MyDataQualityRuleset', {\n clientToken: 'client_token',\n description: 'description',\n rulesetName: 'ruleset_name',\n rulesetDqdl: 'ruleset_dqdl',\n tags: {\n key1: 'value1',\n key2: 'value2',\n },\n targetTable: new glue.DataQualityTargetTable('database_name', 'table_name'),\n});",
5125
+ "custom": {
5126
+ "exampleMetadata": "infused"
5127
+ }
5128
+ },
5129
+ "fqn": "@aws-cdk/aws-glue-alpha.DataQualityRuleset",
5130
+ "initializer": {
5131
+ "docs": {
5132
+ "stability": "experimental"
5133
+ },
5134
+ "locationInModule": {
5135
+ "filename": "lib/data-quality-ruleset.ts",
5136
+ "line": 121
5137
+ },
5138
+ "parameters": [
5139
+ {
5140
+ "name": "scope",
5141
+ "type": {
5142
+ "fqn": "constructs.Construct"
5143
+ }
5144
+ },
5145
+ {
5146
+ "name": "id",
5147
+ "type": {
5148
+ "primitive": "string"
5149
+ }
5150
+ },
5151
+ {
5152
+ "name": "props",
5153
+ "type": {
5154
+ "fqn": "@aws-cdk/aws-glue-alpha.DataQualityRulesetProps"
5155
+ }
5156
+ }
5157
+ ]
5158
+ },
5159
+ "interfaces": [
5160
+ "@aws-cdk/aws-glue-alpha.IDataQualityRuleset"
5161
+ ],
5162
+ "kind": "class",
5163
+ "locationInModule": {
5164
+ "filename": "lib/data-quality-ruleset.ts",
5165
+ "line": 84
5166
+ },
5167
+ "methods": [
5168
+ {
5169
+ "docs": {
5170
+ "stability": "experimental"
5171
+ },
5172
+ "locationInModule": {
5173
+ "filename": "lib/data-quality-ruleset.ts",
5174
+ "line": 85
5175
+ },
5176
+ "name": "fromRulesetArn",
5177
+ "parameters": [
5178
+ {
5179
+ "name": "scope",
5180
+ "type": {
5181
+ "fqn": "constructs.Construct"
5182
+ }
5183
+ },
5184
+ {
5185
+ "name": "id",
5186
+ "type": {
5187
+ "primitive": "string"
5188
+ }
5189
+ },
5190
+ {
5191
+ "name": "rulesetArn",
5192
+ "type": {
5193
+ "primitive": "string"
5194
+ }
5195
+ }
5196
+ ],
5197
+ "returns": {
5198
+ "type": {
5199
+ "fqn": "@aws-cdk/aws-glue-alpha.IDataQualityRuleset"
5200
+ }
5201
+ },
5202
+ "static": true
5203
+ },
5204
+ {
5205
+ "docs": {
5206
+ "stability": "experimental"
5207
+ },
5208
+ "locationInModule": {
5209
+ "filename": "lib/data-quality-ruleset.ts",
5210
+ "line": 94
5211
+ },
5212
+ "name": "fromRulesetName",
5213
+ "parameters": [
5214
+ {
5215
+ "name": "scope",
5216
+ "type": {
5217
+ "fqn": "constructs.Construct"
5218
+ }
5219
+ },
5220
+ {
5221
+ "name": "id",
5222
+ "type": {
5223
+ "primitive": "string"
5224
+ }
5225
+ },
5226
+ {
5227
+ "name": "rulesetName",
5228
+ "type": {
5229
+ "primitive": "string"
5230
+ }
5231
+ }
5232
+ ],
5233
+ "returns": {
5234
+ "type": {
5235
+ "fqn": "@aws-cdk/aws-glue-alpha.IDataQualityRuleset"
5236
+ }
5237
+ },
5238
+ "static": true
5239
+ }
5240
+ ],
5241
+ "name": "DataQualityRuleset",
5242
+ "properties": [
5243
+ {
5244
+ "docs": {
5245
+ "stability": "experimental",
5246
+ "summary": "ARN of this ruleset."
5247
+ },
5248
+ "immutable": true,
5249
+ "locationInModule": {
5250
+ "filename": "lib/data-quality-ruleset.ts",
5251
+ "line": 119
5252
+ },
5253
+ "name": "rulesetArn",
5254
+ "overrides": "@aws-cdk/aws-glue-alpha.IDataQualityRuleset",
5255
+ "type": {
5256
+ "primitive": "string"
5257
+ }
5258
+ },
5259
+ {
5260
+ "docs": {
5261
+ "stability": "experimental",
5262
+ "summary": "Name of this ruleset."
5263
+ },
5264
+ "immutable": true,
5265
+ "locationInModule": {
5266
+ "filename": "lib/data-quality-ruleset.ts",
5267
+ "line": 114
5268
+ },
5269
+ "name": "rulesetName",
5270
+ "overrides": "@aws-cdk/aws-glue-alpha.IDataQualityRuleset",
5271
+ "type": {
5272
+ "primitive": "string"
5273
+ }
5274
+ }
5275
+ ],
5276
+ "symbolId": "lib/data-quality-ruleset:DataQualityRuleset"
5277
+ },
5278
+ "@aws-cdk/aws-glue-alpha.DataQualityRulesetProps": {
5279
+ "assembly": "@aws-cdk/aws-glue-alpha",
5280
+ "datatype": true,
5281
+ "docs": {
5282
+ "stability": "experimental",
5283
+ "summary": "Construction properties for `DataQualityRuleset`.",
5284
+ "example": "new glue.DataQualityRuleset(this, 'MyDataQualityRuleset', {\n clientToken: 'client_token',\n description: 'description',\n rulesetName: 'ruleset_name',\n rulesetDqdl: 'ruleset_dqdl',\n tags: {\n key1: 'value1',\n key2: 'value2',\n },\n targetTable: new glue.DataQualityTargetTable('database_name', 'table_name'),\n});",
5285
+ "custom": {
5286
+ "exampleMetadata": "infused"
5287
+ }
5288
+ },
5289
+ "fqn": "@aws-cdk/aws-glue-alpha.DataQualityRulesetProps",
5290
+ "kind": "interface",
5291
+ "locationInModule": {
5292
+ "filename": "lib/data-quality-ruleset.ts",
5293
+ "line": 43
5294
+ },
5295
+ "name": "DataQualityRulesetProps",
5296
+ "properties": [
5297
+ {
5298
+ "abstract": true,
5299
+ "docs": {
5300
+ "custom": {
5301
+ "attribute": "true"
5302
+ },
5303
+ "stability": "experimental",
5304
+ "summary": "The dqdl of the ruleset."
5305
+ },
5306
+ "immutable": true,
5307
+ "locationInModule": {
5308
+ "filename": "lib/data-quality-ruleset.ts",
5309
+ "line": 66
5310
+ },
5311
+ "name": "rulesetDqdl",
5312
+ "type": {
5313
+ "primitive": "string"
5314
+ }
5315
+ },
5316
+ {
5317
+ "abstract": true,
5318
+ "docs": {
5319
+ "custom": {
5320
+ "attribute": "true"
5321
+ },
5322
+ "stability": "experimental",
5323
+ "summary": "The target table of the ruleset."
5324
+ },
5325
+ "immutable": true,
5326
+ "locationInModule": {
5327
+ "filename": "lib/data-quality-ruleset.ts",
5328
+ "line": 78
5329
+ },
5330
+ "name": "targetTable",
5331
+ "type": {
5332
+ "fqn": "@aws-cdk/aws-glue-alpha.DataQualityTargetTable"
5333
+ }
5334
+ },
5335
+ {
5336
+ "abstract": true,
5337
+ "docs": {
5338
+ "custom": {
5339
+ "attribute": "true"
5340
+ },
5341
+ "stability": "experimental",
5342
+ "summary": "The client token of the ruleset."
5343
+ },
5344
+ "immutable": true,
5345
+ "locationInModule": {
5346
+ "filename": "lib/data-quality-ruleset.ts",
5347
+ "line": 54
5348
+ },
5349
+ "name": "clientToken",
5350
+ "optional": true,
5351
+ "type": {
5352
+ "primitive": "string"
5353
+ }
5354
+ },
5355
+ {
5356
+ "abstract": true,
5357
+ "docs": {
5358
+ "custom": {
5359
+ "attribute": "true"
5360
+ },
5361
+ "stability": "experimental",
5362
+ "summary": "The description of the ruleset."
5363
+ },
5364
+ "immutable": true,
5365
+ "locationInModule": {
5366
+ "filename": "lib/data-quality-ruleset.ts",
5367
+ "line": 60
5368
+ },
5369
+ "name": "description",
5370
+ "optional": true,
5371
+ "type": {
5372
+ "primitive": "string"
5373
+ }
5374
+ },
5375
+ {
5376
+ "abstract": true,
5377
+ "docs": {
5378
+ "default": "cloudformation generated name",
5379
+ "stability": "experimental",
5380
+ "summary": "The name of the ruleset."
5381
+ },
5382
+ "immutable": true,
5383
+ "locationInModule": {
5384
+ "filename": "lib/data-quality-ruleset.ts",
5385
+ "line": 48
5386
+ },
5387
+ "name": "rulesetName",
5388
+ "optional": true,
5389
+ "type": {
5390
+ "primitive": "string"
5391
+ }
5392
+ },
5393
+ {
5394
+ "abstract": true,
5395
+ "docs": {
5396
+ "default": "empty tags",
5397
+ "stability": "experimental",
5398
+ "summary": "Key-Value pairs that define tags for the ruleset."
5399
+ },
5400
+ "immutable": true,
5401
+ "locationInModule": {
5402
+ "filename": "lib/data-quality-ruleset.ts",
5403
+ "line": 72
5404
+ },
5405
+ "name": "tags",
5406
+ "optional": true,
5407
+ "type": {
5408
+ "collection": {
5409
+ "elementtype": {
5410
+ "primitive": "string"
5411
+ },
5412
+ "kind": "map"
5413
+ }
5414
+ }
5415
+ }
5416
+ ],
5417
+ "symbolId": "lib/data-quality-ruleset:DataQualityRulesetProps"
5418
+ },
5419
+ "@aws-cdk/aws-glue-alpha.DataQualityTargetTable": {
5420
+ "assembly": "@aws-cdk/aws-glue-alpha",
5421
+ "docs": {
5422
+ "stability": "experimental",
5423
+ "summary": "Properties of a DataQualityTargetTable.",
5424
+ "example": "new glue.DataQualityRuleset(this, 'MyDataQualityRuleset', {\n clientToken: 'client_token',\n description: 'description',\n rulesetName: 'ruleset_name',\n rulesetDqdl: 'ruleset_dqdl',\n tags: {\n key1: 'value1',\n key2: 'value2',\n },\n targetTable: new glue.DataQualityTargetTable('database_name', 'table_name'),\n});",
5425
+ "custom": {
5426
+ "exampleMetadata": "infused"
5427
+ }
5428
+ },
5429
+ "fqn": "@aws-cdk/aws-glue-alpha.DataQualityTargetTable",
5430
+ "initializer": {
5431
+ "docs": {
5432
+ "stability": "experimental"
5433
+ },
5434
+ "locationInModule": {
5435
+ "filename": "lib/data-quality-ruleset.ts",
5436
+ "line": 20
5437
+ },
5438
+ "parameters": [
5439
+ {
5440
+ "name": "databaseName",
5441
+ "type": {
5442
+ "primitive": "string"
5443
+ }
5444
+ },
5445
+ {
5446
+ "name": "tableName",
5447
+ "type": {
5448
+ "primitive": "string"
5449
+ }
5450
+ }
5451
+ ]
5452
+ },
5453
+ "kind": "class",
5454
+ "locationInModule": {
5455
+ "filename": "lib/data-quality-ruleset.ts",
5456
+ "line": 9
5457
+ },
5458
+ "name": "DataQualityTargetTable",
5459
+ "properties": [
5460
+ {
5461
+ "docs": {
5462
+ "stability": "experimental",
5463
+ "summary": "The database name of the target table."
5464
+ },
5465
+ "immutable": true,
5466
+ "locationInModule": {
5467
+ "filename": "lib/data-quality-ruleset.ts",
5468
+ "line": 13
5469
+ },
5470
+ "name": "databaseName",
5471
+ "type": {
5472
+ "primitive": "string"
5473
+ }
5474
+ },
5475
+ {
5476
+ "docs": {
5477
+ "stability": "experimental",
5478
+ "summary": "The table name of the target table."
5479
+ },
5480
+ "immutable": true,
5481
+ "locationInModule": {
5482
+ "filename": "lib/data-quality-ruleset.ts",
5483
+ "line": 18
5484
+ },
5485
+ "name": "tableName",
5486
+ "type": {
5487
+ "primitive": "string"
5488
+ }
5489
+ }
5490
+ ],
5491
+ "symbolId": "lib/data-quality-ruleset:DataQualityTargetTable"
5492
+ },
5105
5493
  "@aws-cdk/aws-glue-alpha.Database": {
5106
5494
  "assembly": "@aws-cdk/aws-glue-alpha",
5107
5495
  "base": "aws-cdk-lib.Resource",
@@ -5333,13 +5721,45 @@
5333
5721
  ],
5334
5722
  "symbolId": "lib/database:DatabaseProps"
5335
5723
  },
5724
+ "@aws-cdk/aws-glue-alpha.ExecutionClass": {
5725
+ "assembly": "@aws-cdk/aws-glue-alpha",
5726
+ "docs": {
5727
+ "see": "https://docs.aws.amazon.com/glue/latest/dg/add-job.html",
5728
+ "stability": "experimental",
5729
+ "summary": "The ExecutionClass whether the job is run with a standard or flexible execution class."
5730
+ },
5731
+ "fqn": "@aws-cdk/aws-glue-alpha.ExecutionClass",
5732
+ "kind": "enum",
5733
+ "locationInModule": {
5734
+ "filename": "lib/job.ts",
5735
+ "line": 138
5736
+ },
5737
+ "members": [
5738
+ {
5739
+ "docs": {
5740
+ "stability": "experimental",
5741
+ "summary": "The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary."
5742
+ },
5743
+ "name": "FLEX"
5744
+ },
5745
+ {
5746
+ "docs": {
5747
+ "stability": "experimental",
5748
+ "summary": "The standard execution class is ideal for time-sensitive workloads that require fast job startup and dedicated resources."
5749
+ },
5750
+ "name": "STANDARD"
5751
+ }
5752
+ ],
5753
+ "name": "ExecutionClass",
5754
+ "symbolId": "lib/job:ExecutionClass"
5755
+ },
5336
5756
  "@aws-cdk/aws-glue-alpha.GlueVersion": {
5337
5757
  "assembly": "@aws-cdk/aws-glue-alpha",
5338
5758
  "docs": {
5339
5759
  "see": "https://docs.aws.amazon.com/glue/latest/dg/add-job.html.\n\nIf you need to use a GlueVersion that doesn't exist as a static member, you\ncan instantiate a `GlueVersion` object, e.g: `GlueVersion.of('1.5')`.",
5340
5760
  "stability": "experimental",
5341
5761
  "summary": "AWS Glue version determines the versions of Apache Spark and Python that are available to the job.",
5342
- "example": "new glue.Job(this, 'PythonSparkStreamingJob', {\n executable: glue.JobExecutable.pythonStreaming({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n description: 'an example Python Streaming job',\n});",
5762
+ "example": "declare const bucket: s3.Bucket;\nnew glue.Job(this, 'ScalaSparkEtlJob', {\n executable: glue.JobExecutable.scalaEtl({\n glueVersion: glue.GlueVersion.V4_0,\n script: glue.Code.fromBucket(bucket, 'src/com/example/HelloWorld.scala'),\n className: 'com.example.HelloWorld',\n extraJars: [glue.Code.fromBucket(bucket, 'jars/HelloWorld.jar')],\n }),\n workerType: glue.WorkerType.G_8X,\n description: 'an example Scala ETL job',\n});",
5343
5763
  "custom": {
5344
5764
  "exampleMetadata": "infused"
5345
5765
  }
@@ -5488,19 +5908,76 @@
5488
5908
  "@aws-cdk/aws-glue-alpha.IConnection": {
5489
5909
  "assembly": "@aws-cdk/aws-glue-alpha",
5490
5910
  "docs": {
5491
- "stability": "experimental",
5492
- "summary": "Interface representing a created or an imported `Connection`."
5911
+ "stability": "experimental",
5912
+ "summary": "Interface representing a created or an imported `Connection`."
5913
+ },
5914
+ "fqn": "@aws-cdk/aws-glue-alpha.IConnection",
5915
+ "interfaces": [
5916
+ "aws-cdk-lib.IResource"
5917
+ ],
5918
+ "kind": "interface",
5919
+ "locationInModule": {
5920
+ "filename": "lib/connection.ts",
5921
+ "line": 54
5922
+ },
5923
+ "name": "IConnection",
5924
+ "properties": [
5925
+ {
5926
+ "abstract": true,
5927
+ "docs": {
5928
+ "custom": {
5929
+ "attribute": "true"
5930
+ },
5931
+ "stability": "experimental",
5932
+ "summary": "The ARN of the connection."
5933
+ },
5934
+ "immutable": true,
5935
+ "locationInModule": {
5936
+ "filename": "lib/connection.ts",
5937
+ "line": 65
5938
+ },
5939
+ "name": "connectionArn",
5940
+ "type": {
5941
+ "primitive": "string"
5942
+ }
5943
+ },
5944
+ {
5945
+ "abstract": true,
5946
+ "docs": {
5947
+ "custom": {
5948
+ "attribute": "true"
5949
+ },
5950
+ "stability": "experimental",
5951
+ "summary": "The name of the connection."
5952
+ },
5953
+ "immutable": true,
5954
+ "locationInModule": {
5955
+ "filename": "lib/connection.ts",
5956
+ "line": 59
5957
+ },
5958
+ "name": "connectionName",
5959
+ "type": {
5960
+ "primitive": "string"
5961
+ }
5962
+ }
5963
+ ],
5964
+ "symbolId": "lib/connection:IConnection"
5965
+ },
5966
+ "@aws-cdk/aws-glue-alpha.IDataQualityRuleset": {
5967
+ "assembly": "@aws-cdk/aws-glue-alpha",
5968
+ "docs": {
5969
+ "stability": "experimental"
5493
5970
  },
5494
- "fqn": "@aws-cdk/aws-glue-alpha.IConnection",
5971
+ "fqn": "@aws-cdk/aws-glue-alpha.IDataQualityRuleset",
5495
5972
  "interfaces": [
5496
5973
  "aws-cdk-lib.IResource"
5497
5974
  ],
5498
5975
  "kind": "interface",
5499
5976
  "locationInModule": {
5500
- "filename": "lib/connection.ts",
5501
- "line": 54
5977
+ "filename": "lib/data-quality-ruleset.ts",
5978
+ "line": 26
5502
5979
  },
5503
- "name": "IConnection",
5980
+ "name": "IDataQualityRuleset",
5504
5981
  "properties": [
5505
5982
  {
5506
5983
  "abstract": true,
@@ -5509,14 +5986,14 @@
5509
5986
  "attribute": "true"
5510
5987
  },
5511
5988
  "stability": "experimental",
5512
- "summary": "The ARN of the connection."
5989
+ "summary": "The ARN of the ruleset."
5513
5990
  },
5514
5991
  "immutable": true,
5515
5992
  "locationInModule": {
5516
- "filename": "lib/connection.ts",
5517
- "line": 65
5993
+ "filename": "lib/data-quality-ruleset.ts",
5994
+ "line": 31
5518
5995
  },
5519
- "name": "connectionArn",
5996
+ "name": "rulesetArn",
5520
5997
  "type": {
5521
5998
  "primitive": "string"
5522
5999
  }
@@ -5528,20 +6005,20 @@
5528
6005
  "attribute": "true"
5529
6006
  },
5530
6007
  "stability": "experimental",
5531
- "summary": "The name of the connection."
6008
+ "summary": "The name of the ruleset."
5532
6009
  },
5533
6010
  "immutable": true,
5534
6011
  "locationInModule": {
5535
- "filename": "lib/connection.ts",
5536
- "line": 59
6012
+ "filename": "lib/data-quality-ruleset.ts",
6013
+ "line": 37
5537
6014
  },
5538
- "name": "connectionName",
6015
+ "name": "rulesetName",
5539
6016
  "type": {
5540
6017
  "primitive": "string"
5541
6018
  }
5542
6019
  }
5543
6020
  ],
5544
- "symbolId": "lib/connection:IConnection"
6021
+ "symbolId": "lib/data-quality-ruleset:IDataQualityRuleset"
5545
6022
  },
5546
6023
  "@aws-cdk/aws-glue-alpha.IDatabase": {
5547
6024
  "assembly": "@aws-cdk/aws-glue-alpha",
@@ -5646,7 +6123,7 @@
5646
6123
  "kind": "interface",
5647
6124
  "locationInModule": {
5648
6125
  "filename": "lib/job.ts",
5649
- "line": 135
6126
+ "line": 155
5650
6127
  },
5651
6128
  "methods": [
5652
6129
  {
@@ -5658,7 +6135,7 @@
5658
6135
  },
5659
6136
  "locationInModule": {
5660
6137
  "filename": "lib/job.ts",
5661
- "line": 192
6138
+ "line": 212
5662
6139
  },
5663
6140
  "name": "metric",
5664
6141
  "parameters": [
@@ -5705,7 +6182,7 @@
5705
6182
  },
5706
6183
  "locationInModule": {
5707
6184
  "filename": "lib/job.ts",
5708
- "line": 202
6185
+ "line": 222
5709
6186
  },
5710
6187
  "name": "metricFailure",
5711
6188
  "parameters": [
@@ -5731,7 +6208,7 @@
5731
6208
  },
5732
6209
  "locationInModule": {
5733
6210
  "filename": "lib/job.ts",
5734
- "line": 197
6211
+ "line": 217
5735
6212
  },
5736
6213
  "name": "metricSuccess",
5737
6214
  "parameters": [
@@ -5757,7 +6234,7 @@
5757
6234
  },
5758
6235
  "locationInModule": {
5759
6236
  "filename": "lib/job.ts",
5760
- "line": 207
6237
+ "line": 227
5761
6238
  },
5762
6239
  "name": "metricTimeout",
5763
6240
  "parameters": [
@@ -5784,7 +6261,7 @@
5784
6261
  },
5785
6262
  "locationInModule": {
5786
6263
  "filename": "lib/job.ts",
5787
- "line": 153
6264
+ "line": 173
5788
6265
  },
5789
6266
  "name": "onEvent",
5790
6267
  "parameters": [
@@ -5817,7 +6294,7 @@
5817
6294
  },
5818
6295
  "locationInModule": {
5819
6296
  "filename": "lib/job.ts",
5820
- "line": 174
6297
+ "line": 194
5821
6298
  },
5822
6299
  "name": "onFailure",
5823
6300
  "parameters": [
@@ -5850,7 +6327,7 @@
5850
6327
  },
5851
6328
  "locationInModule": {
5852
6329
  "filename": "lib/job.ts",
5853
- "line": 160
6330
+ "line": 180
5854
6331
  },
5855
6332
  "name": "onStateChange",
5856
6333
  "parameters": [
@@ -5889,7 +6366,7 @@
5889
6366
  },
5890
6367
  "locationInModule": {
5891
6368
  "filename": "lib/job.ts",
5892
- "line": 167
6369
+ "line": 187
5893
6370
  },
5894
6371
  "name": "onSuccess",
5895
6372
  "parameters": [
@@ -5922,7 +6399,7 @@
5922
6399
  },
5923
6400
  "locationInModule": {
5924
6401
  "filename": "lib/job.ts",
5925
- "line": 181
6402
+ "line": 201
5926
6403
  },
5927
6404
  "name": "onTimeout",
5928
6405
  "parameters": [
@@ -5961,7 +6438,7 @@
5961
6438
  "immutable": true,
5962
6439
  "locationInModule": {
5963
6440
  "filename": "lib/job.ts",
5964
- "line": 146
6441
+ "line": 166
5965
6442
  },
5966
6443
  "name": "jobArn",
5967
6444
  "type": {
@@ -5980,7 +6457,7 @@
5980
6457
  "immutable": true,
5981
6458
  "locationInModule": {
5982
6459
  "filename": "lib/job.ts",
5983
- "line": 140
6460
+ "line": 160
5984
6461
  },
5985
6462
  "name": "jobName",
5986
6463
  "type": {
@@ -6233,7 +6710,7 @@
6233
6710
  "docs": {
6234
6711
  "stability": "experimental",
6235
6712
  "summary": "A Glue Job.",
6236
- "example": "new glue.Job(this, 'PythonSparkStreamingJob', {\n executable: glue.JobExecutable.pythonStreaming({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n description: 'an example Python Streaming job',\n});",
6713
+ "example": "declare const bucket: s3.Bucket;\nnew glue.Job(this, 'ScalaSparkEtlJob', {\n executable: glue.JobExecutable.scalaEtl({\n glueVersion: glue.GlueVersion.V4_0,\n script: glue.Code.fromBucket(bucket, 'src/com/example/HelloWorld.scala'),\n className: 'com.example.HelloWorld',\n extraJars: [glue.Code.fromBucket(bucket, 'jars/HelloWorld.jar')],\n }),\n workerType: glue.WorkerType.G_8X,\n description: 'an example Scala ETL job',\n});",
6237
6714
  "custom": {
6238
6715
  "exampleMetadata": "infused"
6239
6716
  }
@@ -6245,7 +6722,7 @@
6245
6722
  },
6246
6723
  "locationInModule": {
6247
6724
  "filename": "lib/job.ts",
6248
- "line": 654
6725
+ "line": 684
6249
6726
  },
6250
6727
  "parameters": [
6251
6728
  {
@@ -6274,7 +6751,7 @@
6274
6751
  "kind": "class",
6275
6752
  "locationInModule": {
6276
6753
  "filename": "lib/job.ts",
6277
- "line": 608
6754
+ "line": 638
6278
6755
  },
6279
6756
  "methods": [
6280
6757
  {
@@ -6284,7 +6761,7 @@
6284
6761
  },
6285
6762
  "locationInModule": {
6286
6763
  "filename": "lib/job.ts",
6287
- "line": 616
6764
+ "line": 646
6288
6765
  },
6289
6766
  "name": "fromJobAttributes",
6290
6767
  "parameters": [
@@ -6331,7 +6808,7 @@
6331
6808
  },
6332
6809
  "locationInModule": {
6333
6810
  "filename": "lib/job.ts",
6334
- "line": 299
6811
+ "line": 319
6335
6812
  },
6336
6813
  "name": "metric",
6337
6814
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6379,7 +6856,7 @@
6379
6856
  },
6380
6857
  "locationInModule": {
6381
6858
  "filename": "lib/job.ts",
6382
- "line": 326
6859
+ "line": 346
6383
6860
  },
6384
6861
  "name": "metricFailure",
6385
6862
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6406,7 +6883,7 @@
6406
6883
  },
6407
6884
  "locationInModule": {
6408
6885
  "filename": "lib/job.ts",
6409
- "line": 317
6886
+ "line": 337
6410
6887
  },
6411
6888
  "name": "metricSuccess",
6412
6889
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6433,7 +6910,7 @@
6433
6910
  },
6434
6911
  "locationInModule": {
6435
6912
  "filename": "lib/job.ts",
6436
- "line": 335
6913
+ "line": 355
6437
6914
  },
6438
6915
  "name": "metricTimeout",
6439
6916
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6460,7 +6937,7 @@
6460
6937
  },
6461
6938
  "locationInModule": {
6462
6939
  "filename": "lib/job.ts",
6463
- "line": 227
6940
+ "line": 247
6464
6941
  },
6465
6942
  "name": "onEvent",
6466
6943
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6499,7 +6976,7 @@
6499
6976
  },
6500
6977
  "locationInModule": {
6501
6978
  "filename": "lib/job.ts",
6502
- "line": 276
6979
+ "line": 296
6503
6980
  },
6504
6981
  "name": "onFailure",
6505
6982
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6538,7 +7015,7 @@
6538
7015
  },
6539
7016
  "locationInModule": {
6540
7017
  "filename": "lib/job.ts",
6541
- "line": 247
7018
+ "line": 267
6542
7019
  },
6543
7020
  "name": "onStateChange",
6544
7021
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6585,7 +7062,7 @@
6585
7062
  },
6586
7063
  "locationInModule": {
6587
7064
  "filename": "lib/job.ts",
6588
- "line": 266
7065
+ "line": 286
6589
7066
  },
6590
7067
  "name": "onSuccess",
6591
7068
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6624,7 +7101,7 @@
6624
7101
  },
6625
7102
  "locationInModule": {
6626
7103
  "filename": "lib/job.ts",
6627
- "line": 286
7104
+ "line": 306
6628
7105
  },
6629
7106
  "name": "onTimeout",
6630
7107
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6667,7 +7144,7 @@
6667
7144
  "immutable": true,
6668
7145
  "locationInModule": {
6669
7146
  "filename": "lib/job.ts",
6670
- "line": 644
7147
+ "line": 674
6671
7148
  },
6672
7149
  "name": "grantPrincipal",
6673
7150
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -6683,7 +7160,7 @@
6683
7160
  "immutable": true,
6684
7161
  "locationInModule": {
6685
7162
  "filename": "lib/job.ts",
6686
- "line": 629
7163
+ "line": 659
6687
7164
  },
6688
7165
  "name": "jobArn",
6689
7166
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6699,7 +7176,7 @@
6699
7176
  "immutable": true,
6700
7177
  "locationInModule": {
6701
7178
  "filename": "lib/job.ts",
6702
- "line": 634
7179
+ "line": 664
6703
7180
  },
6704
7181
  "name": "jobName",
6705
7182
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6715,7 +7192,7 @@
6715
7192
  "immutable": true,
6716
7193
  "locationInModule": {
6717
7194
  "filename": "lib/job.ts",
6718
- "line": 639
7195
+ "line": 669
6719
7196
  },
6720
7197
  "name": "role",
6721
7198
  "type": {
@@ -6731,7 +7208,7 @@
6731
7208
  "immutable": true,
6732
7209
  "locationInModule": {
6733
7210
  "filename": "lib/job.ts",
6734
- "line": 652
7211
+ "line": 682
6735
7212
  },
6736
7213
  "name": "sparkUILoggingLocation",
6737
7214
  "optional": true,
@@ -6757,7 +7234,7 @@
6757
7234
  "kind": "interface",
6758
7235
  "locationInModule": {
6759
7236
  "filename": "lib/job.ts",
6760
- "line": 444
7237
+ "line": 464
6761
7238
  },
6762
7239
  "name": "JobAttributes",
6763
7240
  "properties": [
@@ -6770,7 +7247,7 @@
6770
7247
  "immutable": true,
6771
7248
  "locationInModule": {
6772
7249
  "filename": "lib/job.ts",
6773
- "line": 448
7250
+ "line": 468
6774
7251
  },
6775
7252
  "name": "jobName",
6776
7253
  "type": {
@@ -6787,7 +7264,7 @@
6787
7264
  "immutable": true,
6788
7265
  "locationInModule": {
6789
7266
  "filename": "lib/job.ts",
6790
- "line": 455
7267
+ "line": 475
6791
7268
  },
6792
7269
  "name": "role",
6793
7270
  "optional": true,
@@ -6889,7 +7366,7 @@
6889
7366
  "docs": {
6890
7367
  "stability": "experimental",
6891
7368
  "summary": "The executable properties related to the Glue job's GlueVersion, JobType and code.",
6892
- "example": "new glue.Job(this, 'PythonSparkStreamingJob', {\n executable: glue.JobExecutable.pythonStreaming({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n description: 'an example Python Streaming job',\n});",
7369
+ "example": "declare const bucket: s3.Bucket;\nnew glue.Job(this, 'ScalaSparkEtlJob', {\n executable: glue.JobExecutable.scalaEtl({\n glueVersion: glue.GlueVersion.V4_0,\n script: glue.Code.fromBucket(bucket, 'src/com/example/HelloWorld.scala'),\n className: 'com.example.HelloWorld',\n extraJars: [glue.Code.fromBucket(bucket, 'jars/HelloWorld.jar')],\n }),\n workerType: glue.WorkerType.G_8X,\n description: 'an example Scala ETL job',\n});",
6893
7370
  "custom": {
6894
7371
  "exampleMetadata": "infused"
6895
7372
  }
@@ -6898,7 +7375,7 @@
6898
7375
  "kind": "class",
6899
7376
  "locationInModule": {
6900
7377
  "filename": "lib/job-executable.ts",
6901
- "line": 227
7378
+ "line": 261
6902
7379
  },
6903
7380
  "methods": [
6904
7381
  {
@@ -6908,7 +7385,7 @@
6908
7385
  },
6909
7386
  "locationInModule": {
6910
7387
  "filename": "lib/job-executable.ts",
6911
- "line": 312
7388
+ "line": 346
6912
7389
  },
6913
7390
  "name": "of",
6914
7391
  "parameters": [
@@ -6936,7 +7413,7 @@
6936
7413
  },
6937
7414
  "locationInModule": {
6938
7415
  "filename": "lib/job-executable.ts",
6939
- "line": 260
7416
+ "line": 294
6940
7417
  },
6941
7418
  "name": "pythonEtl",
6942
7419
  "parameters": [
@@ -6964,7 +7441,7 @@
6964
7441
  },
6965
7442
  "locationInModule": {
6966
7443
  "filename": "lib/job-executable.ts",
6967
- "line": 299
7444
+ "line": 333
6968
7445
  },
6969
7446
  "name": "pythonRay",
6970
7447
  "parameters": [
@@ -6992,7 +7469,7 @@
6992
7469
  },
6993
7470
  "locationInModule": {
6994
7471
  "filename": "lib/job-executable.ts",
6995
- "line": 286
7472
+ "line": 320
6996
7473
  },
6997
7474
  "name": "pythonShell",
6998
7475
  "parameters": [
@@ -7020,7 +7497,7 @@
7020
7497
  },
7021
7498
  "locationInModule": {
7022
7499
  "filename": "lib/job-executable.ts",
7023
- "line": 273
7500
+ "line": 307
7024
7501
  },
7025
7502
  "name": "pythonStreaming",
7026
7503
  "parameters": [
@@ -7048,7 +7525,7 @@
7048
7525
  },
7049
7526
  "locationInModule": {
7050
7527
  "filename": "lib/job-executable.ts",
7051
- "line": 234
7528
+ "line": 268
7052
7529
  },
7053
7530
  "name": "scalaEtl",
7054
7531
  "parameters": [
@@ -7076,7 +7553,7 @@
7076
7553
  },
7077
7554
  "locationInModule": {
7078
7555
  "filename": "lib/job-executable.ts",
7079
- "line": 247
7556
+ "line": 281
7080
7557
  },
7081
7558
  "name": "scalaStreaming",
7082
7559
  "parameters": [
@@ -7104,7 +7581,7 @@
7104
7581
  },
7105
7582
  "locationInModule": {
7106
7583
  "filename": "lib/job-executable.ts",
7107
- "line": 356
7584
+ "line": 393
7108
7585
  },
7109
7586
  "name": "bind",
7110
7587
  "returns": {
@@ -7123,7 +7600,7 @@
7123
7600
  "docs": {
7124
7601
  "stability": "experimental",
7125
7602
  "summary": "Result of binding a `JobExecutable` into a `Job`.",
7126
- "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 code: glue_alpha.Code;\ndeclare const glueVersion: glue_alpha.GlueVersion;\ndeclare const jobType: glue_alpha.JobType;\nconst jobExecutableConfig: glue_alpha.JobExecutableConfig = {\n glueVersion: glueVersion,\n language: glue_alpha.JobLanguage.SCALA,\n script: code,\n type: jobType,\n\n // the properties below are optional\n className: 'className',\n extraFiles: [code],\n extraJars: [code],\n extraJarsFirst: false,\n extraPythonFiles: [code],\n pythonVersion: glue_alpha.PythonVersion.TWO,\n};",
7603
+ "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 code: glue_alpha.Code;\ndeclare const glueVersion: glue_alpha.GlueVersion;\ndeclare const jobType: glue_alpha.JobType;\ndeclare const runtime: glue_alpha.Runtime;\nconst jobExecutableConfig: glue_alpha.JobExecutableConfig = {\n glueVersion: glueVersion,\n language: glue_alpha.JobLanguage.SCALA,\n script: code,\n type: jobType,\n\n // the properties below are optional\n className: 'className',\n extraFiles: [code],\n extraJars: [code],\n extraJarsFirst: false,\n extraPythonFiles: [code],\n pythonVersion: glue_alpha.PythonVersion.TWO,\n runtime: runtime,\n};",
7127
7604
  "custom": {
7128
7605
  "exampleMetadata": "fixture=_generated"
7129
7606
  }
@@ -7132,7 +7609,7 @@
7132
7609
  "kind": "interface",
7133
7610
  "locationInModule": {
7134
7611
  "filename": "lib/job-executable.ts",
7135
- "line": 364
7612
+ "line": 401
7136
7613
  },
7137
7614
  "name": "JobExecutableConfig",
7138
7615
  "properties": [
@@ -7146,7 +7623,7 @@
7146
7623
  "immutable": true,
7147
7624
  "locationInModule": {
7148
7625
  "filename": "lib/job-executable.ts",
7149
- "line": 370
7626
+ "line": 407
7150
7627
  },
7151
7628
  "name": "glueVersion",
7152
7629
  "type": {
@@ -7163,7 +7640,7 @@
7163
7640
  "immutable": true,
7164
7641
  "locationInModule": {
7165
7642
  "filename": "lib/job-executable.ts",
7166
- "line": 377
7643
+ "line": 414
7167
7644
  },
7168
7645
  "name": "language",
7169
7646
  "type": {
@@ -7179,7 +7656,7 @@
7179
7656
  "immutable": true,
7180
7657
  "locationInModule": {
7181
7658
  "filename": "lib/job-executable.ts",
7182
- "line": 394
7659
+ "line": 438
7183
7660
  },
7184
7661
  "name": "script",
7185
7662
  "type": {
@@ -7195,7 +7672,7 @@
7195
7672
  "immutable": true,
7196
7673
  "locationInModule": {
7197
7674
  "filename": "lib/job-executable.ts",
7198
- "line": 382
7675
+ "line": 419
7199
7676
  },
7200
7677
  "name": "type",
7201
7678
  "type": {
@@ -7214,7 +7691,7 @@
7214
7691
  "immutable": true,
7215
7692
  "locationInModule": {
7216
7693
  "filename": "lib/job-executable.ts",
7217
- "line": 403
7694
+ "line": 447
7218
7695
  },
7219
7696
  "name": "className",
7220
7697
  "optional": true,
@@ -7233,7 +7710,7 @@
7233
7710
  "immutable": true,
7234
7711
  "locationInModule": {
7235
7712
  "filename": "lib/job-executable.ts",
7236
- "line": 430
7713
+ "line": 474
7237
7714
  },
7238
7715
  "name": "extraFiles",
7239
7716
  "optional": true,
@@ -7257,7 +7734,7 @@
7257
7734
  "immutable": true,
7258
7735
  "locationInModule": {
7259
7736
  "filename": "lib/job-executable.ts",
7260
- "line": 412
7737
+ "line": 456
7261
7738
  },
7262
7739
  "name": "extraJars",
7263
7740
  "optional": true,
@@ -7281,7 +7758,7 @@
7281
7758
  "immutable": true,
7282
7759
  "locationInModule": {
7283
7760
  "filename": "lib/job-executable.ts",
7284
- "line": 439
7761
+ "line": 483
7285
7762
  },
7286
7763
  "name": "extraJarsFirst",
7287
7764
  "optional": true,
@@ -7300,7 +7777,7 @@
7300
7777
  "immutable": true,
7301
7778
  "locationInModule": {
7302
7779
  "filename": "lib/job-executable.ts",
7303
- "line": 421
7780
+ "line": 465
7304
7781
  },
7305
7782
  "name": "extraPythonFiles",
7306
7783
  "optional": true,
@@ -7323,13 +7800,31 @@
7323
7800
  "immutable": true,
7324
7801
  "locationInModule": {
7325
7802
  "filename": "lib/job-executable.ts",
7326
- "line": 389
7803
+ "line": 426
7327
7804
  },
7328
7805
  "name": "pythonVersion",
7329
7806
  "optional": true,
7330
7807
  "type": {
7331
7808
  "fqn": "@aws-cdk/aws-glue-alpha.PythonVersion"
7332
7809
  }
7810
+ },
7811
+ {
7812
+ "abstract": true,
7813
+ "docs": {
7814
+ "default": "- no runtime specified",
7815
+ "stability": "experimental",
7816
+ "summary": "The Runtime to use."
7817
+ },
7818
+ "immutable": true,
7819
+ "locationInModule": {
7820
+ "filename": "lib/job-executable.ts",
7821
+ "line": 433
7822
+ },
7823
+ "name": "runtime",
7824
+ "optional": true,
7825
+ "type": {
7826
+ "fqn": "@aws-cdk/aws-glue-alpha.Runtime"
7827
+ }
7333
7828
  }
7334
7829
  ],
7335
7830
  "symbolId": "lib/job-executable:JobExecutableConfig"
@@ -7371,7 +7866,7 @@
7371
7866
  "docs": {
7372
7867
  "stability": "experimental",
7373
7868
  "summary": "Construction properties for `Job`.",
7374
- "example": "new glue.Job(this, 'PythonSparkStreamingJob', {\n executable: glue.JobExecutable.pythonStreaming({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n description: 'an example Python Streaming job',\n});",
7869
+ "example": "declare const bucket: s3.Bucket;\nnew glue.Job(this, 'ScalaSparkEtlJob', {\n executable: glue.JobExecutable.scalaEtl({\n glueVersion: glue.GlueVersion.V4_0,\n script: glue.Code.fromBucket(bucket, 'src/com/example/HelloWorld.scala'),\n className: 'com.example.HelloWorld',\n extraJars: [glue.Code.fromBucket(bucket, 'jars/HelloWorld.jar')],\n }),\n workerType: glue.WorkerType.G_8X,\n description: 'an example Scala ETL job',\n});",
7375
7870
  "custom": {
7376
7871
  "exampleMetadata": "infused"
7377
7872
  }
@@ -7380,7 +7875,7 @@
7380
7875
  "kind": "interface",
7381
7876
  "locationInModule": {
7382
7877
  "filename": "lib/job.ts",
7383
- "line": 461
7878
+ "line": 481
7384
7879
  },
7385
7880
  "name": "JobProps",
7386
7881
  "properties": [
@@ -7393,7 +7888,7 @@
7393
7888
  "immutable": true,
7394
7889
  "locationInModule": {
7395
7890
  "filename": "lib/job.ts",
7396
- "line": 465
7891
+ "line": 485
7397
7892
  },
7398
7893
  "name": "executable",
7399
7894
  "type": {
@@ -7411,7 +7906,7 @@
7411
7906
  "immutable": true,
7412
7907
  "locationInModule": {
7413
7908
  "filename": "lib/job.ts",
7414
- "line": 540
7909
+ "line": 560
7415
7910
  },
7416
7911
  "name": "connections",
7417
7912
  "optional": true,
@@ -7435,7 +7930,7 @@
7435
7930
  "immutable": true,
7436
7931
  "locationInModule": {
7437
7932
  "filename": "lib/job.ts",
7438
- "line": 602
7933
+ "line": 622
7439
7934
  },
7440
7935
  "name": "continuousLogging",
7441
7936
  "optional": true,
@@ -7454,7 +7949,7 @@
7454
7949
  "immutable": true,
7455
7950
  "locationInModule": {
7456
7951
  "filename": "lib/job.ts",
7457
- "line": 555
7952
+ "line": 575
7458
7953
  },
7459
7954
  "name": "defaultArguments",
7460
7955
  "optional": true,
@@ -7477,7 +7972,7 @@
7477
7972
  "immutable": true,
7478
7973
  "locationInModule": {
7479
7974
  "filename": "lib/job.ts",
7480
- "line": 479
7975
+ "line": 499
7481
7976
  },
7482
7977
  "name": "description",
7483
7978
  "optional": true,
@@ -7496,7 +7991,7 @@
7496
7991
  "immutable": true,
7497
7992
  "locationInModule": {
7498
7993
  "filename": "lib/job.ts",
7499
- "line": 582
7994
+ "line": 602
7500
7995
  },
7501
7996
  "name": "enableProfilingMetrics",
7502
7997
  "optional": true,
@@ -7504,6 +7999,25 @@
7504
7999
  "primitive": "boolean"
7505
8000
  }
7506
8001
  },
8002
+ {
8003
+ "abstract": true,
8004
+ "docs": {
8005
+ "default": "- STANDARD",
8006
+ "see": "https://docs.aws.amazon.com/glue/latest/dg/add-job.html",
8007
+ "stability": "experimental",
8008
+ "summary": "The ExecutionClass whether the job is run with a standard or flexible execution class."
8009
+ },
8010
+ "immutable": true,
8011
+ "locationInModule": {
8012
+ "filename": "lib/job.ts",
8013
+ "line": 632
8014
+ },
8015
+ "name": "executionClass",
8016
+ "optional": true,
8017
+ "type": {
8018
+ "fqn": "@aws-cdk/aws-glue-alpha.ExecutionClass"
8019
+ }
8020
+ },
7507
8021
  {
7508
8022
  "abstract": true,
7509
8023
  "docs": {
@@ -7514,7 +8028,7 @@
7514
8028
  "immutable": true,
7515
8029
  "locationInModule": {
7516
8030
  "filename": "lib/job.ts",
7517
- "line": 472
8031
+ "line": 492
7518
8032
  },
7519
8033
  "name": "jobName",
7520
8034
  "optional": true,
@@ -7533,7 +8047,7 @@
7533
8047
  "immutable": true,
7534
8048
  "locationInModule": {
7535
8049
  "filename": "lib/job.ts",
7536
- "line": 487
8050
+ "line": 507
7537
8051
  },
7538
8052
  "name": "maxCapacity",
7539
8053
  "optional": true,
@@ -7552,7 +8066,7 @@
7552
8066
  "immutable": true,
7553
8067
  "locationInModule": {
7554
8068
  "filename": "lib/job.ts",
7555
- "line": 503
8069
+ "line": 523
7556
8070
  },
7557
8071
  "name": "maxConcurrentRuns",
7558
8072
  "optional": true,
@@ -7570,7 +8084,7 @@
7570
8084
  "immutable": true,
7571
8085
  "locationInModule": {
7572
8086
  "filename": "lib/job.ts",
7573
- "line": 494
8087
+ "line": 514
7574
8088
  },
7575
8089
  "name": "maxRetries",
7576
8090
  "optional": true,
@@ -7588,7 +8102,7 @@
7588
8102
  "immutable": true,
7589
8103
  "locationInModule": {
7590
8104
  "filename": "lib/job.ts",
7591
- "line": 510
8105
+ "line": 530
7592
8106
  },
7593
8107
  "name": "notifyDelayAfter",
7594
8108
  "optional": true,
@@ -7608,7 +8122,7 @@
7608
8122
  "immutable": true,
7609
8123
  "locationInModule": {
7610
8124
  "filename": "lib/job.ts",
7611
- "line": 573
8125
+ "line": 593
7612
8126
  },
7613
8127
  "name": "role",
7614
8128
  "optional": true,
@@ -7626,7 +8140,7 @@
7626
8140
  "immutable": true,
7627
8141
  "locationInModule": {
7628
8142
  "filename": "lib/job.ts",
7629
- "line": 547
8143
+ "line": 567
7630
8144
  },
7631
8145
  "name": "securityConfiguration",
7632
8146
  "optional": true,
@@ -7645,7 +8159,7 @@
7645
8159
  "immutable": true,
7646
8160
  "locationInModule": {
7647
8161
  "filename": "lib/job.ts",
7648
- "line": 592
8162
+ "line": 612
7649
8163
  },
7650
8164
  "name": "sparkUI",
7651
8165
  "optional": true,
@@ -7663,7 +8177,7 @@
7663
8177
  "immutable": true,
7664
8178
  "locationInModule": {
7665
8179
  "filename": "lib/job.ts",
7666
- "line": 562
8180
+ "line": 582
7667
8181
  },
7668
8182
  "name": "tags",
7669
8183
  "optional": true,
@@ -7686,7 +8200,7 @@
7686
8200
  "immutable": true,
7687
8201
  "locationInModule": {
7688
8202
  "filename": "lib/job.ts",
7689
- "line": 517
8203
+ "line": 537
7690
8204
  },
7691
8205
  "name": "timeout",
7692
8206
  "optional": true,
@@ -7704,7 +8218,7 @@
7704
8218
  "immutable": true,
7705
8219
  "locationInModule": {
7706
8220
  "filename": "lib/job.ts",
7707
- "line": 531
8221
+ "line": 551
7708
8222
  },
7709
8223
  "name": "workerCount",
7710
8224
  "optional": true,
@@ -7722,7 +8236,7 @@
7722
8236
  "immutable": true,
7723
8237
  "locationInModule": {
7724
8238
  "filename": "lib/job.ts",
7725
- "line": 524
8239
+ "line": 544
7726
8240
  },
7727
8241
  "name": "workerType",
7728
8242
  "optional": true,
@@ -7815,7 +8329,7 @@
7815
8329
  "kind": "class",
7816
8330
  "locationInModule": {
7817
8331
  "filename": "lib/job-executable.ts",
7818
- "line": 96
8332
+ "line": 124
7819
8333
  },
7820
8334
  "methods": [
7821
8335
  {
@@ -7825,7 +8339,7 @@
7825
8339
  },
7826
8340
  "locationInModule": {
7827
8341
  "filename": "lib/job-executable.ts",
7828
- "line": 121
8342
+ "line": 149
7829
8343
  },
7830
8344
  "name": "of",
7831
8345
  "parameters": [
@@ -7858,7 +8372,7 @@
7858
8372
  "immutable": true,
7859
8373
  "locationInModule": {
7860
8374
  "filename": "lib/job-executable.ts",
7861
- "line": 100
8375
+ "line": 128
7862
8376
  },
7863
8377
  "name": "ETL",
7864
8378
  "static": true,
@@ -7875,7 +8389,7 @@
7875
8389
  "immutable": true,
7876
8390
  "locationInModule": {
7877
8391
  "filename": "lib/job-executable.ts",
7878
- "line": 110
8392
+ "line": 138
7879
8393
  },
7880
8394
  "name": "PYTHON_SHELL",
7881
8395
  "static": true,
@@ -7892,7 +8406,7 @@
7892
8406
  "immutable": true,
7893
8407
  "locationInModule": {
7894
8408
  "filename": "lib/job-executable.ts",
7895
- "line": 115
8409
+ "line": 143
7896
8410
  },
7897
8411
  "name": "RAY",
7898
8412
  "static": true,
@@ -7909,7 +8423,7 @@
7909
8423
  "immutable": true,
7910
8424
  "locationInModule": {
7911
8425
  "filename": "lib/job-executable.ts",
7912
- "line": 105
8426
+ "line": 133
7913
8427
  },
7914
8428
  "name": "STREAMING",
7915
8429
  "static": true,
@@ -7925,7 +8439,7 @@
7925
8439
  "immutable": true,
7926
8440
  "locationInModule": {
7927
8441
  "filename": "lib/job-executable.ts",
7928
- "line": 128
8442
+ "line": 156
7929
8443
  },
7930
8444
  "name": "name",
7931
8445
  "type": {
@@ -8159,7 +8673,7 @@
8159
8673
  "docs": {
8160
8674
  "stability": "experimental",
8161
8675
  "summary": "Props for creating a Python Ray job executable.",
8162
- "example": "new glue.Job(this, 'RayJob', {\n executable: glue.JobExecutable.pythonRay({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE_NINE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n workerType: glue.WorkerType.Z_2X,\n workerCount: 2,\n description: 'an example Ray job'\n});",
8676
+ "example": "new glue.Job(this, 'RayJob', {\n executable: glue.JobExecutable.pythonRay({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE_NINE,\n runtime: glue.Runtime.RAY_TWO_FOUR,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n workerType: glue.WorkerType.Z_2X,\n workerCount: 2,\n description: 'an example Ray job'\n});",
8163
8677
  "custom": {
8164
8678
  "exampleMetadata": "infused"
8165
8679
  }
@@ -8168,7 +8682,7 @@
8168
8682
  "kind": "interface",
8169
8683
  "locationInModule": {
8170
8684
  "filename": "lib/job-executable.ts",
8171
- "line": 222
8685
+ "line": 256
8172
8686
  },
8173
8687
  "name": "PythonRayExecutableProps",
8174
8688
  "properties": [
@@ -8182,7 +8696,7 @@
8182
8696
  "immutable": true,
8183
8697
  "locationInModule": {
8184
8698
  "filename": "lib/job-executable.ts",
8185
- "line": 158
8699
+ "line": 192
8186
8700
  },
8187
8701
  "name": "glueVersion",
8188
8702
  "type": {
@@ -8198,7 +8712,7 @@
8198
8712
  "immutable": true,
8199
8713
  "locationInModule": {
8200
8714
  "filename": "lib/job-executable.ts",
8201
- "line": 139
8715
+ "line": 167
8202
8716
  },
8203
8717
  "name": "pythonVersion",
8204
8718
  "type": {
@@ -8214,7 +8728,7 @@
8214
8728
  "immutable": true,
8215
8729
  "locationInModule": {
8216
8730
  "filename": "lib/job-executable.ts",
8217
- "line": 163
8731
+ "line": 197
8218
8732
  },
8219
8733
  "name": "script",
8220
8734
  "type": {
@@ -8233,7 +8747,7 @@
8233
8747
  "immutable": true,
8234
8748
  "locationInModule": {
8235
8749
  "filename": "lib/job-executable.ts",
8236
- "line": 173
8750
+ "line": 207
8237
8751
  },
8238
8752
  "name": "extraFiles",
8239
8753
  "optional": true,
@@ -8258,7 +8772,7 @@
8258
8772
  "immutable": true,
8259
8773
  "locationInModule": {
8260
8774
  "filename": "lib/job-executable.ts",
8261
- "line": 149
8775
+ "line": 177
8262
8776
  },
8263
8777
  "name": "extraPythonFiles",
8264
8778
  "optional": true,
@@ -8270,6 +8784,24 @@
8270
8784
  "kind": "array"
8271
8785
  }
8272
8786
  }
8787
+ },
8788
+ {
8789
+ "abstract": true,
8790
+ "docs": {
8791
+ "remarks": "It is required for Ray jobs.",
8792
+ "stability": "experimental",
8793
+ "summary": "Runtime."
8794
+ },
8795
+ "immutable": true,
8796
+ "locationInModule": {
8797
+ "filename": "lib/job-executable.ts",
8798
+ "line": 185
8799
+ },
8800
+ "name": "runtime",
8801
+ "optional": true,
8802
+ "type": {
8803
+ "fqn": "@aws-cdk/aws-glue-alpha.Runtime"
8804
+ }
8273
8805
  }
8274
8806
  ],
8275
8807
  "symbolId": "lib/job-executable:PythonRayExecutableProps"
@@ -8289,7 +8821,7 @@
8289
8821
  "kind": "interface",
8290
8822
  "locationInModule": {
8291
8823
  "filename": "lib/job-executable.ts",
8292
- "line": 217
8824
+ "line": 251
8293
8825
  },
8294
8826
  "name": "PythonShellExecutableProps",
8295
8827
  "properties": [
@@ -8303,7 +8835,7 @@
8303
8835
  "immutable": true,
8304
8836
  "locationInModule": {
8305
8837
  "filename": "lib/job-executable.ts",
8306
- "line": 158
8838
+ "line": 192
8307
8839
  },
8308
8840
  "name": "glueVersion",
8309
8841
  "type": {
@@ -8319,7 +8851,7 @@
8319
8851
  "immutable": true,
8320
8852
  "locationInModule": {
8321
8853
  "filename": "lib/job-executable.ts",
8322
- "line": 139
8854
+ "line": 167
8323
8855
  },
8324
8856
  "name": "pythonVersion",
8325
8857
  "type": {
@@ -8335,7 +8867,7 @@
8335
8867
  "immutable": true,
8336
8868
  "locationInModule": {
8337
8869
  "filename": "lib/job-executable.ts",
8338
- "line": 163
8870
+ "line": 197
8339
8871
  },
8340
8872
  "name": "script",
8341
8873
  "type": {
@@ -8354,7 +8886,7 @@
8354
8886
  "immutable": true,
8355
8887
  "locationInModule": {
8356
8888
  "filename": "lib/job-executable.ts",
8357
- "line": 173
8889
+ "line": 207
8358
8890
  },
8359
8891
  "name": "extraFiles",
8360
8892
  "optional": true,
@@ -8379,7 +8911,7 @@
8379
8911
  "immutable": true,
8380
8912
  "locationInModule": {
8381
8913
  "filename": "lib/job-executable.ts",
8382
- "line": 149
8914
+ "line": 177
8383
8915
  },
8384
8916
  "name": "extraPythonFiles",
8385
8917
  "optional": true,
@@ -8391,6 +8923,24 @@
8391
8923
  "kind": "array"
8392
8924
  }
8393
8925
  }
8926
+ },
8927
+ {
8928
+ "abstract": true,
8929
+ "docs": {
8930
+ "remarks": "It is required for Ray jobs.",
8931
+ "stability": "experimental",
8932
+ "summary": "Runtime."
8933
+ },
8934
+ "immutable": true,
8935
+ "locationInModule": {
8936
+ "filename": "lib/job-executable.ts",
8937
+ "line": 185
8938
+ },
8939
+ "name": "runtime",
8940
+ "optional": true,
8941
+ "type": {
8942
+ "fqn": "@aws-cdk/aws-glue-alpha.Runtime"
8943
+ }
8394
8944
  }
8395
8945
  ],
8396
8946
  "symbolId": "lib/job-executable:PythonShellExecutableProps"
@@ -8410,7 +8960,7 @@
8410
8960
  "kind": "interface",
8411
8961
  "locationInModule": {
8412
8962
  "filename": "lib/job-executable.ts",
8413
- "line": 212
8963
+ "line": 246
8414
8964
  },
8415
8965
  "name": "PythonSparkJobExecutableProps",
8416
8966
  "properties": [
@@ -8424,7 +8974,7 @@
8424
8974
  "immutable": true,
8425
8975
  "locationInModule": {
8426
8976
  "filename": "lib/job-executable.ts",
8427
- "line": 158
8977
+ "line": 192
8428
8978
  },
8429
8979
  "name": "glueVersion",
8430
8980
  "type": {
@@ -8440,7 +8990,7 @@
8440
8990
  "immutable": true,
8441
8991
  "locationInModule": {
8442
8992
  "filename": "lib/job-executable.ts",
8443
- "line": 139
8993
+ "line": 167
8444
8994
  },
8445
8995
  "name": "pythonVersion",
8446
8996
  "type": {
@@ -8456,7 +9006,7 @@
8456
9006
  "immutable": true,
8457
9007
  "locationInModule": {
8458
9008
  "filename": "lib/job-executable.ts",
8459
- "line": 163
9009
+ "line": 197
8460
9010
  },
8461
9011
  "name": "script",
8462
9012
  "type": {
@@ -8475,7 +9025,7 @@
8475
9025
  "immutable": true,
8476
9026
  "locationInModule": {
8477
9027
  "filename": "lib/job-executable.ts",
8478
- "line": 173
9028
+ "line": 207
8479
9029
  },
8480
9030
  "name": "extraFiles",
8481
9031
  "optional": true,
@@ -8499,7 +9049,7 @@
8499
9049
  "immutable": true,
8500
9050
  "locationInModule": {
8501
9051
  "filename": "lib/job-executable.ts",
8502
- "line": 185
9052
+ "line": 219
8503
9053
  },
8504
9054
  "name": "extraJars",
8505
9055
  "optional": true,
@@ -8523,7 +9073,7 @@
8523
9073
  "immutable": true,
8524
9074
  "locationInModule": {
8525
9075
  "filename": "lib/job-executable.ts",
8526
- "line": 194
9076
+ "line": 228
8527
9077
  },
8528
9078
  "name": "extraJarsFirst",
8529
9079
  "optional": true,
@@ -8543,7 +9093,7 @@
8543
9093
  "immutable": true,
8544
9094
  "locationInModule": {
8545
9095
  "filename": "lib/job-executable.ts",
8546
- "line": 149
9096
+ "line": 177
8547
9097
  },
8548
9098
  "name": "extraPythonFiles",
8549
9099
  "optional": true,
@@ -8555,6 +9105,24 @@
8555
9105
  "kind": "array"
8556
9106
  }
8557
9107
  }
9108
+ },
9109
+ {
9110
+ "abstract": true,
9111
+ "docs": {
9112
+ "remarks": "It is required for Ray jobs.",
9113
+ "stability": "experimental",
9114
+ "summary": "Runtime."
9115
+ },
9116
+ "immutable": true,
9117
+ "locationInModule": {
9118
+ "filename": "lib/job-executable.ts",
9119
+ "line": 185
9120
+ },
9121
+ "name": "runtime",
9122
+ "optional": true,
9123
+ "type": {
9124
+ "fqn": "@aws-cdk/aws-glue-alpha.Runtime"
9125
+ }
8558
9126
  }
8559
9127
  ],
8560
9128
  "symbolId": "lib/job-executable:PythonSparkJobExecutableProps"
@@ -8601,6 +9169,89 @@
8601
9169
  "name": "PythonVersion",
8602
9170
  "symbolId": "lib/job-executable:PythonVersion"
8603
9171
  },
9172
+ "@aws-cdk/aws-glue-alpha.Runtime": {
9173
+ "assembly": "@aws-cdk/aws-glue-alpha",
9174
+ "docs": {
9175
+ "stability": "experimental",
9176
+ "summary": "AWS Glue runtime determines the runtime engine of the job.",
9177
+ "example": "new glue.Job(this, 'RayJob', {\n executable: glue.JobExecutable.pythonRay({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE_NINE,\n runtime: glue.Runtime.RAY_TWO_FOUR,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n workerType: glue.WorkerType.Z_2X,\n workerCount: 2,\n description: 'an example Ray job'\n});",
9178
+ "custom": {
9179
+ "exampleMetadata": "infused"
9180
+ }
9181
+ },
9182
+ "fqn": "@aws-cdk/aws-glue-alpha.Runtime",
9183
+ "kind": "class",
9184
+ "locationInModule": {
9185
+ "filename": "lib/job-executable.ts",
9186
+ "line": 94
9187
+ },
9188
+ "methods": [
9189
+ {
9190
+ "docs": {
9191
+ "stability": "experimental",
9192
+ "summary": "Custom runtime."
9193
+ },
9194
+ "locationInModule": {
9195
+ "filename": "lib/job-executable.ts",
9196
+ "line": 104
9197
+ },
9198
+ "name": "of",
9199
+ "parameters": [
9200
+ {
9201
+ "docs": {
9202
+ "summary": "custom runtime."
9203
+ },
9204
+ "name": "runtime",
9205
+ "type": {
9206
+ "primitive": "string"
9207
+ }
9208
+ }
9209
+ ],
9210
+ "returns": {
9211
+ "type": {
9212
+ "fqn": "@aws-cdk/aws-glue-alpha.Runtime"
9213
+ }
9214
+ },
9215
+ "static": true
9216
+ }
9217
+ ],
9218
+ "name": "Runtime",
9219
+ "properties": [
9220
+ {
9221
+ "const": true,
9222
+ "docs": {
9223
+ "stability": "experimental",
9224
+ "summary": "Runtime for a Glue for Ray 2.4."
9225
+ },
9226
+ "immutable": true,
9227
+ "locationInModule": {
9228
+ "filename": "lib/job-executable.ts",
9229
+ "line": 98
9230
+ },
9231
+ "name": "RAY_TWO_FOUR",
9232
+ "static": true,
9233
+ "type": {
9234
+ "fqn": "@aws-cdk/aws-glue-alpha.Runtime"
9235
+ }
9236
+ },
9237
+ {
9238
+ "docs": {
9239
+ "stability": "experimental",
9240
+ "summary": "The name of this Runtime."
9241
+ },
9242
+ "immutable": true,
9243
+ "locationInModule": {
9244
+ "filename": "lib/job-executable.ts",
9245
+ "line": 111
9246
+ },
9247
+ "name": "name",
9248
+ "type": {
9249
+ "primitive": "string"
9250
+ }
9251
+ }
9252
+ ],
9253
+ "symbolId": "lib/job-executable:Runtime"
9254
+ },
8604
9255
  "@aws-cdk/aws-glue-alpha.S3Code": {
8605
9256
  "assembly": "@aws-cdk/aws-glue-alpha",
8606
9257
  "base": "@aws-cdk/aws-glue-alpha.Code",
@@ -8786,7 +9437,7 @@
8786
9437
  "kind": "interface",
8787
9438
  "locationInModule": {
8788
9439
  "filename": "lib/job-executable.ts",
8789
- "line": 200
9440
+ "line": 234
8790
9441
  },
8791
9442
  "name": "ScalaJobExecutableProps",
8792
9443
  "properties": [
@@ -8800,7 +9451,7 @@
8800
9451
  "immutable": true,
8801
9452
  "locationInModule": {
8802
9453
  "filename": "lib/job-executable.ts",
8803
- "line": 206
9454
+ "line": 240
8804
9455
  },
8805
9456
  "name": "className",
8806
9457
  "type": {
@@ -8817,7 +9468,7 @@
8817
9468
  "immutable": true,
8818
9469
  "locationInModule": {
8819
9470
  "filename": "lib/job-executable.ts",
8820
- "line": 158
9471
+ "line": 192
8821
9472
  },
8822
9473
  "name": "glueVersion",
8823
9474
  "type": {
@@ -8833,7 +9484,7 @@
8833
9484
  "immutable": true,
8834
9485
  "locationInModule": {
8835
9486
  "filename": "lib/job-executable.ts",
8836
- "line": 163
9487
+ "line": 197
8837
9488
  },
8838
9489
  "name": "script",
8839
9490
  "type": {
@@ -8852,7 +9503,7 @@
8852
9503
  "immutable": true,
8853
9504
  "locationInModule": {
8854
9505
  "filename": "lib/job-executable.ts",
8855
- "line": 173
9506
+ "line": 207
8856
9507
  },
8857
9508
  "name": "extraFiles",
8858
9509
  "optional": true,
@@ -8876,7 +9527,7 @@
8876
9527
  "immutable": true,
8877
9528
  "locationInModule": {
8878
9529
  "filename": "lib/job-executable.ts",
8879
- "line": 185
9530
+ "line": 219
8880
9531
  },
8881
9532
  "name": "extraJars",
8882
9533
  "optional": true,
@@ -8900,13 +9551,31 @@
8900
9551
  "immutable": true,
8901
9552
  "locationInModule": {
8902
9553
  "filename": "lib/job-executable.ts",
8903
- "line": 194
9554
+ "line": 228
8904
9555
  },
8905
9556
  "name": "extraJarsFirst",
8906
9557
  "optional": true,
8907
9558
  "type": {
8908
9559
  "primitive": "boolean"
8909
9560
  }
9561
+ },
9562
+ {
9563
+ "abstract": true,
9564
+ "docs": {
9565
+ "remarks": "It is required for Ray jobs.",
9566
+ "stability": "experimental",
9567
+ "summary": "Runtime."
9568
+ },
9569
+ "immutable": true,
9570
+ "locationInModule": {
9571
+ "filename": "lib/job-executable.ts",
9572
+ "line": 185
9573
+ },
9574
+ "name": "runtime",
9575
+ "optional": true,
9576
+ "type": {
9577
+ "fqn": "@aws-cdk/aws-glue-alpha.Runtime"
9578
+ }
8910
9579
  }
8911
9580
  ],
8912
9581
  "symbolId": "lib/job-executable:ScalaJobExecutableProps"
@@ -9819,7 +10488,7 @@
9819
10488
  "kind": "interface",
9820
10489
  "locationInModule": {
9821
10490
  "filename": "lib/job.ts",
9822
- "line": 384
10491
+ "line": 404
9823
10492
  },
9824
10493
  "name": "SparkUILoggingLocation",
9825
10494
  "properties": [
@@ -9832,7 +10501,7 @@
9832
10501
  "immutable": true,
9833
10502
  "locationInModule": {
9834
10503
  "filename": "lib/job.ts",
9835
- "line": 388
10504
+ "line": 408
9836
10505
  },
9837
10506
  "name": "bucket",
9838
10507
  "type": {
@@ -9849,7 +10518,7 @@
9849
10518
  "immutable": true,
9850
10519
  "locationInModule": {
9851
10520
  "filename": "lib/job.ts",
9852
- "line": 395
10521
+ "line": 415
9853
10522
  },
9854
10523
  "name": "prefix",
9855
10524
  "optional": true,
@@ -9876,7 +10545,7 @@
9876
10545
  "kind": "interface",
9877
10546
  "locationInModule": {
9878
10547
  "filename": "lib/job.ts",
9879
- "line": 357
10548
+ "line": 377
9880
10549
  },
9881
10550
  "name": "SparkUIProps",
9882
10551
  "properties": [
@@ -9889,7 +10558,7 @@
9889
10558
  "immutable": true,
9890
10559
  "locationInModule": {
9891
10560
  "filename": "lib/job.ts",
9892
- "line": 361
10561
+ "line": 381
9893
10562
  },
9894
10563
  "name": "enabled",
9895
10564
  "type": {
@@ -9906,7 +10575,7 @@
9906
10575
  "immutable": true,
9907
10576
  "locationInModule": {
9908
10577
  "filename": "lib/job.ts",
9909
- "line": 368
10578
+ "line": 388
9910
10579
  },
9911
10580
  "name": "bucket",
9912
10581
  "optional": true,
@@ -9924,7 +10593,7 @@
9924
10593
  "immutable": true,
9925
10594
  "locationInModule": {
9926
10595
  "filename": "lib/job.ts",
9927
- "line": 375
10596
+ "line": 395
9928
10597
  },
9929
10598
  "name": "prefix",
9930
10599
  "optional": true,
@@ -11083,6 +11752,6 @@
11083
11752
  "symbolId": "lib/job:WorkerType"
11084
11753
  }
11085
11754
  },
11086
- "version": "2.86.0-alpha.0",
11755
+ "version": "2.88.0-alpha.0",
11087
11756
  "fingerprint": "**********"
11088
11757
  }