@aws-cdk/aws-glue-alpha 2.63.2-alpha.0 → 2.65.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.63.2",
11
+ "aws-cdk-lib": "^2.65.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -2251,6 +2251,19 @@
2251
2251
  }
2252
2252
  }
2253
2253
  },
2254
+ "aws-cdk-lib.aws_omics": {
2255
+ "targets": {
2256
+ "dotnet": {
2257
+ "namespace": "Amazon.CDK.AWS.Omics"
2258
+ },
2259
+ "java": {
2260
+ "package": "software.amazon.awscdk.services.omics"
2261
+ },
2262
+ "python": {
2263
+ "module": "aws_cdk.aws_omics"
2264
+ }
2265
+ }
2266
+ },
2254
2267
  "aws-cdk-lib.aws_opensearchserverless": {
2255
2268
  "targets": {
2256
2269
  "dotnet": {
@@ -2875,6 +2888,19 @@
2875
2888
  }
2876
2889
  }
2877
2890
  },
2891
+ "aws-cdk-lib.aws_simspaceweaver": {
2892
+ "targets": {
2893
+ "dotnet": {
2894
+ "namespace": "Amazon.CDK.AWS.SimSpaceWeaver"
2895
+ },
2896
+ "java": {
2897
+ "package": "software.amazon.awscdk.services.simspaceweaver"
2898
+ },
2899
+ "python": {
2900
+ "module": "aws_cdk.aws_simspaceweaver"
2901
+ }
2902
+ }
2903
+ },
2878
2904
  "aws-cdk-lib.aws_sns": {
2879
2905
  "targets": {
2880
2906
  "dotnet": {
@@ -3344,7 +3370,7 @@
3344
3370
  },
3345
3371
  "name": "@aws-cdk/aws-glue-alpha",
3346
3372
  "readme": {
3347
- "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 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\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* `Unencrypted` - files are not encrypted. The default encryption setting.\n* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - 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"
3373
+ "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 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* `Unencrypted` - files are not encrypted. The default encryption setting.\n* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - 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"
3348
3374
  },
3349
3375
  "repository": {
3350
3376
  "directory": "packages/individual-packages/aws-glue",
@@ -3709,7 +3735,7 @@
3709
3735
  "docs": {
3710
3736
  "stability": "experimental",
3711
3737
  "summary": "Represents a Glue Job's Code assets (an asset can be a scripts, a jar, a python file or any other file).",
3712
- "example": "declare 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});",
3738
+ "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});",
3713
3739
  "custom": {
3714
3740
  "exampleMetadata": "infused"
3715
3741
  }
@@ -4499,7 +4525,7 @@
4499
4525
  "kind": "interface",
4500
4526
  "locationInModule": {
4501
4527
  "filename": "lib/job.ts",
4502
- "line": 384
4528
+ "line": 394
4503
4529
  },
4504
4530
  "name": "ContinuousLoggingProps",
4505
4531
  "properties": [
@@ -4512,7 +4538,7 @@
4512
4538
  "immutable": true,
4513
4539
  "locationInModule": {
4514
4540
  "filename": "lib/job.ts",
4515
- "line": 388
4541
+ "line": 398
4516
4542
  },
4517
4543
  "name": "enabled",
4518
4544
  "type": {
@@ -4530,7 +4556,7 @@
4530
4556
  "immutable": true,
4531
4557
  "locationInModule": {
4532
4558
  "filename": "lib/job.ts",
4533
- "line": 418
4559
+ "line": 428
4534
4560
  },
4535
4561
  "name": "conversionPattern",
4536
4562
  "optional": true,
@@ -4548,7 +4574,7 @@
4548
4574
  "immutable": true,
4549
4575
  "locationInModule": {
4550
4576
  "filename": "lib/job.ts",
4551
- "line": 395
4577
+ "line": 405
4552
4578
  },
4553
4579
  "name": "logGroup",
4554
4580
  "optional": true,
@@ -4566,7 +4592,7 @@
4566
4592
  "immutable": true,
4567
4593
  "locationInModule": {
4568
4594
  "filename": "lib/job.ts",
4569
- "line": 402
4595
+ "line": 412
4570
4596
  },
4571
4597
  "name": "logStreamPrefix",
4572
4598
  "optional": true,
@@ -4584,7 +4610,7 @@
4584
4610
  "immutable": true,
4585
4611
  "locationInModule": {
4586
4612
  "filename": "lib/job.ts",
4587
- "line": 409
4613
+ "line": 419
4588
4614
  },
4589
4615
  "name": "quiet",
4590
4616
  "optional": true,
@@ -5183,7 +5209,7 @@
5183
5209
  "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')`.",
5184
5210
  "stability": "experimental",
5185
5211
  "summary": "AWS Glue version determines the versions of Apache Spark and Python that are available to the job.",
5186
- "example": "declare 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});",
5212
+ "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});",
5187
5213
  "custom": {
5188
5214
  "exampleMetadata": "infused"
5189
5215
  }
@@ -5490,7 +5516,7 @@
5490
5516
  "kind": "interface",
5491
5517
  "locationInModule": {
5492
5518
  "filename": "lib/job.ts",
5493
- "line": 115
5519
+ "line": 125
5494
5520
  },
5495
5521
  "methods": [
5496
5522
  {
@@ -5502,7 +5528,7 @@
5502
5528
  },
5503
5529
  "locationInModule": {
5504
5530
  "filename": "lib/job.ts",
5505
- "line": 172
5531
+ "line": 182
5506
5532
  },
5507
5533
  "name": "metric",
5508
5534
  "parameters": [
@@ -5549,7 +5575,7 @@
5549
5575
  },
5550
5576
  "locationInModule": {
5551
5577
  "filename": "lib/job.ts",
5552
- "line": 182
5578
+ "line": 192
5553
5579
  },
5554
5580
  "name": "metricFailure",
5555
5581
  "parameters": [
@@ -5575,7 +5601,7 @@
5575
5601
  },
5576
5602
  "locationInModule": {
5577
5603
  "filename": "lib/job.ts",
5578
- "line": 177
5604
+ "line": 187
5579
5605
  },
5580
5606
  "name": "metricSuccess",
5581
5607
  "parameters": [
@@ -5601,7 +5627,7 @@
5601
5627
  },
5602
5628
  "locationInModule": {
5603
5629
  "filename": "lib/job.ts",
5604
- "line": 187
5630
+ "line": 197
5605
5631
  },
5606
5632
  "name": "metricTimeout",
5607
5633
  "parameters": [
@@ -5628,7 +5654,7 @@
5628
5654
  },
5629
5655
  "locationInModule": {
5630
5656
  "filename": "lib/job.ts",
5631
- "line": 133
5657
+ "line": 143
5632
5658
  },
5633
5659
  "name": "onEvent",
5634
5660
  "parameters": [
@@ -5661,7 +5687,7 @@
5661
5687
  },
5662
5688
  "locationInModule": {
5663
5689
  "filename": "lib/job.ts",
5664
- "line": 154
5690
+ "line": 164
5665
5691
  },
5666
5692
  "name": "onFailure",
5667
5693
  "parameters": [
@@ -5694,7 +5720,7 @@
5694
5720
  },
5695
5721
  "locationInModule": {
5696
5722
  "filename": "lib/job.ts",
5697
- "line": 140
5723
+ "line": 150
5698
5724
  },
5699
5725
  "name": "onStateChange",
5700
5726
  "parameters": [
@@ -5733,7 +5759,7 @@
5733
5759
  },
5734
5760
  "locationInModule": {
5735
5761
  "filename": "lib/job.ts",
5736
- "line": 147
5762
+ "line": 157
5737
5763
  },
5738
5764
  "name": "onSuccess",
5739
5765
  "parameters": [
@@ -5766,7 +5792,7 @@
5766
5792
  },
5767
5793
  "locationInModule": {
5768
5794
  "filename": "lib/job.ts",
5769
- "line": 161
5795
+ "line": 171
5770
5796
  },
5771
5797
  "name": "onTimeout",
5772
5798
  "parameters": [
@@ -5805,7 +5831,7 @@
5805
5831
  "immutable": true,
5806
5832
  "locationInModule": {
5807
5833
  "filename": "lib/job.ts",
5808
- "line": 126
5834
+ "line": 136
5809
5835
  },
5810
5836
  "name": "jobArn",
5811
5837
  "type": {
@@ -5824,7 +5850,7 @@
5824
5850
  "immutable": true,
5825
5851
  "locationInModule": {
5826
5852
  "filename": "lib/job.ts",
5827
- "line": 120
5853
+ "line": 130
5828
5854
  },
5829
5855
  "name": "jobName",
5830
5856
  "type": {
@@ -6077,7 +6103,7 @@
6077
6103
  "docs": {
6078
6104
  "stability": "experimental",
6079
6105
  "summary": "A Glue Job.",
6080
- "example": "declare 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});",
6106
+ "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});",
6081
6107
  "custom": {
6082
6108
  "exampleMetadata": "infused"
6083
6109
  }
@@ -6089,7 +6115,7 @@
6089
6115
  },
6090
6116
  "locationInModule": {
6091
6117
  "filename": "lib/job.ts",
6092
- "line": 634
6118
+ "line": 644
6093
6119
  },
6094
6120
  "parameters": [
6095
6121
  {
@@ -6118,7 +6144,7 @@
6118
6144
  "kind": "class",
6119
6145
  "locationInModule": {
6120
6146
  "filename": "lib/job.ts",
6121
- "line": 588
6147
+ "line": 598
6122
6148
  },
6123
6149
  "methods": [
6124
6150
  {
@@ -6128,7 +6154,7 @@
6128
6154
  },
6129
6155
  "locationInModule": {
6130
6156
  "filename": "lib/job.ts",
6131
- "line": 596
6157
+ "line": 606
6132
6158
  },
6133
6159
  "name": "fromJobAttributes",
6134
6160
  "parameters": [
@@ -6175,7 +6201,7 @@
6175
6201
  },
6176
6202
  "locationInModule": {
6177
6203
  "filename": "lib/job.ts",
6178
- "line": 279
6204
+ "line": 289
6179
6205
  },
6180
6206
  "name": "metric",
6181
6207
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6223,7 +6249,7 @@
6223
6249
  },
6224
6250
  "locationInModule": {
6225
6251
  "filename": "lib/job.ts",
6226
- "line": 306
6252
+ "line": 316
6227
6253
  },
6228
6254
  "name": "metricFailure",
6229
6255
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6250,7 +6276,7 @@
6250
6276
  },
6251
6277
  "locationInModule": {
6252
6278
  "filename": "lib/job.ts",
6253
- "line": 297
6279
+ "line": 307
6254
6280
  },
6255
6281
  "name": "metricSuccess",
6256
6282
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6277,7 +6303,7 @@
6277
6303
  },
6278
6304
  "locationInModule": {
6279
6305
  "filename": "lib/job.ts",
6280
- "line": 315
6306
+ "line": 325
6281
6307
  },
6282
6308
  "name": "metricTimeout",
6283
6309
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6304,7 +6330,7 @@
6304
6330
  },
6305
6331
  "locationInModule": {
6306
6332
  "filename": "lib/job.ts",
6307
- "line": 207
6333
+ "line": 217
6308
6334
  },
6309
6335
  "name": "onEvent",
6310
6336
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6343,7 +6369,7 @@
6343
6369
  },
6344
6370
  "locationInModule": {
6345
6371
  "filename": "lib/job.ts",
6346
- "line": 256
6372
+ "line": 266
6347
6373
  },
6348
6374
  "name": "onFailure",
6349
6375
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6382,7 +6408,7 @@
6382
6408
  },
6383
6409
  "locationInModule": {
6384
6410
  "filename": "lib/job.ts",
6385
- "line": 227
6411
+ "line": 237
6386
6412
  },
6387
6413
  "name": "onStateChange",
6388
6414
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6429,7 +6455,7 @@
6429
6455
  },
6430
6456
  "locationInModule": {
6431
6457
  "filename": "lib/job.ts",
6432
- "line": 246
6458
+ "line": 256
6433
6459
  },
6434
6460
  "name": "onSuccess",
6435
6461
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6468,7 +6494,7 @@
6468
6494
  },
6469
6495
  "locationInModule": {
6470
6496
  "filename": "lib/job.ts",
6471
- "line": 266
6497
+ "line": 276
6472
6498
  },
6473
6499
  "name": "onTimeout",
6474
6500
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6511,7 +6537,7 @@
6511
6537
  "immutable": true,
6512
6538
  "locationInModule": {
6513
6539
  "filename": "lib/job.ts",
6514
- "line": 624
6540
+ "line": 634
6515
6541
  },
6516
6542
  "name": "grantPrincipal",
6517
6543
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -6527,7 +6553,7 @@
6527
6553
  "immutable": true,
6528
6554
  "locationInModule": {
6529
6555
  "filename": "lib/job.ts",
6530
- "line": 609
6556
+ "line": 619
6531
6557
  },
6532
6558
  "name": "jobArn",
6533
6559
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6543,7 +6569,7 @@
6543
6569
  "immutable": true,
6544
6570
  "locationInModule": {
6545
6571
  "filename": "lib/job.ts",
6546
- "line": 614
6572
+ "line": 624
6547
6573
  },
6548
6574
  "name": "jobName",
6549
6575
  "overrides": "@aws-cdk/aws-glue-alpha.IJob",
@@ -6559,7 +6585,7 @@
6559
6585
  "immutable": true,
6560
6586
  "locationInModule": {
6561
6587
  "filename": "lib/job.ts",
6562
- "line": 619
6588
+ "line": 629
6563
6589
  },
6564
6590
  "name": "role",
6565
6591
  "type": {
@@ -6575,7 +6601,7 @@
6575
6601
  "immutable": true,
6576
6602
  "locationInModule": {
6577
6603
  "filename": "lib/job.ts",
6578
- "line": 632
6604
+ "line": 642
6579
6605
  },
6580
6606
  "name": "sparkUILoggingLocation",
6581
6607
  "optional": true,
@@ -6601,7 +6627,7 @@
6601
6627
  "kind": "interface",
6602
6628
  "locationInModule": {
6603
6629
  "filename": "lib/job.ts",
6604
- "line": 424
6630
+ "line": 434
6605
6631
  },
6606
6632
  "name": "JobAttributes",
6607
6633
  "properties": [
@@ -6614,7 +6640,7 @@
6614
6640
  "immutable": true,
6615
6641
  "locationInModule": {
6616
6642
  "filename": "lib/job.ts",
6617
- "line": 428
6643
+ "line": 438
6618
6644
  },
6619
6645
  "name": "jobName",
6620
6646
  "type": {
@@ -6631,7 +6657,7 @@
6631
6657
  "immutable": true,
6632
6658
  "locationInModule": {
6633
6659
  "filename": "lib/job.ts",
6634
- "line": 435
6660
+ "line": 445
6635
6661
  },
6636
6662
  "name": "role",
6637
6663
  "optional": true,
@@ -6733,7 +6759,7 @@
6733
6759
  "docs": {
6734
6760
  "stability": "experimental",
6735
6761
  "summary": "The executable properties related to the Glue job's GlueVersion, JobType and code.",
6736
- "example": "declare 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});",
6762
+ "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});",
6737
6763
  "custom": {
6738
6764
  "exampleMetadata": "infused"
6739
6765
  }
@@ -6742,7 +6768,7 @@
6742
6768
  "kind": "class",
6743
6769
  "locationInModule": {
6744
6770
  "filename": "lib/job-executable.ts",
6745
- "line": 217
6771
+ "line": 227
6746
6772
  },
6747
6773
  "methods": [
6748
6774
  {
@@ -6752,7 +6778,7 @@
6752
6778
  },
6753
6779
  "locationInModule": {
6754
6780
  "filename": "lib/job-executable.ts",
6755
- "line": 289
6781
+ "line": 312
6756
6782
  },
6757
6783
  "name": "of",
6758
6784
  "parameters": [
@@ -6780,7 +6806,7 @@
6780
6806
  },
6781
6807
  "locationInModule": {
6782
6808
  "filename": "lib/job-executable.ts",
6783
- "line": 250
6809
+ "line": 260
6784
6810
  },
6785
6811
  "name": "pythonEtl",
6786
6812
  "parameters": [
@@ -6801,6 +6827,34 @@
6801
6827
  },
6802
6828
  "static": true
6803
6829
  },
6830
+ {
6831
+ "docs": {
6832
+ "stability": "experimental",
6833
+ "summary": "Create Python executable props for Ray jobs."
6834
+ },
6835
+ "locationInModule": {
6836
+ "filename": "lib/job-executable.ts",
6837
+ "line": 299
6838
+ },
6839
+ "name": "pythonRay",
6840
+ "parameters": [
6841
+ {
6842
+ "docs": {
6843
+ "summary": "Ray Job props."
6844
+ },
6845
+ "name": "props",
6846
+ "type": {
6847
+ "fqn": "@aws-cdk/aws-glue-alpha.PythonRayExecutableProps"
6848
+ }
6849
+ }
6850
+ ],
6851
+ "returns": {
6852
+ "type": {
6853
+ "fqn": "@aws-cdk/aws-glue-alpha.JobExecutable"
6854
+ }
6855
+ },
6856
+ "static": true
6857
+ },
6804
6858
  {
6805
6859
  "docs": {
6806
6860
  "stability": "experimental",
@@ -6808,7 +6862,7 @@
6808
6862
  },
6809
6863
  "locationInModule": {
6810
6864
  "filename": "lib/job-executable.ts",
6811
- "line": 276
6865
+ "line": 286
6812
6866
  },
6813
6867
  "name": "pythonShell",
6814
6868
  "parameters": [
@@ -6836,7 +6890,7 @@
6836
6890
  },
6837
6891
  "locationInModule": {
6838
6892
  "filename": "lib/job-executable.ts",
6839
- "line": 263
6893
+ "line": 273
6840
6894
  },
6841
6895
  "name": "pythonStreaming",
6842
6896
  "parameters": [
@@ -6864,7 +6918,7 @@
6864
6918
  },
6865
6919
  "locationInModule": {
6866
6920
  "filename": "lib/job-executable.ts",
6867
- "line": 224
6921
+ "line": 234
6868
6922
  },
6869
6923
  "name": "scalaEtl",
6870
6924
  "parameters": [
@@ -6892,7 +6946,7 @@
6892
6946
  },
6893
6947
  "locationInModule": {
6894
6948
  "filename": "lib/job-executable.ts",
6895
- "line": 237
6949
+ "line": 247
6896
6950
  },
6897
6951
  "name": "scalaStreaming",
6898
6952
  "parameters": [
@@ -6920,7 +6974,7 @@
6920
6974
  },
6921
6975
  "locationInModule": {
6922
6976
  "filename": "lib/job-executable.ts",
6923
- "line": 322
6977
+ "line": 356
6924
6978
  },
6925
6979
  "name": "bind",
6926
6980
  "returns": {
@@ -6948,7 +7002,7 @@
6948
7002
  "kind": "interface",
6949
7003
  "locationInModule": {
6950
7004
  "filename": "lib/job-executable.ts",
6951
- "line": 330
7005
+ "line": 364
6952
7006
  },
6953
7007
  "name": "JobExecutableConfig",
6954
7008
  "properties": [
@@ -6962,7 +7016,7 @@
6962
7016
  "immutable": true,
6963
7017
  "locationInModule": {
6964
7018
  "filename": "lib/job-executable.ts",
6965
- "line": 336
7019
+ "line": 370
6966
7020
  },
6967
7021
  "name": "glueVersion",
6968
7022
  "type": {
@@ -6979,7 +7033,7 @@
6979
7033
  "immutable": true,
6980
7034
  "locationInModule": {
6981
7035
  "filename": "lib/job-executable.ts",
6982
- "line": 343
7036
+ "line": 377
6983
7037
  },
6984
7038
  "name": "language",
6985
7039
  "type": {
@@ -6995,7 +7049,7 @@
6995
7049
  "immutable": true,
6996
7050
  "locationInModule": {
6997
7051
  "filename": "lib/job-executable.ts",
6998
- "line": 360
7052
+ "line": 394
6999
7053
  },
7000
7054
  "name": "script",
7001
7055
  "type": {
@@ -7011,7 +7065,7 @@
7011
7065
  "immutable": true,
7012
7066
  "locationInModule": {
7013
7067
  "filename": "lib/job-executable.ts",
7014
- "line": 348
7068
+ "line": 382
7015
7069
  },
7016
7070
  "name": "type",
7017
7071
  "type": {
@@ -7030,7 +7084,7 @@
7030
7084
  "immutable": true,
7031
7085
  "locationInModule": {
7032
7086
  "filename": "lib/job-executable.ts",
7033
- "line": 369
7087
+ "line": 403
7034
7088
  },
7035
7089
  "name": "className",
7036
7090
  "optional": true,
@@ -7049,7 +7103,7 @@
7049
7103
  "immutable": true,
7050
7104
  "locationInModule": {
7051
7105
  "filename": "lib/job-executable.ts",
7052
- "line": 396
7106
+ "line": 430
7053
7107
  },
7054
7108
  "name": "extraFiles",
7055
7109
  "optional": true,
@@ -7073,7 +7127,7 @@
7073
7127
  "immutable": true,
7074
7128
  "locationInModule": {
7075
7129
  "filename": "lib/job-executable.ts",
7076
- "line": 378
7130
+ "line": 412
7077
7131
  },
7078
7132
  "name": "extraJars",
7079
7133
  "optional": true,
@@ -7097,7 +7151,7 @@
7097
7151
  "immutable": true,
7098
7152
  "locationInModule": {
7099
7153
  "filename": "lib/job-executable.ts",
7100
- "line": 405
7154
+ "line": 439
7101
7155
  },
7102
7156
  "name": "extraJarsFirst",
7103
7157
  "optional": true,
@@ -7116,7 +7170,7 @@
7116
7170
  "immutable": true,
7117
7171
  "locationInModule": {
7118
7172
  "filename": "lib/job-executable.ts",
7119
- "line": 387
7173
+ "line": 421
7120
7174
  },
7121
7175
  "name": "extraPythonFiles",
7122
7176
  "optional": true,
@@ -7139,7 +7193,7 @@
7139
7193
  "immutable": true,
7140
7194
  "locationInModule": {
7141
7195
  "filename": "lib/job-executable.ts",
7142
- "line": 355
7196
+ "line": 389
7143
7197
  },
7144
7198
  "name": "pythonVersion",
7145
7199
  "optional": true,
@@ -7187,7 +7241,7 @@
7187
7241
  "docs": {
7188
7242
  "stability": "experimental",
7189
7243
  "summary": "Construction properties for `Job`.",
7190
- "example": "declare 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});",
7244
+ "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});",
7191
7245
  "custom": {
7192
7246
  "exampleMetadata": "infused"
7193
7247
  }
@@ -7196,7 +7250,7 @@
7196
7250
  "kind": "interface",
7197
7251
  "locationInModule": {
7198
7252
  "filename": "lib/job.ts",
7199
- "line": 441
7253
+ "line": 451
7200
7254
  },
7201
7255
  "name": "JobProps",
7202
7256
  "properties": [
@@ -7209,7 +7263,7 @@
7209
7263
  "immutable": true,
7210
7264
  "locationInModule": {
7211
7265
  "filename": "lib/job.ts",
7212
- "line": 445
7266
+ "line": 455
7213
7267
  },
7214
7268
  "name": "executable",
7215
7269
  "type": {
@@ -7227,7 +7281,7 @@
7227
7281
  "immutable": true,
7228
7282
  "locationInModule": {
7229
7283
  "filename": "lib/job.ts",
7230
- "line": 520
7284
+ "line": 530
7231
7285
  },
7232
7286
  "name": "connections",
7233
7287
  "optional": true,
@@ -7251,7 +7305,7 @@
7251
7305
  "immutable": true,
7252
7306
  "locationInModule": {
7253
7307
  "filename": "lib/job.ts",
7254
- "line": 582
7308
+ "line": 592
7255
7309
  },
7256
7310
  "name": "continuousLogging",
7257
7311
  "optional": true,
@@ -7270,7 +7324,7 @@
7270
7324
  "immutable": true,
7271
7325
  "locationInModule": {
7272
7326
  "filename": "lib/job.ts",
7273
- "line": 535
7327
+ "line": 545
7274
7328
  },
7275
7329
  "name": "defaultArguments",
7276
7330
  "optional": true,
@@ -7293,7 +7347,7 @@
7293
7347
  "immutable": true,
7294
7348
  "locationInModule": {
7295
7349
  "filename": "lib/job.ts",
7296
- "line": 459
7350
+ "line": 469
7297
7351
  },
7298
7352
  "name": "description",
7299
7353
  "optional": true,
@@ -7312,7 +7366,7 @@
7312
7366
  "immutable": true,
7313
7367
  "locationInModule": {
7314
7368
  "filename": "lib/job.ts",
7315
- "line": 562
7369
+ "line": 572
7316
7370
  },
7317
7371
  "name": "enableProfilingMetrics",
7318
7372
  "optional": true,
@@ -7330,7 +7384,7 @@
7330
7384
  "immutable": true,
7331
7385
  "locationInModule": {
7332
7386
  "filename": "lib/job.ts",
7333
- "line": 452
7387
+ "line": 462
7334
7388
  },
7335
7389
  "name": "jobName",
7336
7390
  "optional": true,
@@ -7349,7 +7403,7 @@
7349
7403
  "immutable": true,
7350
7404
  "locationInModule": {
7351
7405
  "filename": "lib/job.ts",
7352
- "line": 467
7406
+ "line": 477
7353
7407
  },
7354
7408
  "name": "maxCapacity",
7355
7409
  "optional": true,
@@ -7368,7 +7422,7 @@
7368
7422
  "immutable": true,
7369
7423
  "locationInModule": {
7370
7424
  "filename": "lib/job.ts",
7371
- "line": 483
7425
+ "line": 493
7372
7426
  },
7373
7427
  "name": "maxConcurrentRuns",
7374
7428
  "optional": true,
@@ -7386,7 +7440,7 @@
7386
7440
  "immutable": true,
7387
7441
  "locationInModule": {
7388
7442
  "filename": "lib/job.ts",
7389
- "line": 474
7443
+ "line": 484
7390
7444
  },
7391
7445
  "name": "maxRetries",
7392
7446
  "optional": true,
@@ -7404,7 +7458,7 @@
7404
7458
  "immutable": true,
7405
7459
  "locationInModule": {
7406
7460
  "filename": "lib/job.ts",
7407
- "line": 490
7461
+ "line": 500
7408
7462
  },
7409
7463
  "name": "notifyDelayAfter",
7410
7464
  "optional": true,
@@ -7424,7 +7478,7 @@
7424
7478
  "immutable": true,
7425
7479
  "locationInModule": {
7426
7480
  "filename": "lib/job.ts",
7427
- "line": 553
7481
+ "line": 563
7428
7482
  },
7429
7483
  "name": "role",
7430
7484
  "optional": true,
@@ -7442,7 +7496,7 @@
7442
7496
  "immutable": true,
7443
7497
  "locationInModule": {
7444
7498
  "filename": "lib/job.ts",
7445
- "line": 527
7499
+ "line": 537
7446
7500
  },
7447
7501
  "name": "securityConfiguration",
7448
7502
  "optional": true,
@@ -7461,7 +7515,7 @@
7461
7515
  "immutable": true,
7462
7516
  "locationInModule": {
7463
7517
  "filename": "lib/job.ts",
7464
- "line": 572
7518
+ "line": 582
7465
7519
  },
7466
7520
  "name": "sparkUI",
7467
7521
  "optional": true,
@@ -7479,7 +7533,7 @@
7479
7533
  "immutable": true,
7480
7534
  "locationInModule": {
7481
7535
  "filename": "lib/job.ts",
7482
- "line": 542
7536
+ "line": 552
7483
7537
  },
7484
7538
  "name": "tags",
7485
7539
  "optional": true,
@@ -7502,7 +7556,7 @@
7502
7556
  "immutable": true,
7503
7557
  "locationInModule": {
7504
7558
  "filename": "lib/job.ts",
7505
- "line": 497
7559
+ "line": 507
7506
7560
  },
7507
7561
  "name": "timeout",
7508
7562
  "optional": true,
@@ -7520,7 +7574,7 @@
7520
7574
  "immutable": true,
7521
7575
  "locationInModule": {
7522
7576
  "filename": "lib/job.ts",
7523
- "line": 511
7577
+ "line": 521
7524
7578
  },
7525
7579
  "name": "workerCount",
7526
7580
  "optional": true,
@@ -7538,7 +7592,7 @@
7538
7592
  "immutable": true,
7539
7593
  "locationInModule": {
7540
7594
  "filename": "lib/job.ts",
7541
- "line": 504
7595
+ "line": 514
7542
7596
  },
7543
7597
  "name": "workerType",
7544
7598
  "optional": true,
@@ -7560,7 +7614,7 @@
7560
7614
  "kind": "enum",
7561
7615
  "locationInModule": {
7562
7616
  "filename": "lib/job.ts",
7563
- "line": 58
7617
+ "line": 68
7564
7618
  },
7565
7619
  "members": [
7566
7620
  {
@@ -7641,7 +7695,7 @@
7641
7695
  },
7642
7696
  "locationInModule": {
7643
7697
  "filename": "lib/job-executable.ts",
7644
- "line": 116
7698
+ "line": 121
7645
7699
  },
7646
7700
  "name": "of",
7647
7701
  "parameters": [
@@ -7669,7 +7723,7 @@
7669
7723
  "const": true,
7670
7724
  "docs": {
7671
7725
  "stability": "experimental",
7672
- "summary": "Command for running a Glue ETL job."
7726
+ "summary": "Command for running a Glue Spark job."
7673
7727
  },
7674
7728
  "immutable": true,
7675
7729
  "locationInModule": {
@@ -7703,7 +7757,24 @@
7703
7757
  "const": true,
7704
7758
  "docs": {
7705
7759
  "stability": "experimental",
7706
- "summary": "Command for running a Glue streaming job."
7760
+ "summary": "Command for running a Glue Ray job."
7761
+ },
7762
+ "immutable": true,
7763
+ "locationInModule": {
7764
+ "filename": "lib/job-executable.ts",
7765
+ "line": 115
7766
+ },
7767
+ "name": "RAY",
7768
+ "static": true,
7769
+ "type": {
7770
+ "fqn": "@aws-cdk/aws-glue-alpha.JobType"
7771
+ }
7772
+ },
7773
+ {
7774
+ "const": true,
7775
+ "docs": {
7776
+ "stability": "experimental",
7777
+ "summary": "Command for running a Glue Spark streaming job."
7707
7778
  },
7708
7779
  "immutable": true,
7709
7780
  "locationInModule": {
@@ -7724,7 +7795,7 @@
7724
7795
  "immutable": true,
7725
7796
  "locationInModule": {
7726
7797
  "filename": "lib/job-executable.ts",
7727
- "line": 123
7798
+ "line": 128
7728
7799
  },
7729
7800
  "name": "name",
7730
7801
  "type": {
@@ -7745,7 +7816,7 @@
7745
7816
  "kind": "enum",
7746
7817
  "locationInModule": {
7747
7818
  "filename": "lib/job.ts",
7748
- "line": 100
7819
+ "line": 110
7749
7820
  },
7750
7821
  "members": [
7751
7822
  {
@@ -7952,6 +8023,127 @@
7952
8023
  ],
7953
8024
  "symbolId": "lib/table:PartitionIndex"
7954
8025
  },
8026
+ "@aws-cdk/aws-glue-alpha.PythonRayExecutableProps": {
8027
+ "assembly": "@aws-cdk/aws-glue-alpha",
8028
+ "datatype": true,
8029
+ "docs": {
8030
+ "stability": "experimental",
8031
+ "summary": "Props for creating a Python Ray job executable.",
8032
+ "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});",
8033
+ "custom": {
8034
+ "exampleMetadata": "infused"
8035
+ }
8036
+ },
8037
+ "fqn": "@aws-cdk/aws-glue-alpha.PythonRayExecutableProps",
8038
+ "kind": "interface",
8039
+ "locationInModule": {
8040
+ "filename": "lib/job-executable.ts",
8041
+ "line": 222
8042
+ },
8043
+ "name": "PythonRayExecutableProps",
8044
+ "properties": [
8045
+ {
8046
+ "abstract": true,
8047
+ "docs": {
8048
+ "see": "https://docs.aws.amazon.com/glue/latest/dg/release-notes.html",
8049
+ "stability": "experimental",
8050
+ "summary": "Glue version."
8051
+ },
8052
+ "immutable": true,
8053
+ "locationInModule": {
8054
+ "filename": "lib/job-executable.ts",
8055
+ "line": 158
8056
+ },
8057
+ "name": "glueVersion",
8058
+ "type": {
8059
+ "fqn": "@aws-cdk/aws-glue-alpha.GlueVersion"
8060
+ }
8061
+ },
8062
+ {
8063
+ "abstract": true,
8064
+ "docs": {
8065
+ "stability": "experimental",
8066
+ "summary": "The Python version to use."
8067
+ },
8068
+ "immutable": true,
8069
+ "locationInModule": {
8070
+ "filename": "lib/job-executable.ts",
8071
+ "line": 139
8072
+ },
8073
+ "name": "pythonVersion",
8074
+ "type": {
8075
+ "fqn": "@aws-cdk/aws-glue-alpha.PythonVersion"
8076
+ }
8077
+ },
8078
+ {
8079
+ "abstract": true,
8080
+ "docs": {
8081
+ "stability": "experimental",
8082
+ "summary": "The script that executes a job."
8083
+ },
8084
+ "immutable": true,
8085
+ "locationInModule": {
8086
+ "filename": "lib/job-executable.ts",
8087
+ "line": 163
8088
+ },
8089
+ "name": "script",
8090
+ "type": {
8091
+ "fqn": "@aws-cdk/aws-glue-alpha.Code"
8092
+ }
8093
+ },
8094
+ {
8095
+ "abstract": true,
8096
+ "docs": {
8097
+ "default": "[] - no extra files are copied to the working directory",
8098
+ "remarks": "Only individual files are supported, directories are not supported.",
8099
+ "see": "`--extra-files` in https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html",
8100
+ "stability": "experimental",
8101
+ "summary": "Additional files, such as configuration files that AWS Glue copies to the working directory of your script before executing it."
8102
+ },
8103
+ "immutable": true,
8104
+ "locationInModule": {
8105
+ "filename": "lib/job-executable.ts",
8106
+ "line": 173
8107
+ },
8108
+ "name": "extraFiles",
8109
+ "optional": true,
8110
+ "type": {
8111
+ "collection": {
8112
+ "elementtype": {
8113
+ "fqn": "@aws-cdk/aws-glue-alpha.Code"
8114
+ },
8115
+ "kind": "array"
8116
+ }
8117
+ }
8118
+ },
8119
+ {
8120
+ "abstract": true,
8121
+ "docs": {
8122
+ "default": "- no extra python files and argument is not set",
8123
+ "remarks": "Only individual files are supported, directories are not supported.",
8124
+ "see": "`--extra-py-files` in https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html",
8125
+ "stability": "experimental",
8126
+ "summary": "Additional Python files that AWS Glue adds to the Python path before executing your script."
8127
+ },
8128
+ "immutable": true,
8129
+ "locationInModule": {
8130
+ "filename": "lib/job-executable.ts",
8131
+ "line": 149
8132
+ },
8133
+ "name": "extraPythonFiles",
8134
+ "optional": true,
8135
+ "type": {
8136
+ "collection": {
8137
+ "elementtype": {
8138
+ "fqn": "@aws-cdk/aws-glue-alpha.Code"
8139
+ },
8140
+ "kind": "array"
8141
+ }
8142
+ }
8143
+ }
8144
+ ],
8145
+ "symbolId": "lib/job-executable:PythonRayExecutableProps"
8146
+ },
7955
8147
  "@aws-cdk/aws-glue-alpha.PythonShellExecutableProps": {
7956
8148
  "assembly": "@aws-cdk/aws-glue-alpha",
7957
8149
  "datatype": true,
@@ -7967,7 +8159,7 @@
7967
8159
  "kind": "interface",
7968
8160
  "locationInModule": {
7969
8161
  "filename": "lib/job-executable.ts",
7970
- "line": 212
8162
+ "line": 217
7971
8163
  },
7972
8164
  "name": "PythonShellExecutableProps",
7973
8165
  "properties": [
@@ -7981,7 +8173,7 @@
7981
8173
  "immutable": true,
7982
8174
  "locationInModule": {
7983
8175
  "filename": "lib/job-executable.ts",
7984
- "line": 153
8176
+ "line": 158
7985
8177
  },
7986
8178
  "name": "glueVersion",
7987
8179
  "type": {
@@ -7997,7 +8189,7 @@
7997
8189
  "immutable": true,
7998
8190
  "locationInModule": {
7999
8191
  "filename": "lib/job-executable.ts",
8000
- "line": 134
8192
+ "line": 139
8001
8193
  },
8002
8194
  "name": "pythonVersion",
8003
8195
  "type": {
@@ -8013,7 +8205,7 @@
8013
8205
  "immutable": true,
8014
8206
  "locationInModule": {
8015
8207
  "filename": "lib/job-executable.ts",
8016
- "line": 158
8208
+ "line": 163
8017
8209
  },
8018
8210
  "name": "script",
8019
8211
  "type": {
@@ -8032,7 +8224,7 @@
8032
8224
  "immutable": true,
8033
8225
  "locationInModule": {
8034
8226
  "filename": "lib/job-executable.ts",
8035
- "line": 168
8227
+ "line": 173
8036
8228
  },
8037
8229
  "name": "extraFiles",
8038
8230
  "optional": true,
@@ -8057,7 +8249,7 @@
8057
8249
  "immutable": true,
8058
8250
  "locationInModule": {
8059
8251
  "filename": "lib/job-executable.ts",
8060
- "line": 144
8252
+ "line": 149
8061
8253
  },
8062
8254
  "name": "extraPythonFiles",
8063
8255
  "optional": true,
@@ -8088,7 +8280,7 @@
8088
8280
  "kind": "interface",
8089
8281
  "locationInModule": {
8090
8282
  "filename": "lib/job-executable.ts",
8091
- "line": 207
8283
+ "line": 212
8092
8284
  },
8093
8285
  "name": "PythonSparkJobExecutableProps",
8094
8286
  "properties": [
@@ -8102,7 +8294,7 @@
8102
8294
  "immutable": true,
8103
8295
  "locationInModule": {
8104
8296
  "filename": "lib/job-executable.ts",
8105
- "line": 153
8297
+ "line": 158
8106
8298
  },
8107
8299
  "name": "glueVersion",
8108
8300
  "type": {
@@ -8118,7 +8310,7 @@
8118
8310
  "immutable": true,
8119
8311
  "locationInModule": {
8120
8312
  "filename": "lib/job-executable.ts",
8121
- "line": 134
8313
+ "line": 139
8122
8314
  },
8123
8315
  "name": "pythonVersion",
8124
8316
  "type": {
@@ -8134,7 +8326,7 @@
8134
8326
  "immutable": true,
8135
8327
  "locationInModule": {
8136
8328
  "filename": "lib/job-executable.ts",
8137
- "line": 158
8329
+ "line": 163
8138
8330
  },
8139
8331
  "name": "script",
8140
8332
  "type": {
@@ -8153,7 +8345,7 @@
8153
8345
  "immutable": true,
8154
8346
  "locationInModule": {
8155
8347
  "filename": "lib/job-executable.ts",
8156
- "line": 168
8348
+ "line": 173
8157
8349
  },
8158
8350
  "name": "extraFiles",
8159
8351
  "optional": true,
@@ -8177,7 +8369,7 @@
8177
8369
  "immutable": true,
8178
8370
  "locationInModule": {
8179
8371
  "filename": "lib/job-executable.ts",
8180
- "line": 180
8372
+ "line": 185
8181
8373
  },
8182
8374
  "name": "extraJars",
8183
8375
  "optional": true,
@@ -8201,7 +8393,7 @@
8201
8393
  "immutable": true,
8202
8394
  "locationInModule": {
8203
8395
  "filename": "lib/job-executable.ts",
8204
- "line": 189
8396
+ "line": 194
8205
8397
  },
8206
8398
  "name": "extraJarsFirst",
8207
8399
  "optional": true,
@@ -8221,7 +8413,7 @@
8221
8413
  "immutable": true,
8222
8414
  "locationInModule": {
8223
8415
  "filename": "lib/job-executable.ts",
8224
- "line": 144
8416
+ "line": 149
8225
8417
  },
8226
8418
  "name": "extraPythonFiles",
8227
8419
  "optional": true,
@@ -8464,7 +8656,7 @@
8464
8656
  "kind": "interface",
8465
8657
  "locationInModule": {
8466
8658
  "filename": "lib/job-executable.ts",
8467
- "line": 195
8659
+ "line": 200
8468
8660
  },
8469
8661
  "name": "ScalaJobExecutableProps",
8470
8662
  "properties": [
@@ -8478,7 +8670,7 @@
8478
8670
  "immutable": true,
8479
8671
  "locationInModule": {
8480
8672
  "filename": "lib/job-executable.ts",
8481
- "line": 201
8673
+ "line": 206
8482
8674
  },
8483
8675
  "name": "className",
8484
8676
  "type": {
@@ -8495,7 +8687,7 @@
8495
8687
  "immutable": true,
8496
8688
  "locationInModule": {
8497
8689
  "filename": "lib/job-executable.ts",
8498
- "line": 153
8690
+ "line": 158
8499
8691
  },
8500
8692
  "name": "glueVersion",
8501
8693
  "type": {
@@ -8511,7 +8703,7 @@
8511
8703
  "immutable": true,
8512
8704
  "locationInModule": {
8513
8705
  "filename": "lib/job-executable.ts",
8514
- "line": 158
8706
+ "line": 163
8515
8707
  },
8516
8708
  "name": "script",
8517
8709
  "type": {
@@ -8530,7 +8722,7 @@
8530
8722
  "immutable": true,
8531
8723
  "locationInModule": {
8532
8724
  "filename": "lib/job-executable.ts",
8533
- "line": 168
8725
+ "line": 173
8534
8726
  },
8535
8727
  "name": "extraFiles",
8536
8728
  "optional": true,
@@ -8554,7 +8746,7 @@
8554
8746
  "immutable": true,
8555
8747
  "locationInModule": {
8556
8748
  "filename": "lib/job-executable.ts",
8557
- "line": 180
8749
+ "line": 185
8558
8750
  },
8559
8751
  "name": "extraJars",
8560
8752
  "optional": true,
@@ -8578,7 +8770,7 @@
8578
8770
  "immutable": true,
8579
8771
  "locationInModule": {
8580
8772
  "filename": "lib/job-executable.ts",
8581
- "line": 189
8773
+ "line": 194
8582
8774
  },
8583
8775
  "name": "extraJarsFirst",
8584
8776
  "optional": true,
@@ -9497,7 +9689,7 @@
9497
9689
  "kind": "interface",
9498
9690
  "locationInModule": {
9499
9691
  "filename": "lib/job.ts",
9500
- "line": 364
9692
+ "line": 374
9501
9693
  },
9502
9694
  "name": "SparkUILoggingLocation",
9503
9695
  "properties": [
@@ -9510,7 +9702,7 @@
9510
9702
  "immutable": true,
9511
9703
  "locationInModule": {
9512
9704
  "filename": "lib/job.ts",
9513
- "line": 368
9705
+ "line": 378
9514
9706
  },
9515
9707
  "name": "bucket",
9516
9708
  "type": {
@@ -9527,7 +9719,7 @@
9527
9719
  "immutable": true,
9528
9720
  "locationInModule": {
9529
9721
  "filename": "lib/job.ts",
9530
- "line": 375
9722
+ "line": 385
9531
9723
  },
9532
9724
  "name": "prefix",
9533
9725
  "optional": true,
@@ -9554,7 +9746,7 @@
9554
9746
  "kind": "interface",
9555
9747
  "locationInModule": {
9556
9748
  "filename": "lib/job.ts",
9557
- "line": 337
9749
+ "line": 347
9558
9750
  },
9559
9751
  "name": "SparkUIProps",
9560
9752
  "properties": [
@@ -9567,7 +9759,7 @@
9567
9759
  "immutable": true,
9568
9760
  "locationInModule": {
9569
9761
  "filename": "lib/job.ts",
9570
- "line": 341
9762
+ "line": 351
9571
9763
  },
9572
9764
  "name": "enabled",
9573
9765
  "type": {
@@ -9584,7 +9776,7 @@
9584
9776
  "immutable": true,
9585
9777
  "locationInModule": {
9586
9778
  "filename": "lib/job.ts",
9587
- "line": 348
9779
+ "line": 358
9588
9780
  },
9589
9781
  "name": "bucket",
9590
9782
  "optional": true,
@@ -9602,7 +9794,7 @@
9602
9794
  "immutable": true,
9603
9795
  "locationInModule": {
9604
9796
  "filename": "lib/job.ts",
9605
- "line": 355
9797
+ "line": 365
9606
9798
  },
9607
9799
  "name": "prefix",
9608
9800
  "optional": true,
@@ -10581,9 +10773,9 @@
10581
10773
  "remarks": "If you need to use a WorkerType that doesn't exist as a static member, you\ncan instantiate a `WorkerType` object, e.g: `WorkerType.of('other type')`.",
10582
10774
  "stability": "experimental",
10583
10775
  "summary": "The type of predefined worker that is allocated when a job runs.",
10584
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nconst workerType = glue_alpha.WorkerType.G_1X;",
10776
+ "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});",
10585
10777
  "custom": {
10586
- "exampleMetadata": "fixture=_generated"
10778
+ "exampleMetadata": "infused"
10587
10779
  }
10588
10780
  },
10589
10781
  "fqn": "@aws-cdk/aws-glue-alpha.WorkerType",
@@ -10600,7 +10792,7 @@
10600
10792
  },
10601
10793
  "locationInModule": {
10602
10794
  "filename": "lib/job.ts",
10603
- "line": 39
10795
+ "line": 49
10604
10796
  },
10605
10797
  "name": "of",
10606
10798
  "parameters": [
@@ -10624,6 +10816,23 @@
10624
10816
  ],
10625
10817
  "name": "WorkerType",
10626
10818
  "properties": [
10819
+ {
10820
+ "const": true,
10821
+ "docs": {
10822
+ "stability": "experimental",
10823
+ "summary": "Each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. Suitable for low volume streaming jobs."
10824
+ },
10825
+ "immutable": true,
10826
+ "locationInModule": {
10827
+ "filename": "lib/job.ts",
10828
+ "line": 38
10829
+ },
10830
+ "name": "G_025X",
10831
+ "static": true,
10832
+ "type": {
10833
+ "fqn": "@aws-cdk/aws-glue-alpha.WorkerType"
10834
+ }
10835
+ },
10627
10836
  {
10628
10837
  "const": true,
10629
10838
  "docs": {
@@ -10677,6 +10886,24 @@
10677
10886
  "fqn": "@aws-cdk/aws-glue-alpha.WorkerType"
10678
10887
  }
10679
10888
  },
10889
+ {
10890
+ "const": true,
10891
+ "docs": {
10892
+ "remarks": "Supported in Ray jobs.",
10893
+ "stability": "experimental",
10894
+ "summary": "Each worker maps to 2 high-memory DPU [M-DPU] (8 vCPU, 64 GB of memory, 128 GB disk)."
10895
+ },
10896
+ "immutable": true,
10897
+ "locationInModule": {
10898
+ "filename": "lib/job.ts",
10899
+ "line": 43
10900
+ },
10901
+ "name": "Z_2X",
10902
+ "static": true,
10903
+ "type": {
10904
+ "fqn": "@aws-cdk/aws-glue-alpha.WorkerType"
10905
+ }
10906
+ },
10680
10907
  {
10681
10908
  "docs": {
10682
10909
  "stability": "experimental",
@@ -10685,7 +10912,7 @@
10685
10912
  "immutable": true,
10686
10913
  "locationInModule": {
10687
10914
  "filename": "lib/job.ts",
10688
- "line": 46
10915
+ "line": 56
10689
10916
  },
10690
10917
  "name": "name",
10691
10918
  "type": {
@@ -10696,6 +10923,6 @@
10696
10923
  "symbolId": "lib/job:WorkerType"
10697
10924
  }
10698
10925
  },
10699
- "version": "2.63.2-alpha.0",
10926
+ "version": "2.65.0-alpha.0",
10700
10927
  "fingerprint": "**********"
10701
10928
  }