@aws-cdk/aws-glue-alpha 2.264.0-alpha.0 → 2.265.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 +245 -176
- package/.jsii.tabl.json.gz +0 -0
- package/README.md +21 -1
- package/lib/catalog.js +3 -3
- package/lib/code.js +3 -3
- package/lib/connection.js +12 -4
- package/lib/data-format.js +5 -5
- package/lib/data-quality-ruleset.d.ts +7 -1
- package/lib/data-quality-ruleset.js +4 -3
- package/lib/database.d.ts +10 -1
- package/lib/database.js +5 -2
- package/lib/external-table.js +1 -1
- package/lib/jobs/job.d.ts +5 -0
- package/lib/jobs/job.js +5 -3
- package/lib/jobs/pyspark-etl-job.js +1 -1
- package/lib/jobs/pyspark-flex-etl-job.js +3 -3
- package/lib/jobs/pyspark-streaming-job.js +1 -1
- package/lib/jobs/python-shell-job.js +1 -1
- package/lib/jobs/ray-job.js +1 -1
- package/lib/jobs/scala-spark-etl-job.js +1 -1
- package/lib/jobs/scala-spark-flex-etl-job.js +3 -3
- package/lib/jobs/scala-spark-streaming-job.js +1 -1
- package/lib/jobs/spark-job.js +1 -1
- package/lib/partition-projection.js +1 -1
- package/lib/private/secret-detection.d.ts +22 -0
- package/lib/private/secret-detection.js +42 -0
- package/lib/s3-table.d.ts +10 -0
- package/lib/s3-table.js +17 -2
- package/lib/schema.js +1 -1
- package/lib/security-configuration.d.ts +6 -0
- package/lib/security-configuration.js +3 -2
- package/lib/storage-parameter.js +1 -1
- package/lib/table-base.d.ts +23 -3
- package/lib/table-base.js +25 -5
- package/lib/table-deprecated.js +1 -1
- package/lib/triggers/trigger-options.js +1 -1
- package/lib/triggers/workflow.js +2 -2
- package/package.json +7 -7
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"aws-cdk-lib": "^2.265.0",
|
|
12
12
|
"constructs": "^10.5.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -9388,7 +9388,7 @@
|
|
|
9388
9388
|
"stability": "experimental"
|
|
9389
9389
|
},
|
|
9390
9390
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
9391
|
-
"jsiiVersion": "5.9.
|
|
9391
|
+
"jsiiVersion": "5.9.52 (build c132e73)",
|
|
9392
9392
|
"keywords": [
|
|
9393
9393
|
"aws",
|
|
9394
9394
|
"cdk",
|
|
@@ -9409,7 +9409,7 @@
|
|
|
9409
9409
|
},
|
|
9410
9410
|
"name": "@aws-cdk/aws-glue-alpha",
|
|
9411
9411
|
"readme": {
|
|
9412
|
-
"markdown": "# AWS Glue Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\n## README\n\n[AWS Glue](https://aws.amazon.com/glue/) is a serverless data integration\nservice that makes it easier to discover, prepare, move, and integrate data\nfrom multiple sources for analytics, machine learning (ML), and application\ndevelopment.\n\nThe Glue L2 construct has convenience methods working backwards from common\nuse cases and sets required parameters to defaults that align with recommended\nbest practices for each job type. It also provides customers with a balance\nbetween flexibility via optional parameter overrides, and opinionated\ninterfaces that discouraging anti-patterns, resulting in reduced time to develop\nand deploy new resources.\n\n### References\n\n* [Glue Launch Announcement](https://aws.amazon.com/blogs/aws/launch-aws-glue-now-generally-available/)\n* [Glue Documentation](https://docs.aws.amazon.com/glue/index.html)\n* [Glue L1 (CloudFormation) Constructs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Glue.html)\n* Prior version of the [@aws-cdk/aws-glue-alpha module](https://github.com/aws/aws-cdk/blob/v2.51.1/packages/%40aws-cdk/aws-glue/README.md)\n\n## Create a Glue Job\n\nA Job encapsulates a script that connects to data sources, processes\nthem, and then writes output to a data target. There are four types of Glue\nJobs: Spark (ETL and Streaming), Python Shell, and Flex Jobs. Most\nof the required parameters for these jobs are common across all types,\nbut there are a few differences depending on the languages supported\nand features provided by each type. For all job types, the L2 defaults\nto AWS best practice recommendations, such as:\n\n* Use of Secrets Manager for Connection JDBC strings\n* Glue job autoscaling\n* Default parameter values for Glue job creation\n\nThis iteration of the L2 construct introduces breaking changes to\nthe existing glue-alpha-module, but these changes streamline the developer\nexperience, introduce new constants for defaults, and replacing synth-time\nvalidations with interface contracts for enforcement of the parameter combinations\nthat Glue supports. As an opinionated construct, the Glue L2 construct does\nnot allow developers to create resources that use non-current versions\nof Glue or deprecated language dependencies (e.g. deprecated versions of Python).\nAs always, L1s allow you to specify a wider range of parameters if you need\nor want to use alternative configurations.\n\nOptional and required parameters for each job are enforced via interface\nrather than validation; see [Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html)\nfor more granular details.\n\n### Spark Jobs\n\n#### ETL Jobs\n\nETL jobs support pySpark and Scala languages, for which there are separate but\nsimilar constructors. ETL jobs default to the G2 worker type, but you can\noverride this default with other supported worker type values (G1, G2, G4\nand G8). ETL jobs defaults to Glue version 4.0, which you can override to 3.0.\nThe following ETL features are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log.`\nYou can find more details about version, worker type and other features in\n[Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html).\n\nReference the pyspark-etl-jobs.test.ts and scalaspark-etl-jobs.test.ts unit tests\nfor examples of required-only and optional job parameters when creating these\ntypes of jobs.\n\nFor the sake of brevity, examples are shown using the pySpark job variety.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n});\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n jobName: 'PySparkETLJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n#### Streaming Jobs\n\nStreaming jobs are similar to ETL jobs, except that they perform ETL on data\nstreams using the Apache Spark Structured Streaming framework. Some Spark\njob features are not available to Streaming ETL jobs. They support Scala\nand pySpark languages. PySpark streaming jobs default Python 3.9,\nwhich you can override with any non-deprecated version of Python. It\ndefaults to the G2 worker type and Glue 4.0, both of which you can override.\nThe following best practice features are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log`.\n\nReference the pyspark-streaming-jobs.test.ts and scalaspark-streaming-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'PySparkStreamingJob', {\n jobName: 'PySparkStreamingJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n#### Flex Jobs\n\nThe flexible execution class is appropriate for non-urgent jobs such as\npre-production jobs, testing, and one-time data loads. Flexible jobs default\nto Glue version 3.0 and worker type `G_2X`. The following best practice\nfeatures are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log`\n\nReference the pyspark-flex-etl-jobs.test.ts and scalaspark-flex-etl-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'pySparkEtlJob', {\n jobName: 'pySparkEtlJob',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n### Python Shell Jobs\n\nPython shell jobs support a Python version that depends on the AWS Glue\nversion you use. These can be used to schedule and run tasks that don't\nrequire an Apache Spark environment. Python shell jobs default to\nPython 3.9 and a MaxCapacity of `0.0625`. Python 3.9 supports pre-loaded\nanalytics libraries using the `library-set=analytics` flag, which is\nenabled by default.\n\nReference the pyspark-shell-job.test.ts unit tests for examples of\nrequired-only and optional job parameters when creating these types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PythonShellJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\ndeclare const extraPythonFile: glue.Code;\nnew glue.PythonShellJob(stack, 'PythonShellJob', {\n jobName: 'PythonShellJobCustomName',\n description: 'This is a description',\n pythonVersion: glue.PythonVersion.TWO,\n maxCapacity: glue.MaxCapacity.DPU_1,\n role,\n script,\n extraPythonFiles: [extraPythonFile],\n glueVersion: glue.GlueVersion.V2_0,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n### Ray Jobs\n\n> **⚠️ DEPRECATED:** AWS Glue for Ray is closed to new customers as of April 30, 2026 and is in maintenance mode.\n> Migrate to [Amazon EKS with KubeRay Operator](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html).\n\nThe `RayJob` construct, `Runtime.RAY_TWO_FOUR`, and `JobType.RAY` are deprecated and will be removed in a future release.\n\n### Metrics Control\n\nBy default, Glue jobs enable CloudWatch metrics (`--enable-metrics`) and observability metrics (`--enable-observability-metrics`) for monitoring and debugging. You can disable these metrics to reduce CloudWatch costs:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Disable both metrics for cost optimization\nnew glue.PySparkEtlJob(stack, 'CostOptimizedJob', {\n role,\n script,\n enableMetrics: false,\n enableObservabilityMetrics: false,\n});\n\n// Selective control - keep observability, disable profiling\nnew glue.PySparkEtlJob(stack, 'SelectiveJob', {\n role,\n script,\n enableMetrics: false,\n // enableObservabilityMetrics defaults to true\n});\n```\n\nThis feature is available for all Spark job types (ETL, Streaming, Flex).\n\n### Enable Job Run Queuing\n\nAWS Glue job queuing monitors your account level quotas and limits. If quotas or limits are insufficient to start a Glue job run, AWS Glue will automatically queue the job and wait for limits to free up. Once limits become available, AWS Glue will retry the job run. Glue jobs will queue for limits like max concurrent job runs per account, max concurrent Data Processing Units (DPU), and resource unavailable due to IP address exhaustion in Amazon Virtual Private Cloud (Amazon VPC).\n\nEnable job run queuing by setting the `jobRunQueuingEnabled` property to `true`.\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n jobRunQueuingEnabled: true\n});\n```\n\n### Uploading scripts from the CDK app repository to S3\n\nSimilar to other L2 constructs, the Glue L2 automates uploading / updating\nscripts to S3 via an optional fromAsset parameter pointing to a script\nin the local file structure. You provide the existing S3 bucket and\npath to which you'd like the script to be uploaded.\n\nReference the unit tests for examples of repo and S3 code target examples.\n\n### Workflow Triggers\n\nYou can use Glue workflows to create and visualize complex\nextract, transform, and load (ETL) activities involving multiple crawlers,\njobs, and triggers. Standalone triggers are an anti-pattern, so you must\ncreate triggers from within a workflow using the L2 construct.\n\nWithin a workflow object, there are functions to create different\ntypes of triggers with actions and predicates. You then add those triggers\nto jobs.\n\nStartOnCreation defaults to true for all trigger types, but you can\noverride it if you prefer for your trigger not to start on creation.\n\nReference the workflow-triggers.test.ts unit tests for examples of creating\nworkflows and triggers.\n\n#### **1. On-Demand Triggers**\n\nOn-demand triggers can start glue jobs or crawlers. This construct provides\nconvenience functions to create on-demand crawler or job triggers. The constructor\ntakes an optional description parameter, but abstracts the requirement of an\nactions list using the job or crawler objects using conditional types.\n\n#### **2. Scheduled Triggers**\n\nYou can create scheduled triggers using cron expressions. This construct\nprovides daily, weekly, and monthly convenience functions,\nas well as a custom function that allows you to create your own\ncustom timing using the [existing event Schedule class](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.Schedule.html)\nwithout having to build your own cron expressions. The L2 extracts\nthe expression that Glue requires from the Schedule object. The constructor\ntakes an optional description and a list of jobs or crawlers as actions.\n\n#### **3. Notify Event Triggers**\n\nThere are two types of notify event triggers: batching and non-batching.\nFor batching triggers, you must specify `BatchSize`. For non-batching\ntriggers, `BatchSize` defaults to 1. For both triggers, `BatchWindow`\ndefaults to 900 seconds, but you can override the window to align with\nyour workload's requirements.\n\n#### **4. Conditional Triggers**\n\nConditional triggers have a predicate and actions associated with them.\nThe trigger actions are executed when the predicateCondition is true.\n\n### Connection Properties\n\nA `Connection` allows Glue jobs, crawlers and development endpoints to access\ncertain types of data stores.\n\n* **Secrets Management**\n You must specify JDBC connection credentials in Secrets Manager and\n provide the Secrets Manager Key name as a property to the job connection.\n\n* **Networking - the CDK determines the best fit subnet for Glue connection\nconfiguration**\n The prior version of the glue-alpha-module requires the developer to\n specify the subnet of the Connection when it’s defined. Now, you can still\n specify the specific subnet you want to use, but are no longer required\n to. You are only required to provide a VPC and either a public or private\n subnet selection. Without a specific subnet provided, the L2 leverages the\n existing [EC2 Subnet Selection](https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_ec2/SubnetSelection.html)\n library to make the best choice selection for the subnet.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n // The security groups granting AWS Glue inbound access to the data source within the VPC\n securityGroups: [securityGroup],\n // The VPC subnet which contains the data source\n subnet,\n});\n```\n\nFor RDS `Connection` by JDBC, it is recommended to manage credentials using AWS Secrets Manager. To use Secret, specify `SECRET_ID` in `properties` like the following code. Note that in this case, the subnet must have a route to the AWS Secrets Manager VPC endpoint or to the AWS Secrets Manager endpoint through a NAT gateway.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const db: rds.DatabaseCluster;\nnew glue.Connection(this, \"RdsConnection\", {\n type: glue.ConnectionType.JDBC,\n securityGroups: [securityGroup],\n subnet,\n properties: {\n JDBC_CONNECTION_URL: `jdbc:mysql://${db.clusterEndpoint.socketAddress}/databasename`,\n JDBC_ENFORCE_SSL: \"false\",\n SECRET_ID: db.secret!.secretName,\n },\n});\n```\n\nIf you need to use a connection type that doesn't exist as a static member on `ConnectionType`, you can instantiate a `ConnectionType` object, e.g: `new glue.ConnectionType('NEW_TYPE')`.\n\nSee [Adding a Connection to Your Data Store](https://docs.aws.amazon.com/glue/latest/dg/populate-add-connection.html) and [Connection Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-connections.html#aws-glue-api-catalog-connections-Connection) documentation for more information on the supported data stores and their configurations.\n\n## SecurityConfiguration\n\nA `SecurityConfiguration` is a set of security properties that can be used by AWS Glue to encrypt data at rest.\n\n```ts\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n },\n jobBookmarksEncryption: {\n mode: glue.JobBookmarksEncryptionMode.CLIENT_SIDE_KMS,\n },\n s3Encryption: {\n mode: glue.S3EncryptionMode.KMS,\n },\n});\n```\n\nBy default, a shared KMS key is created for use with the encryption configurations that require one. You can also supply your own key for each encryption config, for example, for CloudWatch encryption:\n\n```ts\ndeclare const key: kms.Key;\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n kmsKey: key,\n },\n});\n```\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html) for more info for Glue encrypting data written by Crawlers, Jobs, and Development Endpoints.\n\n## Catalog\n\nThe Glue Data Catalog is a persistent metadata store for your data assets. Every\naccount has an implicit, account-wide catalog that always exists, and you can also\ncreate additional catalogs as `AWS::Glue::Catalog` resources (for example, to\nfederate to another metastore).\n\nA catalog's encryption is fixed when the catalog is created: a catalog either\ncarries encryption settings or it does not. This keeps its configuration easy to\nreason about — there are no mutation methods that change encryption after the fact.\n\n### The account-wide catalog\n\nUse `Catalog.forAccount(scope)` to obtain the implicit account catalog. It is not\na CloudFormation resource — it always exists. Repeated calls within the same stack\nreturn the same instance:\n\n```ts\nconst catalog = glue.Catalog.forAccount(this);\n```\n\nTo configure Data Catalog encryption for the account, use\n`Catalog.encryptAccount(scope, options)`:\n\n```ts\ndeclare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});\n```\n\nBecause encryption is fixed at construction, `encryptAccount` must be called\n*before* the account catalog is first used in the stack — before any\n`Catalog.forAccount(this)` call, and before any `Database` that uses the account\ncatalog. Calling it after the account catalog has been materialized throws.\n\nThe account catalog's encryption is an account- and region-wide setting, managed\nthrough the singleton `PutDataCatalogEncryptionSettings` API. Configure it in\nexactly one stack. Configuring it from multiple stacks in the same account and\nregion makes those stacks overwrite one another at deploy time, and the result is\norder-dependent. Unlike duplicate settings within a single stack (which\nCloudFormation rejects), this cross-stack conflict is not caught at synthesis\ntime, because each stack synthesizes to its own template.\n\n### Creating a catalog\n\nTo create a new catalog resource, use the `Catalog` constructor. Encryption is\nconfigured through the `encryptionAtRest` and `connectionPasswordEncryption` props:\n\n```ts\nnew glue.Catalog(this, 'MyCatalog', {\n catalogName: 'my-catalog',\n description: 'my catalog description',\n});\n```\n\n### Encryption at rest\n\nConfigure Data Catalog encryption at rest through the `encryptionAtRest` option\n(on `Catalog.encryptAccount`, the `Catalog` constructor, or the import factories).\nIt accepts a `DataCatalogEncryptionAtRest` describing the mode:\n\n```ts\ndeclare const key: kms.Key;\n\n// SSE-KMS with a customer-managed key\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});\n\n// SSE-KMS with an AWS-managed key (omit the key)\nnew glue.Catalog(this, 'ManagedKeyCatalog', {\n catalogName: 'managed-key-catalog',\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(),\n});\n\n// Disable encryption at rest\nnew glue.Catalog(this, 'PlaintextCatalog', {\n catalogName: 'plaintext-catalog',\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.disabled(),\n});\n```\n\nWhen you use `SSE-KMS-WITH-SERVICE-ROLE`, AWS Glue accesses the KMS key through a\nservice role you provide. If you pass a customer-managed key, the role is\nautomatically granted the permissions it needs to encrypt and decrypt catalog data:\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const key: kms.Key;\ndeclare const role: iam.IRole;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kmsWithServiceRole(role, key),\n});\n```\n\nThe customer-managed key, when configured, is exposed on the catalog as\n`encryptionKey` (and the connection-password key as `connectionPasswordKey`), so\nyou can reference it to grant additional access. It is undefined when encryption is\ndisabled or an AWS-managed key is used.\n\n### Connection password encryption\n\nIndependently from encryption at rest, the Data Catalog can encrypt the passwords\nstored in connection properties. Configure it through the\n`connectionPasswordEncryption` option:\n\n```ts\ndeclare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n connectionPasswordEncryption: {\n kmsKey: key,\n // Whether GetConnection/GetConnections return the password encrypted (default: true)\n returnConnectionPasswordEncrypted: true,\n },\n});\n```\n\nThe two encryption blocks are independent: enabling one does not require the other,\nand each may use a different KMS key. The customer-managed key for connection\npasswords is exposed as `connectionPasswordKey`.\n\n### Importing a catalog\n\nYou can import an existing catalog by ARN or by id. An imported catalog is a pure\nidentity handle — it emits no resources and does not manage the catalog's\nencryption:\n\n```ts\nconst byId = glue.Catalog.fromCatalogId(this, 'ById', 'my-catalog-id');\nconst byArn = glue.Catalog.fromCatalogArn(this, 'ByArn', 'arn:aws:glue:us-east-1:123456789012:catalog/my-catalog-id');\n```\n\nTo manage the Data Catalog encryption of a catalog you did not create in this\nstack, add a `CfnDataCatalogEncryptionSettings` resource targeting its id\ndirectly. Do this from exactly one stack: like the account catalog, a catalog has\na single encryption configuration, so two settings resources targeting the same id\nrace to overwrite one another at deploy time. Within a single stack this is caught\nby CloudFormation template validation (E3019, duplicate primary identifiers);\nacross stacks it is not, since each stack synthesizes to its own template.\n\n```ts\nimport { CfnDataCatalogEncryptionSettings } from 'aws-cdk-lib/aws-glue';\n\nnew CfnDataCatalogEncryptionSettings(this, 'Encryption', {\n catalogId: 'my-catalog-id',\n dataCatalogEncryptionSettings: {\n encryptionAtRest: { catalogEncryptionMode: 'SSE-KMS' },\n },\n});\n```\n\n## Database\n\nA `Database` is a logical grouping of `Tables` in the Glue Catalog.\n\n```ts\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n description: 'my_database_description',\n});\n```\n\n## Table\n\nA Glue table describes a table of data in S3: its structure (column names and types), location of data (S3 objects with a common prefix in a S3 bucket), and format for the files (Json, Avro, Parquet, etc.):\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }, {\n name: 'col2',\n type: glue.Schema.array(glue.Schema.STRING),\n comment: 'col2 is an array of strings' // comment is optional\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nBy default, a S3 bucket will be created to store the table's data but you can manually pass the `bucket` and `s3Prefix`:\n\n```ts\ndeclare const myBucket: s3.Bucket;\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n bucket: myBucket,\n s3Prefix: 'my-table/',\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can be configured to contain user-defined properties, to describe the physical storage of table data, through the `storageParameters` property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('separatorChar', ',')\n ],\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can also be configured to contain user-defined table properties through the [`parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters) property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n parameters: {\n key1: 'val1',\n key2: 'val2',\n },\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Keys\n\nTo improve query performance, a table can specify `partitionKeys` on which data is stored and queried separately. For example, you might partition a table by `year` and `month` to optimize queries based on a time window:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Indexes\n\nAnother way to improve query performance is to specify partition indexes. If no partition indexes are\npresent on the table, AWS Glue loads all partitions of the table and filters the loaded partitions using\nthe query expression. The query takes more time to run as the number of partitions increase. With an\nindex, the query will try to fetch a subset of the partitions instead of loading all partitions of the\ntable.\n\nThe keys of a partition index must be a subset of the partition keys of the table. You can have a\nmaximum of 3 partition indexes per table. To specify a partition index, you can use the `partitionIndexes`\nproperty:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n partitionIndexes: [{\n indexName: 'my-index', // optional\n keyNames: ['year'],\n }], // supply up to 3 indexes\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nAlternatively, you can call the `addPartitionIndex()` function on a table:\n\n```ts\ndeclare const myTable: glue.Table;\nmyTable.addPartitionIndex({\n indexName: 'my-index',\n keyNames: ['year'],\n});\n```\n\n### Partition Filtering\n\nIf you have a table with a large number of partitions that grows over time, consider using AWS Glue partition indexing and filtering.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n enablePartitionFiltering: true,\n});\n```\n\n### Partition Projection\n\nPartition projection allows Athena to automatically add new partitions as new data arrives, without requiring `ALTER TABLE ADD PARTITION` statements. This improves query performance and reduces management overhead by eliminating the need to manually manage partition metadata.\n\nFor more information, see the [AWS documentation on partition projection](https://docs.aws.amazon.com/athena/latest/ug/partition-projection.html).\n\n#### INTEGER Projection\n\nFor partition keys with sequential numeric values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.INTEGER,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n interval: 1, // optional, defaults to 1\n digits: 4, // optional, pads with leading zeros\n }),\n },\n});\n```\n\n#### DATE Projection\n\nFor partition keys with date or timestamp values. Supports both fixed dates and relative dates using `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});\n```\n\nYou can also use relative dates with `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: 'NOW-3YEARS',\n max: 'NOW',\n format: 'yyyy-MM-dd',\n }),\n },\n});\n```\n\n#### ENUM Projection\n\nFor partition keys with a known set of values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'region',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2', 'eu-west-1'],\n }),\n },\n});\n```\n\n#### INJECTED Projection\n\nFor custom partition values injected at query time:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'custom',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n custom: glue.PartitionProjectionConfiguration.injected(),\n },\n});\n```\n\n#### Multiple Partition Projections\n\nYou can configure partition projection for multiple partition keys:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [\n {\n name: 'year',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'month',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'region',\n type: glue.Schema.STRING,\n },\n ],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n }),\n month: glue.PartitionProjectionConfiguration.integer({\n min: 1,\n max: 12,\n digits: 2,\n }),\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2'],\n }),\n },\n});\n```\n\n### Glue Connections\n\nGlue connections allow external data connections to third party databases and data warehouses. However, these connections can also be assigned to Glue Tables, allowing you to query external data sources using the Glue Data Catalog.\n\nWhereas `S3Table` will point to (and if needed, create) a bucket to store the tables' data, `ExternalTable` will point to an existing table in a data source. For example, to create a table in Glue that points to a table in Redshift:\n\n```ts\ndeclare const myConnection: glue.Connection;\ndeclare const myDatabase: glue.Database;\nnew glue.ExternalTable(this, 'MyTable', {\n connection: myConnection,\n externalDataLocation: 'default_db_public_example', // A table in Redshift\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## [Encryption](https://docs.aws.amazon.com/athena/latest/ug/encryption.html)\n\nWhen the table creates its own S3 bucket (i.e. you do not pass an explicit `bucket`), that bucket enforces SSL: a bucket policy denies any request made over plain HTTP. If you provide your own bucket, enabling `enforceSSL` on it is your responsibility.\n\nYou can enable encryption on a Table's data:\n\n* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - (default) Server side encryption (`SSE-S3`) with an Amazon S3-managed key.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.S3_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [Kms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [KmsManaged](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`), like `Kms`, except with an AWS KMS Key managed by the AWS Key Management Service.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [ClientSideKms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html#client-side-encryption-kms-managed-master-key-intro) - Client-side encryption (`CSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n*Note: you cannot provide a `Bucket` when creating the `S3Table` if you wish to use server-side encryption (`KMS`, `KMS_MANAGED` or `S3_MANAGED`)*.\n\n## Types\n\nA table's schema is a collection of columns, each of which have a `name` and a `type`. Types are recursive structures, consisting of primitive and complex types:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n columns: [{\n name: 'primitive_column',\n type: glue.Schema.STRING,\n }, {\n name: 'array_column',\n type: glue.Schema.array(glue.Schema.INTEGER),\n comment: 'array<integer>',\n }, {\n name: 'map_column',\n type: glue.Schema.map(\n glue.Schema.STRING,\n glue.Schema.TIMESTAMP),\n comment: 'map<string,string>',\n }, {\n name: 'struct_column',\n type: glue.Schema.struct([{\n name: 'nested_column',\n type: glue.Schema.DATE,\n comment: 'nested comment',\n }]),\n comment: \"struct<nested_column:date COMMENT 'nested comment'>\",\n }],\n // ...\n database: myDatabase,\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## Public FAQ\n\n### What are we launching today?\n\nWe’re launching new features to an AWS CDK Glue L2 Construct to provide\nbest-practice defaults and convenience methods to create Glue Jobs, Connections,\nTriggers, Workflows, and the underlying permissions and configuration.\n\n### Why should I use this Construct?\n\nDevelopers should use this Construct to reduce the amount of boilerplate\ncode and complexity each individual has to navigate, and make it easier to\ncreate best-practice Glue resources.\n\n### What’s not in scope?\n\nGlue Crawlers and other resources that are now managed by the AWS LakeFormation\nteam are not in scope for this effort. Developers should use existing methods\nto create these resources, and the new Glue L2 construct assumes they already\nexist as inputs. While best practice is for application and infrastructure code\nto be as close as possible for teams using fully-implemented DevOps mechanisms,\nin practice these ETL scripts are likely managed by a data science team who\nknow Python or Scala and don’t necessarily own or manage their own\ninfrastructure deployments. We want to meet developers where they are, and not\nassume that all of the code resides in the same repository, Developers can\nautomate this themselves via the CDK, however, if they do own both.\n\nValidating Glue version and feature use per AWS region at synth time is also\nnot in scope. AWS’ intention is for all features to eventually be propagated to\nall Global regions, so the complexity involved in creating and updating region-\nspecific configuration to match shifting feature sets does not out-weigh the\nlikelihood that a developer will use this construct to deploy resources to a\nregion without a particular new feature to a region that doesn’t yet support\nit without researching or manually attempting to use that feature before\ndeveloping it via IaC. The developer will, of course, still get feedback from\nthe underlying Glue APIs as CloudFormation deploys the resources similar to the\ncurrent CDK L1 Glue experience.\n"
|
|
9412
|
+
"markdown": "# AWS Glue Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\n## README\n\n[AWS Glue](https://aws.amazon.com/glue/) is a serverless data integration\nservice that makes it easier to discover, prepare, move, and integrate data\nfrom multiple sources for analytics, machine learning (ML), and application\ndevelopment.\n\nThe Glue L2 construct has convenience methods working backwards from common\nuse cases and sets required parameters to defaults that align with recommended\nbest practices for each job type. It also provides customers with a balance\nbetween flexibility via optional parameter overrides, and opinionated\ninterfaces that discouraging anti-patterns, resulting in reduced time to develop\nand deploy new resources.\n\n### References\n\n* [Glue Launch Announcement](https://aws.amazon.com/blogs/aws/launch-aws-glue-now-generally-available/)\n* [Glue Documentation](https://docs.aws.amazon.com/glue/index.html)\n* [Glue L1 (CloudFormation) Constructs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Glue.html)\n* Prior version of the [@aws-cdk/aws-glue-alpha module](https://github.com/aws/aws-cdk/blob/v2.51.1/packages/%40aws-cdk/aws-glue/README.md)\n\n## Create a Glue Job\n\nA Job encapsulates a script that connects to data sources, processes\nthem, and then writes output to a data target. There are four types of Glue\nJobs: Spark (ETL and Streaming), Python Shell, and Flex Jobs. Most\nof the required parameters for these jobs are common across all types,\nbut there are a few differences depending on the languages supported\nand features provided by each type. For all job types, the L2 defaults\nto AWS best practice recommendations, such as:\n\n* Use of Secrets Manager for Connection JDBC strings\n* Glue job autoscaling\n* Default parameter values for Glue job creation\n\nThis iteration of the L2 construct introduces breaking changes to\nthe existing glue-alpha-module, but these changes streamline the developer\nexperience, introduce new constants for defaults, and replacing synth-time\nvalidations with interface contracts for enforcement of the parameter combinations\nthat Glue supports. As an opinionated construct, the Glue L2 construct does\nnot allow developers to create resources that use non-current versions\nof Glue or deprecated language dependencies (e.g. deprecated versions of Python).\nAs always, L1s allow you to specify a wider range of parameters if you need\nor want to use alternative configurations.\n\nOptional and required parameters for each job are enforced via interface\nrather than validation; see [Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html)\nfor more granular details.\n\n### Spark Jobs\n\n#### ETL Jobs\n\nETL jobs support pySpark and Scala languages, for which there are separate but\nsimilar constructors. ETL jobs default to the G2 worker type, but you can\noverride this default with other supported worker type values (G1, G2, G4\nand G8). ETL jobs defaults to Glue version 4.0, which you can override to 3.0.\nThe following ETL features are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log.`\nYou can find more details about version, worker type and other features in\n[Glue's public documentation](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html).\n\nReference the pyspark-etl-jobs.test.ts and scalaspark-etl-jobs.test.ts unit tests\nfor examples of required-only and optional job parameters when creating these\ntypes of jobs.\n\nFor the sake of brevity, examples are shown using the pySpark job variety.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n});\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n jobName: 'PySparkETLJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n#### Streaming Jobs\n\nStreaming jobs are similar to ETL jobs, except that they perform ETL on data\nstreams using the Apache Spark Structured Streaming framework. Some Spark\njob features are not available to Streaming ETL jobs. They support Scala\nand pySpark languages. PySpark streaming jobs default Python 3.9,\nwhich you can override with any non-deprecated version of Python. It\ndefaults to the G2 worker type and Glue 4.0, both of which you can override.\nThe following best practice features are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log`.\n\nReference the pyspark-streaming-jobs.test.ts and scalaspark-streaming-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkStreamingJob(stack, 'PySparkStreamingJob', {\n jobName: 'PySparkStreamingJobCustomName',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n#### Flex Jobs\n\nThe flexible execution class is appropriate for non-urgent jobs such as\npre-production jobs, testing, and one-time data loads. Flexible jobs default\nto Glue version 5.0 and worker type `G_2X`. The following best practice\nfeatures are enabled by default:\n`—enable-metrics, —enable-spark-ui, —enable-continuous-cloudwatch-log`\n\nReference the pyspark-flex-etl-jobs.test.ts and scalaspark-flex-etl-jobs.test.ts\nunit tests for examples of required-only and optional job parameters when creating\nthese types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkFlexEtlJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'pySparkEtlJob', {\n jobName: 'pySparkEtlJob',\n description: 'This is a description',\n role,\n script,\n glueVersion: glue.GlueVersion.V5_1,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n### Python Shell Jobs\n\nPython shell jobs support a Python version that depends on the AWS Glue\nversion you use. These can be used to schedule and run tasks that don't\nrequire an Apache Spark environment. Python shell jobs default to\nPython 3.9 and a MaxCapacity of `0.0625`. Python 3.9 supports pre-loaded\nanalytics libraries using the `library-set=analytics` flag, which is\nenabled by default.\n\nReference the pyspark-shell-job.test.ts unit tests for examples of\nrequired-only and optional job parameters when creating these types of jobs.\n\nExample with only required parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PythonShellJob(stack, 'ImportedJob', { role, script });\n```\n\nExample with optional override parameters:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\ndeclare const extraPythonFile: glue.Code;\nnew glue.PythonShellJob(stack, 'PythonShellJob', {\n jobName: 'PythonShellJobCustomName',\n description: 'This is a description',\n pythonVersion: glue.PythonVersion.TWO,\n maxCapacity: glue.MaxCapacity.DPU_1,\n role,\n script,\n extraPythonFiles: [extraPythonFile],\n glueVersion: glue.GlueVersion.V2_0,\n continuousLogging: { enabled: false },\n workerType: glue.WorkerType.G_2X,\n maxConcurrentRuns: 100,\n timeout: cdk.Duration.hours(2),\n connections: [glue.Connection.fromConnectionName(stack, 'Connection', 'connectionName')],\n securityConfiguration: glue.SecurityConfiguration.fromSecurityConfigurationName(stack, 'SecurityConfig', 'securityConfigName'),\n tags: {\n FirstTagName: 'FirstTagValue',\n SecondTagName: 'SecondTagValue',\n XTagName: 'XTagValue',\n },\n numberOfWorkers: 2,\n maxRetries: 2,\n});\n```\n\n### Ray Jobs\n\n> **⚠️ DEPRECATED:** AWS Glue for Ray is closed to new customers as of April 30, 2026 and is in maintenance mode.\n> Migrate to [Amazon EKS with KubeRay Operator](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html).\n\nThe `RayJob` construct, `Runtime.RAY_TWO_FOUR`, and `JobType.RAY` are deprecated and will be removed in a future release.\n\n### Metrics Control\n\nBy default, Glue jobs enable CloudWatch metrics (`--enable-metrics`) and observability metrics (`--enable-observability-metrics`) for monitoring and debugging. You can disable these metrics to reduce CloudWatch costs:\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\n\n// Disable both metrics for cost optimization\nnew glue.PySparkEtlJob(stack, 'CostOptimizedJob', {\n role,\n script,\n enableMetrics: false,\n enableObservabilityMetrics: false,\n});\n\n// Selective control - keep observability, disable profiling\nnew glue.PySparkEtlJob(stack, 'SelectiveJob', {\n role,\n script,\n enableMetrics: false,\n // enableObservabilityMetrics defaults to true\n});\n```\n\nThis feature is available for all Spark job types (ETL, Streaming, Flex).\n\n### Enable Job Run Queuing\n\nAWS Glue job queuing monitors your account level quotas and limits. If quotas or limits are insufficient to start a Glue job run, AWS Glue will automatically queue the job and wait for limits to free up. Once limits become available, AWS Glue will retry the job run. Glue jobs will queue for limits like max concurrent job runs per account, max concurrent Data Processing Units (DPU), and resource unavailable due to IP address exhaustion in Amazon Virtual Private Cloud (Amazon VPC).\n\nEnable job run queuing by setting the `jobRunQueuingEnabled` property to `true`.\n\n```ts\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const stack: cdk.Stack;\ndeclare const role: iam.IRole;\ndeclare const script: glue.Code;\nnew glue.PySparkEtlJob(stack, 'PySparkETLJob', {\n role,\n script,\n jobName: 'PySparkETLJob',\n jobRunQueuingEnabled: true\n});\n```\n\n### Uploading scripts from the CDK app repository to S3\n\nSimilar to other L2 constructs, the Glue L2 automates uploading / updating\nscripts to S3 via an optional fromAsset parameter pointing to a script\nin the local file structure. You provide the existing S3 bucket and\npath to which you'd like the script to be uploaded.\n\nReference the unit tests for examples of repo and S3 code target examples.\n\n### Workflow Triggers\n\nYou can use Glue workflows to create and visualize complex\nextract, transform, and load (ETL) activities involving multiple crawlers,\njobs, and triggers. Standalone triggers are an anti-pattern, so you must\ncreate triggers from within a workflow using the L2 construct.\n\nWithin a workflow object, there are functions to create different\ntypes of triggers with actions and predicates. You then add those triggers\nto jobs.\n\nStartOnCreation defaults to true for all trigger types, but you can\noverride it if you prefer for your trigger not to start on creation.\n\nReference the workflow-triggers.test.ts unit tests for examples of creating\nworkflows and triggers.\n\n#### **1. On-Demand Triggers**\n\nOn-demand triggers can start glue jobs or crawlers. This construct provides\nconvenience functions to create on-demand crawler or job triggers. The constructor\ntakes an optional description parameter, but abstracts the requirement of an\nactions list using the job or crawler objects using conditional types.\n\n#### **2. Scheduled Triggers**\n\nYou can create scheduled triggers using cron expressions. This construct\nprovides daily, weekly, and monthly convenience functions,\nas well as a custom function that allows you to create your own\ncustom timing using the [existing event Schedule class](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.Schedule.html)\nwithout having to build your own cron expressions. The L2 extracts\nthe expression that Glue requires from the Schedule object. The constructor\ntakes an optional description and a list of jobs or crawlers as actions.\n\n#### **3. Notify Event Triggers**\n\nThere are two types of notify event triggers: batching and non-batching.\nFor batching triggers, you must specify `BatchSize`. For non-batching\ntriggers, `BatchSize` defaults to 1. For both triggers, `BatchWindow`\ndefaults to 900 seconds, but you can override the window to align with\nyour workload's requirements.\n\n#### **4. Conditional Triggers**\n\nConditional triggers have a predicate and actions associated with them.\nThe trigger actions are executed when the predicateCondition is true.\n\n### Connection Properties\n\nA `Connection` allows Glue jobs, crawlers and development endpoints to access\ncertain types of data stores.\n\n* **Secrets Management**\n You must specify JDBC connection credentials in Secrets Manager and\n provide the Secrets Manager Key name as a property to the job connection.\n\n* **Networking - the CDK determines the best fit subnet for Glue connection\nconfiguration**\n The prior version of the glue-alpha-module requires the developer to\n specify the subnet of the Connection when it’s defined. Now, you can still\n specify the specific subnet you want to use, but are no longer required\n to. You are only required to provide a VPC and either a public or private\n subnet selection. Without a specific subnet provided, the L2 leverages the\n existing [EC2 Subnet Selection](https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_ec2/SubnetSelection.html)\n library to make the best choice selection for the subnet.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n // The security groups granting AWS Glue inbound access to the data source within the VPC\n securityGroups: [securityGroup],\n // The VPC subnet which contains the data source\n subnet,\n});\n```\n\nFor RDS `Connection` by JDBC, it is recommended to manage credentials using AWS Secrets Manager. To use Secret, specify `SECRET_ID` in `properties` like the following code. Note that in this case, the subnet must have a route to the AWS Secrets Manager VPC endpoint or to the AWS Secrets Manager endpoint through a NAT gateway.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const db: rds.DatabaseCluster;\nnew glue.Connection(this, \"RdsConnection\", {\n type: glue.ConnectionType.JDBC,\n securityGroups: [securityGroup],\n subnet,\n properties: {\n JDBC_CONNECTION_URL: `jdbc:mysql://${db.clusterEndpoint.socketAddress}/databasename`,\n JDBC_ENFORCE_SSL: \"false\",\n SECRET_ID: db.secret!.secretName,\n },\n});\n```\n\nConnection `properties` are emitted verbatim into the CloudFormation template, so\nany credential placed there in plaintext is stored in plaintext in the template,\n`cdk.out`, and source control. Reference a Secrets Manager secret through\n`SECRET_ID` (as above) instead. If a property key looks like a credential (for\nexample `PASSWORD`, `SECRET`, or `TOKEN`) and holds a plaintext literal, the\nconstruct emits a synthesis-time warning.\n\nIf you need to use a connection type that doesn't exist as a static member on `ConnectionType`, you can instantiate a `ConnectionType` object, e.g: `new glue.ConnectionType('NEW_TYPE')`.\n\nSee [Adding a Connection to Your Data Store](https://docs.aws.amazon.com/glue/latest/dg/populate-add-connection.html) and [Connection Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-connections.html#aws-glue-api-catalog-connections-Connection) documentation for more information on the supported data stores and their configurations.\n\n## SecurityConfiguration\n\nA `SecurityConfiguration` is a set of security properties that can be used by AWS Glue to encrypt data at rest.\n\n```ts\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n },\n jobBookmarksEncryption: {\n mode: glue.JobBookmarksEncryptionMode.CLIENT_SIDE_KMS,\n },\n s3Encryption: {\n mode: glue.S3EncryptionMode.KMS,\n },\n});\n```\n\nBy default, a shared KMS key is created for use with the encryption configurations that require one. You can also supply your own key for each encryption config, for example, for CloudWatch encryption:\n\n```ts\ndeclare const key: kms.Key;\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n kmsKey: key,\n },\n});\n```\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html) for more info for Glue encrypting data written by Crawlers, Jobs, and Development Endpoints.\n\n## Catalog\n\nThe Glue Data Catalog is a persistent metadata store for your data assets. Every\naccount has an implicit, account-wide catalog that always exists, and you can also\ncreate additional catalogs as `AWS::Glue::Catalog` resources (for example, to\nfederate to another metastore).\n\nA catalog's encryption is fixed when the catalog is created: a catalog either\ncarries encryption settings or it does not. This keeps its configuration easy to\nreason about — there are no mutation methods that change encryption after the fact.\n\n### The account-wide catalog\n\nUse `Catalog.forAccount(scope)` to obtain the implicit account catalog. It is not\na CloudFormation resource — it always exists. Repeated calls within the same stack\nreturn the same instance:\n\n```ts\nconst catalog = glue.Catalog.forAccount(this);\n```\n\nTo configure Data Catalog encryption for the account, use\n`Catalog.encryptAccount(scope, options)`:\n\n```ts\ndeclare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});\n```\n\nBecause encryption is fixed at construction, `encryptAccount` must be called\n*before* the account catalog is first used in the stack — before any\n`Catalog.forAccount(this)` call, and before any `Database` that uses the account\ncatalog. Calling it after the account catalog has been materialized throws.\n\nThe account catalog's encryption is an account- and region-wide setting, managed\nthrough the singleton `PutDataCatalogEncryptionSettings` API. Configure it in\nexactly one stack. Configuring it from multiple stacks in the same account and\nregion makes those stacks overwrite one another at deploy time, and the result is\norder-dependent. Unlike duplicate settings within a single stack (which\nCloudFormation rejects), this cross-stack conflict is not caught at synthesis\ntime, because each stack synthesizes to its own template.\n\n### Creating a catalog\n\nTo create a new catalog resource, use the `Catalog` constructor. Encryption is\nconfigured through the `encryptionAtRest` and `connectionPasswordEncryption` props:\n\n```ts\nnew glue.Catalog(this, 'MyCatalog', {\n catalogName: 'my-catalog',\n description: 'my catalog description',\n});\n```\n\n### Encryption at rest\n\nConfigure Data Catalog encryption at rest through the `encryptionAtRest` option\n(on `Catalog.encryptAccount`, the `Catalog` constructor, or the import factories).\nIt accepts a `DataCatalogEncryptionAtRest` describing the mode:\n\n```ts\ndeclare const key: kms.Key;\n\n// SSE-KMS with a customer-managed key\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(key),\n});\n\n// SSE-KMS with an AWS-managed key (omit the key)\nnew glue.Catalog(this, 'ManagedKeyCatalog', {\n catalogName: 'managed-key-catalog',\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kms(),\n});\n\n// Disable encryption at rest\nnew glue.Catalog(this, 'PlaintextCatalog', {\n catalogName: 'plaintext-catalog',\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.disabled(),\n});\n```\n\nWhen you use `SSE-KMS-WITH-SERVICE-ROLE`, AWS Glue accesses the KMS key through a\nservice role you provide. If you pass a customer-managed key, the role is\nautomatically granted the permissions it needs to encrypt and decrypt catalog data:\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\ndeclare const key: kms.Key;\ndeclare const role: iam.IRole;\nglue.Catalog.encryptAccount(this, {\n encryptionAtRest: glue.DataCatalogEncryptionAtRest.kmsWithServiceRole(role, key),\n});\n```\n\nThe customer-managed key, when configured, is exposed on the catalog as\n`encryptionKey` (and the connection-password key as `connectionPasswordKey`), so\nyou can reference it to grant additional access. It is undefined when encryption is\ndisabled or an AWS-managed key is used.\n\n### Connection password encryption\n\nIndependently from encryption at rest, the Data Catalog can encrypt the passwords\nstored in connection properties. Configure it through the\n`connectionPasswordEncryption` option:\n\n```ts\ndeclare const key: kms.Key;\nglue.Catalog.encryptAccount(this, {\n connectionPasswordEncryption: {\n kmsKey: key,\n // Whether GetConnection/GetConnections return the password encrypted (default: true)\n returnConnectionPasswordEncrypted: true,\n },\n});\n```\n\nThe two encryption blocks are independent: enabling one does not require the other,\nand each may use a different KMS key. The customer-managed key for connection\npasswords is exposed as `connectionPasswordKey`.\n\n### Importing a catalog\n\nYou can import an existing catalog by ARN or by id. An imported catalog is a pure\nidentity handle — it emits no resources and does not manage the catalog's\nencryption:\n\n```ts\nconst byId = glue.Catalog.fromCatalogId(this, 'ById', 'my-catalog-id');\nconst byArn = glue.Catalog.fromCatalogArn(this, 'ByArn', 'arn:aws:glue:us-east-1:123456789012:catalog/my-catalog-id');\n```\n\nTo manage the Data Catalog encryption of a catalog you did not create in this\nstack, add a `CfnDataCatalogEncryptionSettings` resource targeting its id\ndirectly. Do this from exactly one stack: like the account catalog, a catalog has\na single encryption configuration, so two settings resources targeting the same id\nrace to overwrite one another at deploy time. Within a single stack this is caught\nby CloudFormation template validation (E3019, duplicate primary identifiers);\nacross stacks it is not, since each stack synthesizes to its own template.\n\n```ts\nimport { CfnDataCatalogEncryptionSettings } from 'aws-cdk-lib/aws-glue';\n\nnew CfnDataCatalogEncryptionSettings(this, 'Encryption', {\n catalogId: 'my-catalog-id',\n dataCatalogEncryptionSettings: {\n encryptionAtRest: { catalogEncryptionMode: 'SSE-KMS' },\n },\n});\n```\n\n## Database\n\nA `Database` is a logical grouping of `Tables` in the Glue Catalog.\n\n```ts\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n description: 'my_database_description',\n});\n```\n\nBecause a database is a container for tables and their metadata, it is retained\nby default when removed from the stack, to avoid accidental data loss. Set\n`removalPolicy` to `RemovalPolicy.DESTROY` to have it deleted instead:\n\n```ts\nimport { RemovalPolicy } from 'aws-cdk-lib';\n\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n removalPolicy: RemovalPolicy.DESTROY,\n});\n```\n\n## Table\n\nA Glue table describes a table of data in S3: its structure (column names and types), location of data (S3 objects with a common prefix in a S3 bucket), and format for the files (Json, Avro, Parquet, etc.):\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }, {\n name: 'col2',\n type: glue.Schema.array(glue.Schema.STRING),\n comment: 'col2 is an array of strings' // comment is optional\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nBy default, a S3 bucket will be created to store the table's data but you can manually pass the `bucket` and `s3Prefix`:\n\n```ts\ndeclare const myBucket: s3.Bucket;\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n bucket: myBucket,\n s3Prefix: 'my-table/',\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can be configured to contain user-defined properties, to describe the physical storage of table data, through the `storageParameters` property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('separatorChar', ',')\n ],\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can also be configured to contain user-defined table properties through the [`parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters) property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n parameters: {\n key1: 'val1',\n key2: 'val2',\n },\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Keys\n\nTo improve query performance, a table can specify `partitionKeys` on which data is stored and queried separately. For example, you might partition a table by `year` and `month` to optimize queries based on a time window:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Indexes\n\nAnother way to improve query performance is to specify partition indexes. If no partition indexes are\npresent on the table, AWS Glue loads all partitions of the table and filters the loaded partitions using\nthe query expression. The query takes more time to run as the number of partitions increase. With an\nindex, the query will try to fetch a subset of the partitions instead of loading all partitions of the\ntable.\n\nThe keys of a partition index must be a subset of the partition keys of the table. You can have a\nmaximum of 3 partition indexes per table. To specify a partition index, you can use the `partitionIndexes`\nproperty:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n partitionIndexes: [{\n indexName: 'my-index', // optional\n keyNames: ['year'],\n }], // supply up to 3 indexes\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nAlternatively, you can call the `addPartitionIndex()` function on a table:\n\n```ts\ndeclare const myTable: glue.Table;\nmyTable.addPartitionIndex({\n indexName: 'my-index',\n keyNames: ['year'],\n});\n```\n\n### Partition Filtering\n\nIf you have a table with a large number of partitions that grows over time, consider using AWS Glue partition indexing and filtering.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n enablePartitionFiltering: true,\n});\n```\n\n### Partition Projection\n\nPartition projection allows Athena to automatically add new partitions as new data arrives, without requiring `ALTER TABLE ADD PARTITION` statements. This improves query performance and reduces management overhead by eliminating the need to manually manage partition metadata.\n\nFor more information, see the [AWS documentation on partition projection](https://docs.aws.amazon.com/athena/latest/ug/partition-projection.html).\n\n#### INTEGER Projection\n\nFor partition keys with sequential numeric values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.INTEGER,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n interval: 1, // optional, defaults to 1\n digits: 4, // optional, pads with leading zeros\n }),\n },\n});\n```\n\n#### DATE Projection\n\nFor partition keys with date or timestamp values. Supports both fixed dates and relative dates using `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: '2020-01-01',\n max: '2023-12-31',\n format: 'yyyy-MM-dd',\n interval: 1, // optional, defaults to 1\n intervalUnit: glue.DateIntervalUnit.DAYS, // optional: YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS\n }),\n },\n});\n```\n\nYou can also use relative dates with `NOW`:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'date',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n date: glue.PartitionProjectionConfiguration.date({\n min: 'NOW-3YEARS',\n max: 'NOW',\n format: 'yyyy-MM-dd',\n }),\n },\n});\n```\n\n#### ENUM Projection\n\nFor partition keys with a known set of values:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'region',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2', 'eu-west-1'],\n }),\n },\n});\n```\n\n#### INJECTED Projection\n\nFor custom partition values injected at query time:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'custom',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n custom: glue.PartitionProjectionConfiguration.injected(),\n },\n});\n```\n\n#### Multiple Partition Projections\n\nYou can configure partition projection for multiple partition keys:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'data',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [\n {\n name: 'year',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'month',\n type: glue.Schema.INTEGER,\n },\n {\n name: 'region',\n type: glue.Schema.STRING,\n },\n ],\n dataFormat: glue.DataFormat.JSON,\n partitionProjection: {\n year: glue.PartitionProjectionConfiguration.integer({\n min: 2020,\n max: 2023,\n }),\n month: glue.PartitionProjectionConfiguration.integer({\n min: 1,\n max: 12,\n digits: 2,\n }),\n region: glue.PartitionProjectionConfiguration.enum({\n values: ['us-east-1', 'us-west-2'],\n }),\n },\n});\n```\n\n### Glue Connections\n\nGlue connections allow external data connections to third party databases and data warehouses. However, these connections can also be assigned to Glue Tables, allowing you to query external data sources using the Glue Data Catalog.\n\nWhereas `S3Table` will point to (and if needed, create) a bucket to store the tables' data, `ExternalTable` will point to an existing table in a data source. For example, to create a table in Glue that points to a table in Redshift:\n\n```ts\ndeclare const myConnection: glue.Connection;\ndeclare const myDatabase: glue.Database;\nnew glue.ExternalTable(this, 'MyTable', {\n connection: myConnection,\n externalDataLocation: 'default_db_public_example', // A table in Redshift\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## [Encryption](https://docs.aws.amazon.com/athena/latest/ug/encryption.html)\n\nWhen the table creates its own S3 bucket (i.e. you do not pass an explicit `bucket`), that bucket enforces SSL: a bucket policy denies any request made over plain HTTP. If you provide your own bucket, enabling `enforceSSL` on it is your responsibility.\n\nYou can enable encryption on a Table's data:\n\n* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - (default) Server side encryption (`SSE-S3`) with an Amazon S3-managed key.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.S3_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [Kms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [KmsManaged](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`), like `Kms`, except with an AWS KMS Key managed by the AWS Key Management Service.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [ClientSideKms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html#client-side-encryption-kms-managed-master-key-intro) - Client-side encryption (`CSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.S3Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n*Note: you cannot provide a `Bucket` when creating the `S3Table` if you wish to use server-side encryption (`KMS`, `KMS_MANAGED` or `S3_MANAGED`)*.\n\n## Types\n\nA table's schema is a collection of columns, each of which have a `name` and a `type`. Types are recursive structures, consisting of primitive and complex types:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n columns: [{\n name: 'primitive_column',\n type: glue.Schema.STRING,\n }, {\n name: 'array_column',\n type: glue.Schema.array(glue.Schema.INTEGER),\n comment: 'array<integer>',\n }, {\n name: 'map_column',\n type: glue.Schema.map(\n glue.Schema.STRING,\n glue.Schema.TIMESTAMP),\n comment: 'map<string,string>',\n }, {\n name: 'struct_column',\n type: glue.Schema.struct([{\n name: 'nested_column',\n type: glue.Schema.DATE,\n comment: 'nested comment',\n }]),\n comment: \"struct<nested_column:date COMMENT 'nested comment'>\",\n }],\n // ...\n database: myDatabase,\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n## Public FAQ\n\n### What are we launching today?\n\nWe’re launching new features to an AWS CDK Glue L2 Construct to provide\nbest-practice defaults and convenience methods to create Glue Jobs, Connections,\nTriggers, Workflows, and the underlying permissions and configuration.\n\n### Why should I use this Construct?\n\nDevelopers should use this Construct to reduce the amount of boilerplate\ncode and complexity each individual has to navigate, and make it easier to\ncreate best-practice Glue resources.\n\n### What’s not in scope?\n\nGlue Crawlers and other resources that are now managed by the AWS LakeFormation\nteam are not in scope for this effort. Developers should use existing methods\nto create these resources, and the new Glue L2 construct assumes they already\nexist as inputs. While best practice is for application and infrastructure code\nto be as close as possible for teams using fully-implemented DevOps mechanisms,\nin practice these ETL scripts are likely managed by a data science team who\nknow Python or Scala and don’t necessarily own or manage their own\ninfrastructure deployments. We want to meet developers where they are, and not\nassume that all of the code resides in the same repository, Developers can\nautomate this themselves via the CDK, however, if they do own both.\n\nValidating Glue version and feature use per AWS region at synth time is also\nnot in scope. AWS’ intention is for all features to eventually be propagated to\nall Global regions, so the complexity involved in creating and updating region-\nspecific configuration to match shifting feature sets does not out-weigh the\nlikelihood that a developer will use this construct to deploy resources to a\nregion without a particular new feature to a region that doesn’t yet support\nit without researching or manually attempting to use that feature before\ndeveloping it via IaC. The developer will, of course, still get feedback from\nthe underlying Glue APIs as CloudFormation deploys the resources similar to the\ncurrent CDK L1 Glue experience.\n"
|
|
9413
9413
|
},
|
|
9414
9414
|
"repository": {
|
|
9415
9415
|
"directory": "packages/@aws-cdk/aws-glue-alpha",
|
|
@@ -10974,7 +10974,7 @@
|
|
|
10974
10974
|
},
|
|
10975
10975
|
"locationInModule": {
|
|
10976
10976
|
"filename": "lib/connection.ts",
|
|
10977
|
-
"line":
|
|
10977
|
+
"line": 359
|
|
10978
10978
|
},
|
|
10979
10979
|
"parameters": [
|
|
10980
10980
|
{
|
|
@@ -11003,7 +11003,7 @@
|
|
|
11003
11003
|
"kind": "class",
|
|
11004
11004
|
"locationInModule": {
|
|
11005
11005
|
"filename": "lib/connection.ts",
|
|
11006
|
-
"line":
|
|
11006
|
+
"line": 311
|
|
11007
11007
|
},
|
|
11008
11008
|
"methods": [
|
|
11009
11009
|
{
|
|
@@ -11013,7 +11013,7 @@
|
|
|
11013
11013
|
},
|
|
11014
11014
|
"locationInModule": {
|
|
11015
11015
|
"filename": "lib/connection.ts",
|
|
11016
|
-
"line":
|
|
11016
|
+
"line": 323
|
|
11017
11017
|
},
|
|
11018
11018
|
"name": "fromConnectionArn",
|
|
11019
11019
|
"parameters": [
|
|
@@ -11059,7 +11059,7 @@
|
|
|
11059
11059
|
},
|
|
11060
11060
|
"locationInModule": {
|
|
11061
11061
|
"filename": "lib/connection.ts",
|
|
11062
|
-
"line":
|
|
11062
|
+
"line": 339
|
|
11063
11063
|
},
|
|
11064
11064
|
"name": "fromConnectionName",
|
|
11065
11065
|
"parameters": [
|
|
@@ -11105,7 +11105,7 @@
|
|
|
11105
11105
|
},
|
|
11106
11106
|
"locationInModule": {
|
|
11107
11107
|
"filename": "lib/connection.ts",
|
|
11108
|
-
"line":
|
|
11108
|
+
"line": 420
|
|
11109
11109
|
},
|
|
11110
11110
|
"name": "addProperty",
|
|
11111
11111
|
"parameters": [
|
|
@@ -11141,7 +11141,7 @@
|
|
|
11141
11141
|
"immutable": true,
|
|
11142
11142
|
"locationInModule": {
|
|
11143
11143
|
"filename": "lib/connection.ts",
|
|
11144
|
-
"line":
|
|
11144
|
+
"line": 314
|
|
11145
11145
|
},
|
|
11146
11146
|
"name": "PROPERTY_INJECTION_ID",
|
|
11147
11147
|
"static": true,
|
|
@@ -11157,7 +11157,7 @@
|
|
|
11157
11157
|
"immutable": true,
|
|
11158
11158
|
"locationInModule": {
|
|
11159
11159
|
"filename": "lib/connection.ts",
|
|
11160
|
-
"line":
|
|
11160
|
+
"line": 410
|
|
11161
11161
|
},
|
|
11162
11162
|
"name": "connectionArn",
|
|
11163
11163
|
"overrides": "@aws-cdk/aws-glue-alpha.IConnection",
|
|
@@ -11173,7 +11173,7 @@
|
|
|
11173
11173
|
"immutable": true,
|
|
11174
11174
|
"locationInModule": {
|
|
11175
11175
|
"filename": "lib/connection.ts",
|
|
11176
|
-
"line":
|
|
11176
|
+
"line": 402
|
|
11177
11177
|
},
|
|
11178
11178
|
"name": "connectionName",
|
|
11179
11179
|
"overrides": "@aws-cdk/aws-glue-alpha.IConnection",
|
|
@@ -11199,7 +11199,7 @@
|
|
|
11199
11199
|
"kind": "interface",
|
|
11200
11200
|
"locationInModule": {
|
|
11201
11201
|
"filename": "lib/connection.ts",
|
|
11202
|
-
"line":
|
|
11202
|
+
"line": 258
|
|
11203
11203
|
},
|
|
11204
11204
|
"name": "ConnectionOptions",
|
|
11205
11205
|
"properties": [
|
|
@@ -11213,7 +11213,7 @@
|
|
|
11213
11213
|
"immutable": true,
|
|
11214
11214
|
"locationInModule": {
|
|
11215
11215
|
"filename": "lib/connection.ts",
|
|
11216
|
-
"line":
|
|
11216
|
+
"line": 263
|
|
11217
11217
|
},
|
|
11218
11218
|
"name": "connectionName",
|
|
11219
11219
|
"optional": true,
|
|
@@ -11231,7 +11231,7 @@
|
|
|
11231
11231
|
"immutable": true,
|
|
11232
11232
|
"locationInModule": {
|
|
11233
11233
|
"filename": "lib/connection.ts",
|
|
11234
|
-
"line":
|
|
11234
|
+
"line": 269
|
|
11235
11235
|
},
|
|
11236
11236
|
"name": "description",
|
|
11237
11237
|
"optional": true,
|
|
@@ -11250,7 +11250,7 @@
|
|
|
11250
11250
|
"immutable": true,
|
|
11251
11251
|
"locationInModule": {
|
|
11252
11252
|
"filename": "lib/connection.ts",
|
|
11253
|
-
"line":
|
|
11253
|
+
"line": 283
|
|
11254
11254
|
},
|
|
11255
11255
|
"name": "matchCriteria",
|
|
11256
11256
|
"optional": true,
|
|
@@ -11274,7 +11274,7 @@
|
|
|
11274
11274
|
"immutable": true,
|
|
11275
11275
|
"locationInModule": {
|
|
11276
11276
|
"filename": "lib/connection.ts",
|
|
11277
|
-
"line":
|
|
11277
|
+
"line": 276
|
|
11278
11278
|
},
|
|
11279
11279
|
"name": "properties",
|
|
11280
11280
|
"optional": true,
|
|
@@ -11297,7 +11297,7 @@
|
|
|
11297
11297
|
"immutable": true,
|
|
11298
11298
|
"locationInModule": {
|
|
11299
11299
|
"filename": "lib/connection.ts",
|
|
11300
|
-
"line":
|
|
11300
|
+
"line": 289
|
|
11301
11301
|
},
|
|
11302
11302
|
"name": "securityGroups",
|
|
11303
11303
|
"optional": true,
|
|
@@ -11321,7 +11321,7 @@
|
|
|
11321
11321
|
"immutable": true,
|
|
11322
11322
|
"locationInModule": {
|
|
11323
11323
|
"filename": "lib/connection.ts",
|
|
11324
|
-
"line":
|
|
11324
|
+
"line": 295
|
|
11325
11325
|
},
|
|
11326
11326
|
"name": "subnet",
|
|
11327
11327
|
"optional": true,
|
|
@@ -11411,7 +11411,7 @@
|
|
|
11411
11411
|
"kind": "interface",
|
|
11412
11412
|
"locationInModule": {
|
|
11413
11413
|
"filename": "lib/connection.ts",
|
|
11414
|
-
"line":
|
|
11414
|
+
"line": 301
|
|
11415
11415
|
},
|
|
11416
11416
|
"name": "ConnectionProps",
|
|
11417
11417
|
"properties": [
|
|
@@ -11424,7 +11424,7 @@
|
|
|
11424
11424
|
"immutable": true,
|
|
11425
11425
|
"locationInModule": {
|
|
11426
11426
|
"filename": "lib/connection.ts",
|
|
11427
|
-
"line":
|
|
11427
|
+
"line": 305
|
|
11428
11428
|
},
|
|
11429
11429
|
"name": "type",
|
|
11430
11430
|
"type": {
|
|
@@ -11453,7 +11453,7 @@
|
|
|
11453
11453
|
},
|
|
11454
11454
|
"locationInModule": {
|
|
11455
11455
|
"filename": "lib/connection.ts",
|
|
11456
|
-
"line":
|
|
11456
|
+
"line": 226
|
|
11457
11457
|
},
|
|
11458
11458
|
"parameters": [
|
|
11459
11459
|
{
|
|
@@ -11467,7 +11467,7 @@
|
|
|
11467
11467
|
"kind": "class",
|
|
11468
11468
|
"locationInModule": {
|
|
11469
11469
|
"filename": "lib/connection.ts",
|
|
11470
|
-
"line":
|
|
11470
|
+
"line": 18
|
|
11471
11471
|
},
|
|
11472
11472
|
"methods": [
|
|
11473
11473
|
{
|
|
@@ -11477,7 +11477,7 @@
|
|
|
11477
11477
|
},
|
|
11478
11478
|
"locationInModule": {
|
|
11479
11479
|
"filename": "lib/connection.ts",
|
|
11480
|
-
"line":
|
|
11480
|
+
"line": 233
|
|
11481
11481
|
},
|
|
11482
11482
|
"name": "toString",
|
|
11483
11483
|
"returns": {
|
|
@@ -11498,7 +11498,7 @@
|
|
|
11498
11498
|
"immutable": true,
|
|
11499
11499
|
"locationInModule": {
|
|
11500
11500
|
"filename": "lib/connection.ts",
|
|
11501
|
-
"line":
|
|
11501
|
+
"line": 174
|
|
11502
11502
|
},
|
|
11503
11503
|
"name": "AZURECOSMOS",
|
|
11504
11504
|
"static": true,
|
|
@@ -11515,7 +11515,7 @@
|
|
|
11515
11515
|
"immutable": true,
|
|
11516
11516
|
"locationInModule": {
|
|
11517
11517
|
"filename": "lib/connection.ts",
|
|
11518
|
-
"line":
|
|
11518
|
+
"line": 169
|
|
11519
11519
|
},
|
|
11520
11520
|
"name": "AZURESQL",
|
|
11521
11521
|
"static": true,
|
|
@@ -11532,7 +11532,7 @@
|
|
|
11532
11532
|
"immutable": true,
|
|
11533
11533
|
"locationInModule": {
|
|
11534
11534
|
"filename": "lib/connection.ts",
|
|
11535
|
-
"line":
|
|
11535
|
+
"line": 164
|
|
11536
11536
|
},
|
|
11537
11537
|
"name": "BIGQUERY",
|
|
11538
11538
|
"static": true,
|
|
@@ -11549,7 +11549,7 @@
|
|
|
11549
11549
|
"immutable": true,
|
|
11550
11550
|
"locationInModule": {
|
|
11551
11551
|
"filename": "lib/connection.ts",
|
|
11552
|
-
"line":
|
|
11552
|
+
"line": 59
|
|
11553
11553
|
},
|
|
11554
11554
|
"name": "CUSTOM",
|
|
11555
11555
|
"static": true,
|
|
@@ -11566,7 +11566,7 @@
|
|
|
11566
11566
|
"immutable": true,
|
|
11567
11567
|
"locationInModule": {
|
|
11568
11568
|
"filename": "lib/connection.ts",
|
|
11569
|
-
"line":
|
|
11569
|
+
"line": 219
|
|
11570
11570
|
},
|
|
11571
11571
|
"name": "DYNAMODB",
|
|
11572
11572
|
"static": true,
|
|
@@ -11583,7 +11583,7 @@
|
|
|
11583
11583
|
"immutable": true,
|
|
11584
11584
|
"locationInModule": {
|
|
11585
11585
|
"filename": "lib/connection.ts",
|
|
11586
|
-
"line":
|
|
11586
|
+
"line": 64
|
|
11587
11587
|
},
|
|
11588
11588
|
"name": "FACEBOOKADS",
|
|
11589
11589
|
"static": true,
|
|
@@ -11600,7 +11600,7 @@
|
|
|
11600
11600
|
"immutable": true,
|
|
11601
11601
|
"locationInModule": {
|
|
11602
11602
|
"filename": "lib/connection.ts",
|
|
11603
|
-
"line":
|
|
11603
|
+
"line": 69
|
|
11604
11604
|
},
|
|
11605
11605
|
"name": "GOOGLEADS",
|
|
11606
11606
|
"static": true,
|
|
@@ -11617,7 +11617,7 @@
|
|
|
11617
11617
|
"immutable": true,
|
|
11618
11618
|
"locationInModule": {
|
|
11619
11619
|
"filename": "lib/connection.ts",
|
|
11620
|
-
"line":
|
|
11620
|
+
"line": 79
|
|
11621
11621
|
},
|
|
11622
11622
|
"name": "GOOGLEANALYTICS4",
|
|
11623
11623
|
"static": true,
|
|
@@ -11634,7 +11634,7 @@
|
|
|
11634
11634
|
"immutable": true,
|
|
11635
11635
|
"locationInModule": {
|
|
11636
11636
|
"filename": "lib/connection.ts",
|
|
11637
|
-
"line":
|
|
11637
|
+
"line": 74
|
|
11638
11638
|
},
|
|
11639
11639
|
"name": "GOOGLESHEETS",
|
|
11640
11640
|
"static": true,
|
|
@@ -11651,7 +11651,7 @@
|
|
|
11651
11651
|
"immutable": true,
|
|
11652
11652
|
"locationInModule": {
|
|
11653
11653
|
"filename": "lib/connection.ts",
|
|
11654
|
-
"line":
|
|
11654
|
+
"line": 84
|
|
11655
11655
|
},
|
|
11656
11656
|
"name": "HUBSPOT",
|
|
11657
11657
|
"static": true,
|
|
@@ -11668,7 +11668,7 @@
|
|
|
11668
11668
|
"immutable": true,
|
|
11669
11669
|
"locationInModule": {
|
|
11670
11670
|
"filename": "lib/connection.ts",
|
|
11671
|
-
"line":
|
|
11671
|
+
"line": 89
|
|
11672
11672
|
},
|
|
11673
11673
|
"name": "INSTAGRAMADS",
|
|
11674
11674
|
"static": true,
|
|
@@ -11685,7 +11685,7 @@
|
|
|
11685
11685
|
"immutable": true,
|
|
11686
11686
|
"locationInModule": {
|
|
11687
11687
|
"filename": "lib/connection.ts",
|
|
11688
|
-
"line":
|
|
11688
|
+
"line": 94
|
|
11689
11689
|
},
|
|
11690
11690
|
"name": "INTERCOM",
|
|
11691
11691
|
"static": true,
|
|
@@ -11702,7 +11702,7 @@
|
|
|
11702
11702
|
"immutable": true,
|
|
11703
11703
|
"locationInModule": {
|
|
11704
11704
|
"filename": "lib/connection.ts",
|
|
11705
|
-
"line":
|
|
11705
|
+
"line": 22
|
|
11706
11706
|
},
|
|
11707
11707
|
"name": "JDBC",
|
|
11708
11708
|
"static": true,
|
|
@@ -11719,7 +11719,7 @@
|
|
|
11719
11719
|
"immutable": true,
|
|
11720
11720
|
"locationInModule": {
|
|
11721
11721
|
"filename": "lib/connection.ts",
|
|
11722
|
-
"line":
|
|
11722
|
+
"line": 99
|
|
11723
11723
|
},
|
|
11724
11724
|
"name": "JIRACLOUD",
|
|
11725
11725
|
"static": true,
|
|
@@ -11736,7 +11736,7 @@
|
|
|
11736
11736
|
"immutable": true,
|
|
11737
11737
|
"locationInModule": {
|
|
11738
11738
|
"filename": "lib/connection.ts",
|
|
11739
|
-
"line":
|
|
11739
|
+
"line": 27
|
|
11740
11740
|
},
|
|
11741
11741
|
"name": "KAFKA",
|
|
11742
11742
|
"static": true,
|
|
@@ -11753,7 +11753,7 @@
|
|
|
11753
11753
|
"immutable": true,
|
|
11754
11754
|
"locationInModule": {
|
|
11755
11755
|
"filename": "lib/connection.ts",
|
|
11756
|
-
"line":
|
|
11756
|
+
"line": 104
|
|
11757
11757
|
},
|
|
11758
11758
|
"name": "MARKETO",
|
|
11759
11759
|
"static": true,
|
|
@@ -11770,7 +11770,7 @@
|
|
|
11770
11770
|
"immutable": true,
|
|
11771
11771
|
"locationInModule": {
|
|
11772
11772
|
"filename": "lib/connection.ts",
|
|
11773
|
-
"line":
|
|
11773
|
+
"line": 53
|
|
11774
11774
|
},
|
|
11775
11775
|
"name": "MARKETPLACE",
|
|
11776
11776
|
"static": true,
|
|
@@ -11787,7 +11787,7 @@
|
|
|
11787
11787
|
"immutable": true,
|
|
11788
11788
|
"locationInModule": {
|
|
11789
11789
|
"filename": "lib/connection.ts",
|
|
11790
|
-
"line":
|
|
11790
|
+
"line": 32
|
|
11791
11791
|
},
|
|
11792
11792
|
"name": "MONGODB",
|
|
11793
11793
|
"static": true,
|
|
@@ -11804,7 +11804,7 @@
|
|
|
11804
11804
|
"immutable": true,
|
|
11805
11805
|
"locationInModule": {
|
|
11806
11806
|
"filename": "lib/connection.ts",
|
|
11807
|
-
"line":
|
|
11807
|
+
"line": 184
|
|
11808
11808
|
},
|
|
11809
11809
|
"name": "MYSQL",
|
|
11810
11810
|
"static": true,
|
|
@@ -11821,7 +11821,7 @@
|
|
|
11821
11821
|
"immutable": true,
|
|
11822
11822
|
"locationInModule": {
|
|
11823
11823
|
"filename": "lib/connection.ts",
|
|
11824
|
-
"line":
|
|
11824
|
+
"line": 109
|
|
11825
11825
|
},
|
|
11826
11826
|
"name": "NETSUITEERP",
|
|
11827
11827
|
"static": true,
|
|
@@ -11838,7 +11838,7 @@
|
|
|
11838
11838
|
"immutable": true,
|
|
11839
11839
|
"locationInModule": {
|
|
11840
11840
|
"filename": "lib/connection.ts",
|
|
11841
|
-
"line":
|
|
11841
|
+
"line": 47
|
|
11842
11842
|
},
|
|
11843
11843
|
"name": "NETWORK",
|
|
11844
11844
|
"static": true,
|
|
@@ -11855,7 +11855,7 @@
|
|
|
11855
11855
|
"immutable": true,
|
|
11856
11856
|
"locationInModule": {
|
|
11857
11857
|
"filename": "lib/connection.ts",
|
|
11858
|
-
"line":
|
|
11858
|
+
"line": 179
|
|
11859
11859
|
},
|
|
11860
11860
|
"name": "OPENSEARCH",
|
|
11861
11861
|
"static": true,
|
|
@@ -11872,7 +11872,7 @@
|
|
|
11872
11872
|
"immutable": true,
|
|
11873
11873
|
"locationInModule": {
|
|
11874
11874
|
"filename": "lib/connection.ts",
|
|
11875
|
-
"line":
|
|
11875
|
+
"line": 194
|
|
11876
11876
|
},
|
|
11877
11877
|
"name": "ORACLE",
|
|
11878
11878
|
"static": true,
|
|
@@ -11889,7 +11889,7 @@
|
|
|
11889
11889
|
"immutable": true,
|
|
11890
11890
|
"locationInModule": {
|
|
11891
11891
|
"filename": "lib/connection.ts",
|
|
11892
|
-
"line":
|
|
11892
|
+
"line": 189
|
|
11893
11893
|
},
|
|
11894
11894
|
"name": "POSTGRESQL",
|
|
11895
11895
|
"static": true,
|
|
@@ -11906,7 +11906,7 @@
|
|
|
11906
11906
|
"immutable": true,
|
|
11907
11907
|
"locationInModule": {
|
|
11908
11908
|
"filename": "lib/connection.ts",
|
|
11909
|
-
"line":
|
|
11909
|
+
"line": 114
|
|
11910
11910
|
},
|
|
11911
11911
|
"name": "SALESFORCE",
|
|
11912
11912
|
"static": true,
|
|
@@ -11923,7 +11923,7 @@
|
|
|
11923
11923
|
"immutable": true,
|
|
11924
11924
|
"locationInModule": {
|
|
11925
11925
|
"filename": "lib/connection.ts",
|
|
11926
|
-
"line":
|
|
11926
|
+
"line": 119
|
|
11927
11927
|
},
|
|
11928
11928
|
"name": "SALESFORCEMARKETINGCLOUD",
|
|
11929
11929
|
"static": true,
|
|
@@ -11940,7 +11940,7 @@
|
|
|
11940
11940
|
"immutable": true,
|
|
11941
11941
|
"locationInModule": {
|
|
11942
11942
|
"filename": "lib/connection.ts",
|
|
11943
|
-
"line":
|
|
11943
|
+
"line": 124
|
|
11944
11944
|
},
|
|
11945
11945
|
"name": "SALESFORCEPARDOT",
|
|
11946
11946
|
"static": true,
|
|
@@ -11957,7 +11957,7 @@
|
|
|
11957
11957
|
"immutable": true,
|
|
11958
11958
|
"locationInModule": {
|
|
11959
11959
|
"filename": "lib/connection.ts",
|
|
11960
|
-
"line":
|
|
11960
|
+
"line": 204
|
|
11961
11961
|
},
|
|
11962
11962
|
"name": "SAPHANA",
|
|
11963
11963
|
"static": true,
|
|
@@ -11974,7 +11974,7 @@
|
|
|
11974
11974
|
"immutable": true,
|
|
11975
11975
|
"locationInModule": {
|
|
11976
11976
|
"filename": "lib/connection.ts",
|
|
11977
|
-
"line":
|
|
11977
|
+
"line": 129
|
|
11978
11978
|
},
|
|
11979
11979
|
"name": "SAPODATA",
|
|
11980
11980
|
"static": true,
|
|
@@ -11991,7 +11991,7 @@
|
|
|
11991
11991
|
"immutable": true,
|
|
11992
11992
|
"locationInModule": {
|
|
11993
11993
|
"filename": "lib/connection.ts",
|
|
11994
|
-
"line":
|
|
11994
|
+
"line": 134
|
|
11995
11995
|
},
|
|
11996
11996
|
"name": "SERVICENOW",
|
|
11997
11997
|
"static": true,
|
|
@@ -12008,7 +12008,7 @@
|
|
|
12008
12008
|
"immutable": true,
|
|
12009
12009
|
"locationInModule": {
|
|
12010
12010
|
"filename": "lib/connection.ts",
|
|
12011
|
-
"line":
|
|
12011
|
+
"line": 139
|
|
12012
12012
|
},
|
|
12013
12013
|
"name": "SLACK",
|
|
12014
12014
|
"static": true,
|
|
@@ -12025,7 +12025,7 @@
|
|
|
12025
12025
|
"immutable": true,
|
|
12026
12026
|
"locationInModule": {
|
|
12027
12027
|
"filename": "lib/connection.ts",
|
|
12028
|
-
"line":
|
|
12028
|
+
"line": 144
|
|
12029
12029
|
},
|
|
12030
12030
|
"name": "SNAPCHATADS",
|
|
12031
12031
|
"static": true,
|
|
@@ -12042,7 +12042,7 @@
|
|
|
12042
12042
|
"immutable": true,
|
|
12043
12043
|
"locationInModule": {
|
|
12044
12044
|
"filename": "lib/connection.ts",
|
|
12045
|
-
"line":
|
|
12045
|
+
"line": 199
|
|
12046
12046
|
},
|
|
12047
12047
|
"name": "SQLSERVER",
|
|
12048
12048
|
"static": true,
|
|
@@ -12059,7 +12059,7 @@
|
|
|
12059
12059
|
"immutable": true,
|
|
12060
12060
|
"locationInModule": {
|
|
12061
12061
|
"filename": "lib/connection.ts",
|
|
12062
|
-
"line":
|
|
12062
|
+
"line": 149
|
|
12063
12063
|
},
|
|
12064
12064
|
"name": "STRIPE",
|
|
12065
12065
|
"static": true,
|
|
@@ -12076,7 +12076,7 @@
|
|
|
12076
12076
|
"immutable": true,
|
|
12077
12077
|
"locationInModule": {
|
|
12078
12078
|
"filename": "lib/connection.ts",
|
|
12079
|
-
"line":
|
|
12079
|
+
"line": 209
|
|
12080
12080
|
},
|
|
12081
12081
|
"name": "TERADATA",
|
|
12082
12082
|
"static": true,
|
|
@@ -12093,7 +12093,7 @@
|
|
|
12093
12093
|
"immutable": true,
|
|
12094
12094
|
"locationInModule": {
|
|
12095
12095
|
"filename": "lib/connection.ts",
|
|
12096
|
-
"line":
|
|
12096
|
+
"line": 214
|
|
12097
12097
|
},
|
|
12098
12098
|
"name": "VERTICA",
|
|
12099
12099
|
"static": true,
|
|
@@ -12110,7 +12110,7 @@
|
|
|
12110
12110
|
"immutable": true,
|
|
12111
12111
|
"locationInModule": {
|
|
12112
12112
|
"filename": "lib/connection.ts",
|
|
12113
|
-
"line":
|
|
12113
|
+
"line": 42
|
|
12114
12114
|
},
|
|
12115
12115
|
"name": "VIEW_VALIDATION_ATHENA",
|
|
12116
12116
|
"static": true,
|
|
@@ -12127,7 +12127,7 @@
|
|
|
12127
12127
|
"immutable": true,
|
|
12128
12128
|
"locationInModule": {
|
|
12129
12129
|
"filename": "lib/connection.ts",
|
|
12130
|
-
"line":
|
|
12130
|
+
"line": 37
|
|
12131
12131
|
},
|
|
12132
12132
|
"name": "VIEW_VALIDATION_REDSHIFT",
|
|
12133
12133
|
"static": true,
|
|
@@ -12144,7 +12144,7 @@
|
|
|
12144
12144
|
"immutable": true,
|
|
12145
12145
|
"locationInModule": {
|
|
12146
12146
|
"filename": "lib/connection.ts",
|
|
12147
|
-
"line":
|
|
12147
|
+
"line": 154
|
|
12148
12148
|
},
|
|
12149
12149
|
"name": "ZENDESK",
|
|
12150
12150
|
"static": true,
|
|
@@ -12161,7 +12161,7 @@
|
|
|
12161
12161
|
"immutable": true,
|
|
12162
12162
|
"locationInModule": {
|
|
12163
12163
|
"filename": "lib/connection.ts",
|
|
12164
|
-
"line":
|
|
12164
|
+
"line": 159
|
|
12165
12165
|
},
|
|
12166
12166
|
"name": "ZOHOCRM",
|
|
12167
12167
|
"static": true,
|
|
@@ -12177,7 +12177,7 @@
|
|
|
12177
12177
|
"immutable": true,
|
|
12178
12178
|
"locationInModule": {
|
|
12179
12179
|
"filename": "lib/connection.ts",
|
|
12180
|
-
"line":
|
|
12180
|
+
"line": 224
|
|
12181
12181
|
},
|
|
12182
12182
|
"name": "name",
|
|
12183
12183
|
"type": {
|
|
@@ -12203,7 +12203,7 @@
|
|
|
12203
12203
|
"kind": "interface",
|
|
12204
12204
|
"locationInModule": {
|
|
12205
12205
|
"filename": "lib/jobs/job.ts",
|
|
12206
|
-
"line":
|
|
12206
|
+
"line": 92
|
|
12207
12207
|
},
|
|
12208
12208
|
"name": "ContinuousLoggingProps",
|
|
12209
12209
|
"properties": [
|
|
@@ -12216,7 +12216,7 @@
|
|
|
12216
12216
|
"immutable": true,
|
|
12217
12217
|
"locationInModule": {
|
|
12218
12218
|
"filename": "lib/jobs/job.ts",
|
|
12219
|
-
"line":
|
|
12219
|
+
"line": 96
|
|
12220
12220
|
},
|
|
12221
12221
|
"name": "enabled",
|
|
12222
12222
|
"type": {
|
|
@@ -12234,7 +12234,7 @@
|
|
|
12234
12234
|
"immutable": true,
|
|
12235
12235
|
"locationInModule": {
|
|
12236
12236
|
"filename": "lib/jobs/job.ts",
|
|
12237
|
-
"line":
|
|
12237
|
+
"line": 126
|
|
12238
12238
|
},
|
|
12239
12239
|
"name": "conversionPattern",
|
|
12240
12240
|
"optional": true,
|
|
@@ -12252,7 +12252,7 @@
|
|
|
12252
12252
|
"immutable": true,
|
|
12253
12253
|
"locationInModule": {
|
|
12254
12254
|
"filename": "lib/jobs/job.ts",
|
|
12255
|
-
"line":
|
|
12255
|
+
"line": 103
|
|
12256
12256
|
},
|
|
12257
12257
|
"name": "logGroup",
|
|
12258
12258
|
"optional": true,
|
|
@@ -12270,7 +12270,7 @@
|
|
|
12270
12270
|
"immutable": true,
|
|
12271
12271
|
"locationInModule": {
|
|
12272
12272
|
"filename": "lib/jobs/job.ts",
|
|
12273
|
-
"line":
|
|
12273
|
+
"line": 110
|
|
12274
12274
|
},
|
|
12275
12275
|
"name": "logStreamPrefix",
|
|
12276
12276
|
"optional": true,
|
|
@@ -12288,7 +12288,7 @@
|
|
|
12288
12288
|
"immutable": true,
|
|
12289
12289
|
"locationInModule": {
|
|
12290
12290
|
"filename": "lib/jobs/job.ts",
|
|
12291
|
-
"line":
|
|
12291
|
+
"line": 117
|
|
12292
12292
|
},
|
|
12293
12293
|
"name": "quiet",
|
|
12294
12294
|
"optional": true,
|
|
@@ -12958,7 +12958,7 @@
|
|
|
12958
12958
|
"docs": {
|
|
12959
12959
|
"stability": "experimental",
|
|
12960
12960
|
"summary": "A Glue Data Quality ruleset.",
|
|
12961
|
-
"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 dataQualityTargetTable: glue_alpha.DataQualityTargetTable;\nconst dataQualityRuleset = new glue_alpha.DataQualityRuleset(this, 'MyDataQualityRuleset', {\n rulesetDqdl: 'rulesetDqdl',\n targetTable: dataQualityTargetTable,\n\n // the properties below are optional\n clientToken: 'clientToken',\n description: 'description',\n rulesetName: 'rulesetName',\n tags: {\n tagsKey: 'tags',\n },\n});",
|
|
12961
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport * as cdk from 'aws-cdk-lib';\n\ndeclare const dataQualityTargetTable: glue_alpha.DataQualityTargetTable;\nconst dataQualityRuleset = new glue_alpha.DataQualityRuleset(this, 'MyDataQualityRuleset', {\n rulesetDqdl: 'rulesetDqdl',\n targetTable: dataQualityTargetTable,\n\n // the properties below are optional\n clientToken: 'clientToken',\n description: 'description',\n removalPolicy: cdk.RemovalPolicy.DESTROY,\n rulesetName: 'rulesetName',\n tags: {\n tagsKey: 'tags',\n },\n});",
|
|
12962
12962
|
"custom": {
|
|
12963
12963
|
"exampleMetadata": "fixture=_generated"
|
|
12964
12964
|
}
|
|
@@ -12970,7 +12970,7 @@
|
|
|
12970
12970
|
},
|
|
12971
12971
|
"locationInModule": {
|
|
12972
12972
|
"filename": "lib/data-quality-ruleset.ts",
|
|
12973
|
-
"line":
|
|
12973
|
+
"line": 128
|
|
12974
12974
|
},
|
|
12975
12975
|
"parameters": [
|
|
12976
12976
|
{
|
|
@@ -12999,7 +12999,7 @@
|
|
|
12999
12999
|
"kind": "class",
|
|
13000
13000
|
"locationInModule": {
|
|
13001
13001
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13002
|
-
"line":
|
|
13002
|
+
"line": 95
|
|
13003
13003
|
},
|
|
13004
13004
|
"methods": [
|
|
13005
13005
|
{
|
|
@@ -13008,7 +13008,7 @@
|
|
|
13008
13008
|
},
|
|
13009
13009
|
"locationInModule": {
|
|
13010
13010
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13011
|
-
"line":
|
|
13011
|
+
"line": 100
|
|
13012
13012
|
},
|
|
13013
13013
|
"name": "fromRulesetArn",
|
|
13014
13014
|
"parameters": [
|
|
@@ -13044,7 +13044,7 @@
|
|
|
13044
13044
|
},
|
|
13045
13045
|
"locationInModule": {
|
|
13046
13046
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13047
|
-
"line":
|
|
13047
|
+
"line": 109
|
|
13048
13048
|
},
|
|
13049
13049
|
"name": "fromRulesetName",
|
|
13050
13050
|
"parameters": [
|
|
@@ -13086,7 +13086,7 @@
|
|
|
13086
13086
|
"immutable": true,
|
|
13087
13087
|
"locationInModule": {
|
|
13088
13088
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13089
|
-
"line":
|
|
13089
|
+
"line": 98
|
|
13090
13090
|
},
|
|
13091
13091
|
"name": "PROPERTY_INJECTION_ID",
|
|
13092
13092
|
"static": true,
|
|
@@ -13102,7 +13102,7 @@
|
|
|
13102
13102
|
"immutable": true,
|
|
13103
13103
|
"locationInModule": {
|
|
13104
13104
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13105
|
-
"line":
|
|
13105
|
+
"line": 158
|
|
13106
13106
|
},
|
|
13107
13107
|
"name": "rulesetArn",
|
|
13108
13108
|
"overrides": "@aws-cdk/aws-glue-alpha.IDataQualityRuleset",
|
|
@@ -13118,7 +13118,7 @@
|
|
|
13118
13118
|
"immutable": true,
|
|
13119
13119
|
"locationInModule": {
|
|
13120
13120
|
"filename": "lib/data-quality-ruleset.ts",
|
|
13121
|
-
"line":
|
|
13121
|
+
"line": 150
|
|
13122
13122
|
},
|
|
13123
13123
|
"name": "rulesetName",
|
|
13124
13124
|
"overrides": "@aws-cdk/aws-glue-alpha.IDataQualityRuleset",
|
|
@@ -13135,7 +13135,7 @@
|
|
|
13135
13135
|
"docs": {
|
|
13136
13136
|
"stability": "experimental",
|
|
13137
13137
|
"summary": "Construction properties for `DataQualityRuleset`.",
|
|
13138
|
-
"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 dataQualityTargetTable: glue_alpha.DataQualityTargetTable;\nconst dataQualityRulesetProps: glue_alpha.DataQualityRulesetProps = {\n rulesetDqdl: 'rulesetDqdl',\n targetTable: dataQualityTargetTable,\n\n // the properties below are optional\n clientToken: 'clientToken',\n description: 'description',\n rulesetName: 'rulesetName',\n tags: {\n tagsKey: 'tags',\n },\n};",
|
|
13138
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport * as cdk from 'aws-cdk-lib';\n\ndeclare const dataQualityTargetTable: glue_alpha.DataQualityTargetTable;\nconst dataQualityRulesetProps: glue_alpha.DataQualityRulesetProps = {\n rulesetDqdl: 'rulesetDqdl',\n targetTable: dataQualityTargetTable,\n\n // the properties below are optional\n clientToken: 'clientToken',\n description: 'description',\n removalPolicy: cdk.RemovalPolicy.DESTROY,\n rulesetName: 'rulesetName',\n tags: {\n tagsKey: 'tags',\n },\n};",
|
|
13139
13139
|
"custom": {
|
|
13140
13140
|
"exampleMetadata": "fixture=_generated"
|
|
13141
13141
|
}
|
|
@@ -13226,6 +13226,24 @@
|
|
|
13226
13226
|
"primitive": "string"
|
|
13227
13227
|
}
|
|
13228
13228
|
},
|
|
13229
|
+
{
|
|
13230
|
+
"abstract": true,
|
|
13231
|
+
"docs": {
|
|
13232
|
+
"default": "- resource will be destroyed",
|
|
13233
|
+
"stability": "experimental",
|
|
13234
|
+
"summary": "Policy to apply when the ruleset is removed from the stack."
|
|
13235
|
+
},
|
|
13236
|
+
"immutable": true,
|
|
13237
|
+
"locationInModule": {
|
|
13238
|
+
"filename": "lib/data-quality-ruleset.ts",
|
|
13239
|
+
"line": 89
|
|
13240
|
+
},
|
|
13241
|
+
"name": "removalPolicy",
|
|
13242
|
+
"optional": true,
|
|
13243
|
+
"type": {
|
|
13244
|
+
"fqn": "aws-cdk-lib.RemovalPolicy"
|
|
13245
|
+
}
|
|
13246
|
+
},
|
|
13229
13247
|
{
|
|
13230
13248
|
"abstract": true,
|
|
13231
13249
|
"docs": {
|
|
@@ -13350,7 +13368,7 @@
|
|
|
13350
13368
|
"docs": {
|
|
13351
13369
|
"stability": "experimental",
|
|
13352
13370
|
"summary": "A Glue database.",
|
|
13353
|
-
"example": "import
|
|
13371
|
+
"example": "import { RemovalPolicy } from 'aws-cdk-lib';\n\nnew glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n removalPolicy: RemovalPolicy.DESTROY,\n});",
|
|
13354
13372
|
"custom": {
|
|
13355
13373
|
"exampleMetadata": "infused"
|
|
13356
13374
|
}
|
|
@@ -13362,7 +13380,7 @@
|
|
|
13362
13380
|
},
|
|
13363
13381
|
"locationInModule": {
|
|
13364
13382
|
"filename": "lib/database.ts",
|
|
13365
|
-
"line":
|
|
13383
|
+
"line": 109
|
|
13366
13384
|
},
|
|
13367
13385
|
"parameters": [
|
|
13368
13386
|
{
|
|
@@ -13392,7 +13410,7 @@
|
|
|
13392
13410
|
"kind": "class",
|
|
13393
13411
|
"locationInModule": {
|
|
13394
13412
|
"filename": "lib/database.ts",
|
|
13395
|
-
"line":
|
|
13413
|
+
"line": 77
|
|
13396
13414
|
},
|
|
13397
13415
|
"methods": [
|
|
13398
13416
|
{
|
|
@@ -13401,7 +13419,7 @@
|
|
|
13401
13419
|
},
|
|
13402
13420
|
"locationInModule": {
|
|
13403
13421
|
"filename": "lib/database.ts",
|
|
13404
|
-
"line":
|
|
13422
|
+
"line": 82
|
|
13405
13423
|
},
|
|
13406
13424
|
"name": "fromDatabaseArn",
|
|
13407
13425
|
"parameters": [
|
|
@@ -13443,7 +13461,7 @@
|
|
|
13443
13461
|
"immutable": true,
|
|
13444
13462
|
"locationInModule": {
|
|
13445
13463
|
"filename": "lib/database.ts",
|
|
13446
|
-
"line":
|
|
13464
|
+
"line": 80
|
|
13447
13465
|
},
|
|
13448
13466
|
"name": "PROPERTY_INJECTION_ID",
|
|
13449
13467
|
"static": true,
|
|
@@ -13460,7 +13478,7 @@
|
|
|
13460
13478
|
"immutable": true,
|
|
13461
13479
|
"locationInModule": {
|
|
13462
13480
|
"filename": "lib/database.ts",
|
|
13463
|
-
"line":
|
|
13481
|
+
"line": 159
|
|
13464
13482
|
},
|
|
13465
13483
|
"name": "catalog",
|
|
13466
13484
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
@@ -13476,7 +13494,7 @@
|
|
|
13476
13494
|
"immutable": true,
|
|
13477
13495
|
"locationInModule": {
|
|
13478
13496
|
"filename": "lib/database.ts",
|
|
13479
|
-
"line":
|
|
13497
|
+
"line": 169
|
|
13480
13498
|
},
|
|
13481
13499
|
"name": "databaseArn",
|
|
13482
13500
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
@@ -13492,7 +13510,7 @@
|
|
|
13492
13510
|
"immutable": true,
|
|
13493
13511
|
"locationInModule": {
|
|
13494
13512
|
"filename": "lib/database.ts",
|
|
13495
|
-
"line":
|
|
13513
|
+
"line": 164
|
|
13496
13514
|
},
|
|
13497
13515
|
"name": "databaseName",
|
|
13498
13516
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
@@ -13507,7 +13525,7 @@
|
|
|
13507
13525
|
},
|
|
13508
13526
|
"locationInModule": {
|
|
13509
13527
|
"filename": "lib/database.ts",
|
|
13510
|
-
"line":
|
|
13528
|
+
"line": 103
|
|
13511
13529
|
},
|
|
13512
13530
|
"name": "locationUri",
|
|
13513
13531
|
"optional": true,
|
|
@@ -13608,6 +13626,25 @@
|
|
|
13608
13626
|
"type": {
|
|
13609
13627
|
"primitive": "string"
|
|
13610
13628
|
}
|
|
13629
|
+
},
|
|
13630
|
+
{
|
|
13631
|
+
"abstract": true,
|
|
13632
|
+
"docs": {
|
|
13633
|
+
"default": "RemovalPolicy.RETAIN",
|
|
13634
|
+
"remarks": "A database is a container for tables and their metadata, so it is retained\nby default to avoid accidental data loss when it is removed from a stack.",
|
|
13635
|
+
"stability": "experimental",
|
|
13636
|
+
"summary": "Policy to apply when the database is removed from the stack."
|
|
13637
|
+
},
|
|
13638
|
+
"immutable": true,
|
|
13639
|
+
"locationInModule": {
|
|
13640
|
+
"filename": "lib/database.ts",
|
|
13641
|
+
"line": 71
|
|
13642
|
+
},
|
|
13643
|
+
"name": "removalPolicy",
|
|
13644
|
+
"optional": true,
|
|
13645
|
+
"type": {
|
|
13646
|
+
"fqn": "aws-cdk-lib.RemovalPolicy"
|
|
13647
|
+
}
|
|
13611
13648
|
}
|
|
13612
13649
|
],
|
|
13613
13650
|
"symbolId": "lib/database:DatabaseProps"
|
|
@@ -14406,7 +14443,7 @@
|
|
|
14406
14443
|
"kind": "interface",
|
|
14407
14444
|
"locationInModule": {
|
|
14408
14445
|
"filename": "lib/connection.ts",
|
|
14409
|
-
"line":
|
|
14446
|
+
"line": 241
|
|
14410
14447
|
},
|
|
14411
14448
|
"name": "IConnection",
|
|
14412
14449
|
"properties": [
|
|
@@ -14422,7 +14459,7 @@
|
|
|
14422
14459
|
"immutable": true,
|
|
14423
14460
|
"locationInModule": {
|
|
14424
14461
|
"filename": "lib/connection.ts",
|
|
14425
|
-
"line":
|
|
14462
|
+
"line": 252
|
|
14426
14463
|
},
|
|
14427
14464
|
"name": "connectionArn",
|
|
14428
14465
|
"type": {
|
|
@@ -14441,7 +14478,7 @@
|
|
|
14441
14478
|
"immutable": true,
|
|
14442
14479
|
"locationInModule": {
|
|
14443
14480
|
"filename": "lib/connection.ts",
|
|
14444
|
-
"line":
|
|
14481
|
+
"line": 246
|
|
14445
14482
|
},
|
|
14446
14483
|
"name": "connectionName",
|
|
14447
14484
|
"type": {
|
|
@@ -14595,7 +14632,7 @@
|
|
|
14595
14632
|
"kind": "interface",
|
|
14596
14633
|
"locationInModule": {
|
|
14597
14634
|
"filename": "lib/jobs/job.ts",
|
|
14598
|
-
"line":
|
|
14635
|
+
"line": 18
|
|
14599
14636
|
},
|
|
14600
14637
|
"methods": [
|
|
14601
14638
|
{
|
|
@@ -14607,7 +14644,7 @@
|
|
|
14607
14644
|
},
|
|
14608
14645
|
"locationInModule": {
|
|
14609
14646
|
"filename": "lib/jobs/job.ts",
|
|
14610
|
-
"line":
|
|
14647
|
+
"line": 68
|
|
14611
14648
|
},
|
|
14612
14649
|
"name": "metric",
|
|
14613
14650
|
"parameters": [
|
|
@@ -14654,7 +14691,7 @@
|
|
|
14654
14691
|
},
|
|
14655
14692
|
"locationInModule": {
|
|
14656
14693
|
"filename": "lib/jobs/job.ts",
|
|
14657
|
-
"line":
|
|
14694
|
+
"line": 78
|
|
14658
14695
|
},
|
|
14659
14696
|
"name": "metricFailure",
|
|
14660
14697
|
"parameters": [
|
|
@@ -14680,7 +14717,7 @@
|
|
|
14680
14717
|
},
|
|
14681
14718
|
"locationInModule": {
|
|
14682
14719
|
"filename": "lib/jobs/job.ts",
|
|
14683
|
-
"line":
|
|
14720
|
+
"line": 73
|
|
14684
14721
|
},
|
|
14685
14722
|
"name": "metricSuccess",
|
|
14686
14723
|
"parameters": [
|
|
@@ -14706,7 +14743,7 @@
|
|
|
14706
14743
|
},
|
|
14707
14744
|
"locationInModule": {
|
|
14708
14745
|
"filename": "lib/jobs/job.ts",
|
|
14709
|
-
"line":
|
|
14746
|
+
"line": 83
|
|
14710
14747
|
},
|
|
14711
14748
|
"name": "metricTimeout",
|
|
14712
14749
|
"parameters": [
|
|
@@ -14733,7 +14770,7 @@
|
|
|
14733
14770
|
},
|
|
14734
14771
|
"locationInModule": {
|
|
14735
14772
|
"filename": "lib/jobs/job.ts",
|
|
14736
|
-
"line":
|
|
14773
|
+
"line": 36
|
|
14737
14774
|
},
|
|
14738
14775
|
"name": "onEvent",
|
|
14739
14776
|
"parameters": [
|
|
@@ -14766,7 +14803,7 @@
|
|
|
14766
14803
|
},
|
|
14767
14804
|
"locationInModule": {
|
|
14768
14805
|
"filename": "lib/jobs/job.ts",
|
|
14769
|
-
"line":
|
|
14806
|
+
"line": 50
|
|
14770
14807
|
},
|
|
14771
14808
|
"name": "onFailure",
|
|
14772
14809
|
"parameters": [
|
|
@@ -14799,7 +14836,7 @@
|
|
|
14799
14836
|
},
|
|
14800
14837
|
"locationInModule": {
|
|
14801
14838
|
"filename": "lib/jobs/job.ts",
|
|
14802
|
-
"line":
|
|
14839
|
+
"line": 43
|
|
14803
14840
|
},
|
|
14804
14841
|
"name": "onSuccess",
|
|
14805
14842
|
"parameters": [
|
|
@@ -14832,7 +14869,7 @@
|
|
|
14832
14869
|
},
|
|
14833
14870
|
"locationInModule": {
|
|
14834
14871
|
"filename": "lib/jobs/job.ts",
|
|
14835
|
-
"line":
|
|
14872
|
+
"line": 57
|
|
14836
14873
|
},
|
|
14837
14874
|
"name": "onTimeout",
|
|
14838
14875
|
"parameters": [
|
|
@@ -14871,7 +14908,7 @@
|
|
|
14871
14908
|
"immutable": true,
|
|
14872
14909
|
"locationInModule": {
|
|
14873
14910
|
"filename": "lib/jobs/job.ts",
|
|
14874
|
-
"line":
|
|
14911
|
+
"line": 29
|
|
14875
14912
|
},
|
|
14876
14913
|
"name": "jobArn",
|
|
14877
14914
|
"type": {
|
|
@@ -14890,7 +14927,7 @@
|
|
|
14890
14927
|
"immutable": true,
|
|
14891
14928
|
"locationInModule": {
|
|
14892
14929
|
"filename": "lib/jobs/job.ts",
|
|
14893
|
-
"line":
|
|
14930
|
+
"line": 23
|
|
14894
14931
|
},
|
|
14895
14932
|
"name": "jobName",
|
|
14896
14933
|
"type": {
|
|
@@ -15513,7 +15550,7 @@
|
|
|
15513
15550
|
"kind": "class",
|
|
15514
15551
|
"locationInModule": {
|
|
15515
15552
|
"filename": "lib/jobs/job.ts",
|
|
15516
|
-
"line":
|
|
15553
|
+
"line": 465
|
|
15517
15554
|
},
|
|
15518
15555
|
"methods": [
|
|
15519
15556
|
{
|
|
@@ -15523,7 +15560,7 @@
|
|
|
15523
15560
|
},
|
|
15524
15561
|
"locationInModule": {
|
|
15525
15562
|
"filename": "lib/jobs/job.ts",
|
|
15526
|
-
"line":
|
|
15563
|
+
"line": 474
|
|
15527
15564
|
},
|
|
15528
15565
|
"name": "fromJobAttributes",
|
|
15529
15566
|
"parameters": [
|
|
@@ -15570,7 +15607,7 @@
|
|
|
15570
15607
|
},
|
|
15571
15608
|
"locationInModule": {
|
|
15572
15609
|
"filename": "lib/jobs/job.ts",
|
|
15573
|
-
"line":
|
|
15610
|
+
"line": 494
|
|
15574
15611
|
},
|
|
15575
15612
|
"name": "checkNoReservedArgs",
|
|
15576
15613
|
"parameters": [
|
|
@@ -15606,7 +15643,7 @@
|
|
|
15606
15643
|
},
|
|
15607
15644
|
"locationInModule": {
|
|
15608
15645
|
"filename": "lib/jobs/job.ts",
|
|
15609
|
-
"line":
|
|
15646
|
+
"line": 550
|
|
15610
15647
|
},
|
|
15611
15648
|
"name": "codeS3ObjectUrl",
|
|
15612
15649
|
"parameters": [
|
|
@@ -15632,7 +15669,7 @@
|
|
|
15632
15669
|
},
|
|
15633
15670
|
"locationInModule": {
|
|
15634
15671
|
"filename": "lib/jobs/job.ts",
|
|
15635
|
-
"line":
|
|
15672
|
+
"line": 518
|
|
15636
15673
|
},
|
|
15637
15674
|
"name": "setupContinuousLogging",
|
|
15638
15675
|
"parameters": [
|
|
@@ -15675,7 +15712,7 @@
|
|
|
15675
15712
|
"immutable": true,
|
|
15676
15713
|
"locationInModule": {
|
|
15677
15714
|
"filename": "lib/jobs/job.ts",
|
|
15678
|
-
"line":
|
|
15715
|
+
"line": 487
|
|
15679
15716
|
},
|
|
15680
15717
|
"name": "role",
|
|
15681
15718
|
"type": {
|
|
@@ -15701,7 +15738,7 @@
|
|
|
15701
15738
|
"kind": "interface",
|
|
15702
15739
|
"locationInModule": {
|
|
15703
15740
|
"filename": "lib/jobs/job.ts",
|
|
15704
|
-
"line":
|
|
15741
|
+
"line": 291
|
|
15705
15742
|
},
|
|
15706
15743
|
"name": "JobAttributes",
|
|
15707
15744
|
"properties": [
|
|
@@ -15714,7 +15751,7 @@
|
|
|
15714
15751
|
"immutable": true,
|
|
15715
15752
|
"locationInModule": {
|
|
15716
15753
|
"filename": "lib/jobs/job.ts",
|
|
15717
|
-
"line":
|
|
15754
|
+
"line": 295
|
|
15718
15755
|
},
|
|
15719
15756
|
"name": "jobName",
|
|
15720
15757
|
"type": {
|
|
@@ -15731,7 +15768,7 @@
|
|
|
15731
15768
|
"immutable": true,
|
|
15732
15769
|
"locationInModule": {
|
|
15733
15770
|
"filename": "lib/jobs/job.ts",
|
|
15734
|
-
"line":
|
|
15771
|
+
"line": 302
|
|
15735
15772
|
},
|
|
15736
15773
|
"name": "role",
|
|
15737
15774
|
"optional": true,
|
|
@@ -15788,7 +15825,7 @@
|
|
|
15788
15825
|
"kind": "class",
|
|
15789
15826
|
"locationInModule": {
|
|
15790
15827
|
"filename": "lib/jobs/job.ts",
|
|
15791
|
-
"line":
|
|
15828
|
+
"line": 136
|
|
15792
15829
|
},
|
|
15793
15830
|
"methods": [
|
|
15794
15831
|
{
|
|
@@ -15798,7 +15835,7 @@
|
|
|
15798
15835
|
},
|
|
15799
15836
|
"locationInModule": {
|
|
15800
15837
|
"filename": "lib/jobs/job.ts",
|
|
15801
|
-
"line":
|
|
15838
|
+
"line": 277
|
|
15802
15839
|
},
|
|
15803
15840
|
"name": "buildJobArn",
|
|
15804
15841
|
"parameters": [
|
|
@@ -15830,7 +15867,7 @@
|
|
|
15830
15867
|
},
|
|
15831
15868
|
"locationInModule": {
|
|
15832
15869
|
"filename": "lib/jobs/job.ts",
|
|
15833
|
-
"line":
|
|
15870
|
+
"line": 224
|
|
15834
15871
|
},
|
|
15835
15872
|
"name": "metric",
|
|
15836
15873
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -15878,7 +15915,7 @@
|
|
|
15878
15915
|
},
|
|
15879
15916
|
"locationInModule": {
|
|
15880
15917
|
"filename": "lib/jobs/job.ts",
|
|
15881
|
-
"line":
|
|
15918
|
+
"line": 251
|
|
15882
15919
|
},
|
|
15883
15920
|
"name": "metricFailure",
|
|
15884
15921
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -15905,7 +15942,7 @@
|
|
|
15905
15942
|
},
|
|
15906
15943
|
"locationInModule": {
|
|
15907
15944
|
"filename": "lib/jobs/job.ts",
|
|
15908
|
-
"line":
|
|
15945
|
+
"line": 242
|
|
15909
15946
|
},
|
|
15910
15947
|
"name": "metricSuccess",
|
|
15911
15948
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -15932,7 +15969,7 @@
|
|
|
15932
15969
|
},
|
|
15933
15970
|
"locationInModule": {
|
|
15934
15971
|
"filename": "lib/jobs/job.ts",
|
|
15935
|
-
"line":
|
|
15972
|
+
"line": 260
|
|
15936
15973
|
},
|
|
15937
15974
|
"name": "metricTimeout",
|
|
15938
15975
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -15959,7 +15996,7 @@
|
|
|
15959
15996
|
},
|
|
15960
15997
|
"locationInModule": {
|
|
15961
15998
|
"filename": "lib/jobs/job.ts",
|
|
15962
|
-
"line":
|
|
15999
|
+
"line": 152
|
|
15963
16000
|
},
|
|
15964
16001
|
"name": "onEvent",
|
|
15965
16002
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -15998,7 +16035,7 @@
|
|
|
15998
16035
|
},
|
|
15999
16036
|
"locationInModule": {
|
|
16000
16037
|
"filename": "lib/jobs/job.ts",
|
|
16001
|
-
"line":
|
|
16038
|
+
"line": 201
|
|
16002
16039
|
},
|
|
16003
16040
|
"name": "onFailure",
|
|
16004
16041
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16037,7 +16074,7 @@
|
|
|
16037
16074
|
},
|
|
16038
16075
|
"locationInModule": {
|
|
16039
16076
|
"filename": "lib/jobs/job.ts",
|
|
16040
|
-
"line":
|
|
16077
|
+
"line": 172
|
|
16041
16078
|
},
|
|
16042
16079
|
"name": "onStateChange",
|
|
16043
16080
|
"parameters": [
|
|
@@ -16084,7 +16121,7 @@
|
|
|
16084
16121
|
},
|
|
16085
16122
|
"locationInModule": {
|
|
16086
16123
|
"filename": "lib/jobs/job.ts",
|
|
16087
|
-
"line":
|
|
16124
|
+
"line": 191
|
|
16088
16125
|
},
|
|
16089
16126
|
"name": "onSuccess",
|
|
16090
16127
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16123,7 +16160,7 @@
|
|
|
16123
16160
|
},
|
|
16124
16161
|
"locationInModule": {
|
|
16125
16162
|
"filename": "lib/jobs/job.ts",
|
|
16126
|
-
"line":
|
|
16163
|
+
"line": 211
|
|
16127
16164
|
},
|
|
16128
16165
|
"name": "onTimeout",
|
|
16129
16166
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16167,7 +16204,7 @@
|
|
|
16167
16204
|
"immutable": true,
|
|
16168
16205
|
"locationInModule": {
|
|
16169
16206
|
"filename": "lib/jobs/job.ts",
|
|
16170
|
-
"line":
|
|
16207
|
+
"line": 139
|
|
16171
16208
|
},
|
|
16172
16209
|
"name": "grantPrincipal",
|
|
16173
16210
|
"overrides": "aws-cdk-lib.aws_iam.IGrantable",
|
|
@@ -16184,7 +16221,7 @@
|
|
|
16184
16221
|
"immutable": true,
|
|
16185
16222
|
"locationInModule": {
|
|
16186
16223
|
"filename": "lib/jobs/job.ts",
|
|
16187
|
-
"line":
|
|
16224
|
+
"line": 137
|
|
16188
16225
|
},
|
|
16189
16226
|
"name": "jobArn",
|
|
16190
16227
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16201,7 +16238,7 @@
|
|
|
16201
16238
|
"immutable": true,
|
|
16202
16239
|
"locationInModule": {
|
|
16203
16240
|
"filename": "lib/jobs/job.ts",
|
|
16204
|
-
"line":
|
|
16241
|
+
"line": 138
|
|
16205
16242
|
},
|
|
16206
16243
|
"name": "jobName",
|
|
16207
16244
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -16344,7 +16381,7 @@
|
|
|
16344
16381
|
"kind": "interface",
|
|
16345
16382
|
"locationInModule": {
|
|
16346
16383
|
"filename": "lib/jobs/job.ts",
|
|
16347
|
-
"line":
|
|
16384
|
+
"line": 309
|
|
16348
16385
|
},
|
|
16349
16386
|
"name": "JobProps",
|
|
16350
16387
|
"properties": [
|
|
@@ -16358,7 +16395,7 @@
|
|
|
16358
16395
|
"immutable": true,
|
|
16359
16396
|
"locationInModule": {
|
|
16360
16397
|
"filename": "lib/jobs/job.ts",
|
|
16361
|
-
"line":
|
|
16398
|
+
"line": 328
|
|
16362
16399
|
},
|
|
16363
16400
|
"name": "role",
|
|
16364
16401
|
"type": {
|
|
@@ -16375,7 +16412,7 @@
|
|
|
16375
16412
|
"immutable": true,
|
|
16376
16413
|
"locationInModule": {
|
|
16377
16414
|
"filename": "lib/jobs/job.ts",
|
|
16378
|
-
"line":
|
|
16415
|
+
"line": 316
|
|
16379
16416
|
},
|
|
16380
16417
|
"name": "script",
|
|
16381
16418
|
"type": {
|
|
@@ -16392,7 +16429,7 @@
|
|
|
16392
16429
|
"immutable": true,
|
|
16393
16430
|
"locationInModule": {
|
|
16394
16431
|
"filename": "lib/jobs/job.ts",
|
|
16395
|
-
"line":
|
|
16432
|
+
"line": 397
|
|
16396
16433
|
},
|
|
16397
16434
|
"name": "connections",
|
|
16398
16435
|
"optional": true,
|
|
@@ -16416,7 +16453,7 @@
|
|
|
16416
16453
|
"immutable": true,
|
|
16417
16454
|
"locationInModule": {
|
|
16418
16455
|
"filename": "lib/jobs/job.ts",
|
|
16419
|
-
"line":
|
|
16456
|
+
"line": 458
|
|
16420
16457
|
},
|
|
16421
16458
|
"name": "continuousLogging",
|
|
16422
16459
|
"optional": true,
|
|
@@ -16428,6 +16465,7 @@
|
|
|
16428
16465
|
"abstract": true,
|
|
16429
16466
|
"docs": {
|
|
16430
16467
|
"default": "- no arguments",
|
|
16468
|
+
"remarks": "These are emitted verbatim into the CloudFormation template, so avoid\nplacing secrets here in plaintext. Pass secrets to the job at runtime\nthrough AWS Secrets Manager instead. A synthesis-time warning is emitted\nwhen an argument key looks like a credential and holds a plaintext literal.",
|
|
16431
16469
|
"see": "https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html\nfor a list of reserved parameters",
|
|
16432
16470
|
"stability": "experimental",
|
|
16433
16471
|
"summary": "Default Arguments (optional) The default arguments for every run of this Glue job, specified as name-value pairs."
|
|
@@ -16435,7 +16473,7 @@
|
|
|
16435
16473
|
"immutable": true,
|
|
16436
16474
|
"locationInModule": {
|
|
16437
16475
|
"filename": "lib/jobs/job.ts",
|
|
16438
|
-
"line":
|
|
16476
|
+
"line": 388
|
|
16439
16477
|
},
|
|
16440
16478
|
"name": "defaultArguments",
|
|
16441
16479
|
"optional": true,
|
|
@@ -16458,7 +16496,7 @@
|
|
|
16458
16496
|
"immutable": true,
|
|
16459
16497
|
"locationInModule": {
|
|
16460
16498
|
"filename": "lib/jobs/job.ts",
|
|
16461
|
-
"line":
|
|
16499
|
+
"line": 344
|
|
16462
16500
|
},
|
|
16463
16501
|
"name": "description",
|
|
16464
16502
|
"optional": true,
|
|
@@ -16477,7 +16515,7 @@
|
|
|
16477
16515
|
"immutable": true,
|
|
16478
16516
|
"locationInModule": {
|
|
16479
16517
|
"filename": "lib/jobs/job.ts",
|
|
16480
|
-
"line":
|
|
16518
|
+
"line": 448
|
|
16481
16519
|
},
|
|
16482
16520
|
"name": "enableProfilingMetrics",
|
|
16483
16521
|
"optional": true,
|
|
@@ -16495,7 +16533,7 @@
|
|
|
16495
16533
|
"immutable": true,
|
|
16496
16534
|
"locationInModule": {
|
|
16497
16535
|
"filename": "lib/jobs/job.ts",
|
|
16498
|
-
"line":
|
|
16536
|
+
"line": 439
|
|
16499
16537
|
},
|
|
16500
16538
|
"name": "glueVersion",
|
|
16501
16539
|
"optional": true,
|
|
@@ -16513,7 +16551,7 @@
|
|
|
16513
16551
|
"immutable": true,
|
|
16514
16552
|
"locationInModule": {
|
|
16515
16553
|
"filename": "lib/jobs/job.ts",
|
|
16516
|
-
"line":
|
|
16554
|
+
"line": 336
|
|
16517
16555
|
},
|
|
16518
16556
|
"name": "jobName",
|
|
16519
16557
|
"optional": true,
|
|
@@ -16532,7 +16570,7 @@
|
|
|
16532
16570
|
"immutable": true,
|
|
16533
16571
|
"locationInModule": {
|
|
16534
16572
|
"filename": "lib/jobs/job.ts",
|
|
16535
|
-
"line":
|
|
16573
|
+
"line": 372
|
|
16536
16574
|
},
|
|
16537
16575
|
"name": "maxConcurrentRuns",
|
|
16538
16576
|
"optional": true,
|
|
@@ -16550,7 +16588,7 @@
|
|
|
16550
16588
|
"immutable": true,
|
|
16551
16589
|
"locationInModule": {
|
|
16552
16590
|
"filename": "lib/jobs/job.ts",
|
|
16553
|
-
"line":
|
|
16591
|
+
"line": 405
|
|
16554
16592
|
},
|
|
16555
16593
|
"name": "maxRetries",
|
|
16556
16594
|
"optional": true,
|
|
@@ -16568,7 +16606,7 @@
|
|
|
16568
16606
|
"immutable": true,
|
|
16569
16607
|
"locationInModule": {
|
|
16570
16608
|
"filename": "lib/jobs/job.ts",
|
|
16571
|
-
"line":
|
|
16609
|
+
"line": 352
|
|
16572
16610
|
},
|
|
16573
16611
|
"name": "numberOfWorkers",
|
|
16574
16612
|
"optional": true,
|
|
@@ -16586,7 +16624,7 @@
|
|
|
16586
16624
|
"immutable": true,
|
|
16587
16625
|
"locationInModule": {
|
|
16588
16626
|
"filename": "lib/jobs/job.ts",
|
|
16589
|
-
"line":
|
|
16627
|
+
"line": 423
|
|
16590
16628
|
},
|
|
16591
16629
|
"name": "securityConfiguration",
|
|
16592
16630
|
"optional": true,
|
|
@@ -16604,7 +16642,7 @@
|
|
|
16604
16642
|
"immutable": true,
|
|
16605
16643
|
"locationInModule": {
|
|
16606
16644
|
"filename": "lib/jobs/job.ts",
|
|
16607
|
-
"line":
|
|
16645
|
+
"line": 431
|
|
16608
16646
|
},
|
|
16609
16647
|
"name": "tags",
|
|
16610
16648
|
"optional": true,
|
|
@@ -16628,7 +16666,7 @@
|
|
|
16628
16666
|
"immutable": true,
|
|
16629
16667
|
"locationInModule": {
|
|
16630
16668
|
"filename": "lib/jobs/job.ts",
|
|
16631
|
-
"line":
|
|
16669
|
+
"line": 415
|
|
16632
16670
|
},
|
|
16633
16671
|
"name": "timeout",
|
|
16634
16672
|
"optional": true,
|
|
@@ -16647,7 +16685,7 @@
|
|
|
16647
16685
|
"immutable": true,
|
|
16648
16686
|
"locationInModule": {
|
|
16649
16687
|
"filename": "lib/jobs/job.ts",
|
|
16650
|
-
"line":
|
|
16688
|
+
"line": 361
|
|
16651
16689
|
},
|
|
16652
16690
|
"name": "workerType",
|
|
16653
16691
|
"optional": true,
|
|
@@ -19025,7 +19063,7 @@
|
|
|
19025
19063
|
},
|
|
19026
19064
|
"locationInModule": {
|
|
19027
19065
|
"filename": "lib/s3-table.ts",
|
|
19028
|
-
"line":
|
|
19066
|
+
"line": 133
|
|
19029
19067
|
},
|
|
19030
19068
|
"parameters": [
|
|
19031
19069
|
{
|
|
@@ -19051,7 +19089,7 @@
|
|
|
19051
19089
|
"kind": "class",
|
|
19052
19090
|
"locationInModule": {
|
|
19053
19091
|
"filename": "lib/s3-table.ts",
|
|
19054
|
-
"line":
|
|
19092
|
+
"line": 92
|
|
19055
19093
|
},
|
|
19056
19094
|
"methods": [
|
|
19057
19095
|
{
|
|
@@ -19060,7 +19098,7 @@
|
|
|
19060
19098
|
},
|
|
19061
19099
|
"locationInModule": {
|
|
19062
19100
|
"filename": "lib/s3-table.ts",
|
|
19063
|
-
"line":
|
|
19101
|
+
"line": 257
|
|
19064
19102
|
},
|
|
19065
19103
|
"name": "generateS3PrefixForGrant",
|
|
19066
19104
|
"protected": true,
|
|
@@ -19078,7 +19116,7 @@
|
|
|
19078
19116
|
},
|
|
19079
19117
|
"locationInModule": {
|
|
19080
19118
|
"filename": "lib/s3-table.ts",
|
|
19081
|
-
"line":
|
|
19119
|
+
"line": 221
|
|
19082
19120
|
},
|
|
19083
19121
|
"name": "grantRead",
|
|
19084
19122
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -19107,7 +19145,7 @@
|
|
|
19107
19145
|
},
|
|
19108
19146
|
"locationInModule": {
|
|
19109
19147
|
"filename": "lib/s3-table.ts",
|
|
19110
|
-
"line":
|
|
19148
|
+
"line": 249
|
|
19111
19149
|
},
|
|
19112
19150
|
"name": "grantReadWrite",
|
|
19113
19151
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -19136,7 +19174,7 @@
|
|
|
19136
19174
|
},
|
|
19137
19175
|
"locationInModule": {
|
|
19138
19176
|
"filename": "lib/s3-table.ts",
|
|
19139
|
-
"line":
|
|
19177
|
+
"line": 235
|
|
19140
19178
|
},
|
|
19141
19179
|
"name": "grantWrite",
|
|
19142
19180
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -19169,7 +19207,7 @@
|
|
|
19169
19207
|
"immutable": true,
|
|
19170
19208
|
"locationInModule": {
|
|
19171
19209
|
"filename": "lib/s3-table.ts",
|
|
19172
|
-
"line":
|
|
19210
|
+
"line": 95
|
|
19173
19211
|
},
|
|
19174
19212
|
"name": "PROPERTY_INJECTION_ID",
|
|
19175
19213
|
"static": true,
|
|
@@ -19185,7 +19223,7 @@
|
|
|
19185
19223
|
"immutable": true,
|
|
19186
19224
|
"locationInModule": {
|
|
19187
19225
|
"filename": "lib/s3-table.ts",
|
|
19188
|
-
"line":
|
|
19226
|
+
"line": 102
|
|
19189
19227
|
},
|
|
19190
19228
|
"name": "bucket",
|
|
19191
19229
|
"type": {
|
|
@@ -19200,7 +19238,7 @@
|
|
|
19200
19238
|
"immutable": true,
|
|
19201
19239
|
"locationInModule": {
|
|
19202
19240
|
"filename": "lib/s3-table.ts",
|
|
19203
|
-
"line":
|
|
19241
|
+
"line": 112
|
|
19204
19242
|
},
|
|
19205
19243
|
"name": "encryption",
|
|
19206
19244
|
"type": {
|
|
@@ -19215,7 +19253,7 @@
|
|
|
19215
19253
|
"immutable": true,
|
|
19216
19254
|
"locationInModule": {
|
|
19217
19255
|
"filename": "lib/s3-table.ts",
|
|
19218
|
-
"line":
|
|
19256
|
+
"line": 107
|
|
19219
19257
|
},
|
|
19220
19258
|
"name": "s3Prefix",
|
|
19221
19259
|
"type": {
|
|
@@ -19230,7 +19268,7 @@
|
|
|
19230
19268
|
"immutable": true,
|
|
19231
19269
|
"locationInModule": {
|
|
19232
19270
|
"filename": "lib/s3-table.ts",
|
|
19233
|
-
"line":
|
|
19271
|
+
"line": 206
|
|
19234
19272
|
},
|
|
19235
19273
|
"name": "tableArn",
|
|
19236
19274
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -19246,7 +19284,7 @@
|
|
|
19246
19284
|
"immutable": true,
|
|
19247
19285
|
"locationInModule": {
|
|
19248
19286
|
"filename": "lib/s3-table.ts",
|
|
19249
|
-
"line":
|
|
19287
|
+
"line": 198
|
|
19250
19288
|
},
|
|
19251
19289
|
"name": "tableName",
|
|
19252
19290
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -19261,7 +19299,7 @@
|
|
|
19261
19299
|
"immutable": true,
|
|
19262
19300
|
"locationInModule": {
|
|
19263
19301
|
"filename": "lib/s3-table.ts",
|
|
19264
|
-
"line":
|
|
19302
|
+
"line": 124
|
|
19265
19303
|
},
|
|
19266
19304
|
"name": "tableResource",
|
|
19267
19305
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -19279,7 +19317,7 @@
|
|
|
19279
19317
|
"immutable": true,
|
|
19280
19318
|
"locationInModule": {
|
|
19281
19319
|
"filename": "lib/s3-table.ts",
|
|
19282
|
-
"line":
|
|
19320
|
+
"line": 117
|
|
19283
19321
|
},
|
|
19284
19322
|
"name": "encryptionKey",
|
|
19285
19323
|
"optional": true,
|
|
@@ -19295,7 +19333,7 @@
|
|
|
19295
19333
|
"immutable": true,
|
|
19296
19334
|
"locationInModule": {
|
|
19297
19335
|
"filename": "lib/s3-table.ts",
|
|
19298
|
-
"line":
|
|
19336
|
+
"line": 122
|
|
19299
19337
|
},
|
|
19300
19338
|
"name": "partitionIndexes",
|
|
19301
19339
|
"optional": true,
|
|
@@ -19362,7 +19400,7 @@
|
|
|
19362
19400
|
"immutable": true,
|
|
19363
19401
|
"locationInModule": {
|
|
19364
19402
|
"filename": "lib/s3-table.ts",
|
|
19365
|
-
"line":
|
|
19403
|
+
"line": 76
|
|
19366
19404
|
},
|
|
19367
19405
|
"name": "encryption",
|
|
19368
19406
|
"optional": true,
|
|
@@ -19381,7 +19419,7 @@
|
|
|
19381
19419
|
"immutable": true,
|
|
19382
19420
|
"locationInModule": {
|
|
19383
19421
|
"filename": "lib/s3-table.ts",
|
|
19384
|
-
"line":
|
|
19422
|
+
"line": 85
|
|
19385
19423
|
},
|
|
19386
19424
|
"name": "encryptionKey",
|
|
19387
19425
|
"optional": true,
|
|
@@ -19393,13 +19431,14 @@
|
|
|
19393
19431
|
"abstract": true,
|
|
19394
19432
|
"docs": {
|
|
19395
19433
|
"default": "- No prefix. The data will be stored under the root of the bucket.",
|
|
19434
|
+
"remarks": "When the table shares a bucket with other tables or consumers, set this so\nthat the `grant*` methods scope S3 access to this table's data. Without a\nprefix, those grants cover the entire bucket.",
|
|
19396
19435
|
"stability": "experimental",
|
|
19397
19436
|
"summary": "S3 prefix under which table objects are stored."
|
|
19398
19437
|
},
|
|
19399
19438
|
"immutable": true,
|
|
19400
19439
|
"locationInModule": {
|
|
19401
19440
|
"filename": "lib/s3-table.ts",
|
|
19402
|
-
"line":
|
|
19441
|
+
"line": 64
|
|
19403
19442
|
},
|
|
19404
19443
|
"name": "s3Prefix",
|
|
19405
19444
|
"optional": true,
|
|
@@ -20538,7 +20577,7 @@
|
|
|
20538
20577
|
},
|
|
20539
20578
|
"locationInModule": {
|
|
20540
20579
|
"filename": "lib/security-configuration.ts",
|
|
20541
|
-
"line":
|
|
20580
|
+
"line": 198
|
|
20542
20581
|
},
|
|
20543
20582
|
"parameters": [
|
|
20544
20583
|
{
|
|
@@ -20568,7 +20607,7 @@
|
|
|
20568
20607
|
"kind": "class",
|
|
20569
20608
|
"locationInModule": {
|
|
20570
20609
|
"filename": "lib/security-configuration.ts",
|
|
20571
|
-
"line":
|
|
20610
|
+
"line": 161
|
|
20572
20611
|
},
|
|
20573
20612
|
"methods": [
|
|
20574
20613
|
{
|
|
@@ -20578,7 +20617,7 @@
|
|
|
20578
20617
|
},
|
|
20579
20618
|
"locationInModule": {
|
|
20580
20619
|
"filename": "lib/security-configuration.ts",
|
|
20581
|
-
"line":
|
|
20620
|
+
"line": 173
|
|
20582
20621
|
},
|
|
20583
20622
|
"name": "fromSecurityConfigurationName",
|
|
20584
20623
|
"parameters": [
|
|
@@ -20629,7 +20668,7 @@
|
|
|
20629
20668
|
"immutable": true,
|
|
20630
20669
|
"locationInModule": {
|
|
20631
20670
|
"filename": "lib/security-configuration.ts",
|
|
20632
|
-
"line":
|
|
20671
|
+
"line": 164
|
|
20633
20672
|
},
|
|
20634
20673
|
"name": "PROPERTY_INJECTION_ID",
|
|
20635
20674
|
"static": true,
|
|
@@ -20645,7 +20684,7 @@
|
|
|
20645
20684
|
"immutable": true,
|
|
20646
20685
|
"locationInModule": {
|
|
20647
20686
|
"filename": "lib/security-configuration.ts",
|
|
20648
|
-
"line":
|
|
20687
|
+
"line": 262
|
|
20649
20688
|
},
|
|
20650
20689
|
"name": "securityConfigurationName",
|
|
20651
20690
|
"overrides": "@aws-cdk/aws-glue-alpha.ISecurityConfiguration",
|
|
@@ -20661,7 +20700,7 @@
|
|
|
20661
20700
|
"immutable": true,
|
|
20662
20701
|
"locationInModule": {
|
|
20663
20702
|
"filename": "lib/security-configuration.ts",
|
|
20664
|
-
"line":
|
|
20703
|
+
"line": 184
|
|
20665
20704
|
},
|
|
20666
20705
|
"name": "cloudWatchEncryptionKey",
|
|
20667
20706
|
"optional": true,
|
|
@@ -20677,7 +20716,7 @@
|
|
|
20677
20716
|
"immutable": true,
|
|
20678
20717
|
"locationInModule": {
|
|
20679
20718
|
"filename": "lib/security-configuration.ts",
|
|
20680
|
-
"line":
|
|
20719
|
+
"line": 189
|
|
20681
20720
|
},
|
|
20682
20721
|
"name": "jobBookmarksEncryptionKey",
|
|
20683
20722
|
"optional": true,
|
|
@@ -20693,7 +20732,7 @@
|
|
|
20693
20732
|
"immutable": true,
|
|
20694
20733
|
"locationInModule": {
|
|
20695
20734
|
"filename": "lib/security-configuration.ts",
|
|
20696
|
-
"line":
|
|
20735
|
+
"line": 194
|
|
20697
20736
|
},
|
|
20698
20737
|
"name": "s3EncryptionKey",
|
|
20699
20738
|
"optional": true,
|
|
@@ -20759,6 +20798,24 @@
|
|
|
20759
20798
|
"fqn": "@aws-cdk/aws-glue-alpha.JobBookmarksEncryption"
|
|
20760
20799
|
}
|
|
20761
20800
|
},
|
|
20801
|
+
{
|
|
20802
|
+
"abstract": true,
|
|
20803
|
+
"docs": {
|
|
20804
|
+
"default": "- resource will be destroyed",
|
|
20805
|
+
"stability": "experimental",
|
|
20806
|
+
"summary": "Policy to apply when the security configuration is removed from the stack."
|
|
20807
|
+
},
|
|
20808
|
+
"immutable": true,
|
|
20809
|
+
"locationInModule": {
|
|
20810
|
+
"filename": "lib/security-configuration.ts",
|
|
20811
|
+
"line": 149
|
|
20812
|
+
},
|
|
20813
|
+
"name": "removalPolicy",
|
|
20814
|
+
"optional": true,
|
|
20815
|
+
"type": {
|
|
20816
|
+
"fqn": "aws-cdk-lib.RemovalPolicy"
|
|
20817
|
+
}
|
|
20818
|
+
},
|
|
20762
20819
|
{
|
|
20763
20820
|
"abstract": true,
|
|
20764
20821
|
"docs": {
|
|
@@ -22254,7 +22311,7 @@
|
|
|
22254
22311
|
},
|
|
22255
22312
|
"locationInModule": {
|
|
22256
22313
|
"filename": "lib/s3-table.ts",
|
|
22257
|
-
"line":
|
|
22314
|
+
"line": 133
|
|
22258
22315
|
},
|
|
22259
22316
|
"parameters": [
|
|
22260
22317
|
{
|
|
@@ -22512,23 +22569,29 @@
|
|
|
22512
22569
|
},
|
|
22513
22570
|
{
|
|
22514
22571
|
"docs": {
|
|
22515
|
-
"remarks": "[disable-awslint:no-grants]",
|
|
22572
|
+
"remarks": "This is a low-level escape hatch: the `actions` are applied verbatim,\nscoped to this table's ARN. Prefer the intent-based `grantRead` /\n`grantWrite` / `grantReadWrite` methods, which grant a curated set of\nactions and also cover the underlying S3 data. Only pass the specific\nactions the grantee needs - avoid service wildcards such as `glue:*`.\n[disable-awslint:no-grants]",
|
|
22516
22573
|
"stability": "experimental",
|
|
22517
|
-
"summary": "Grant the given identity custom permissions."
|
|
22574
|
+
"summary": "Grant the given identity custom permissions on this table."
|
|
22518
22575
|
},
|
|
22519
22576
|
"locationInModule": {
|
|
22520
22577
|
"filename": "lib/table-base.ts",
|
|
22521
|
-
"line":
|
|
22578
|
+
"line": 481
|
|
22522
22579
|
},
|
|
22523
22580
|
"name": "grant",
|
|
22524
22581
|
"parameters": [
|
|
22525
22582
|
{
|
|
22583
|
+
"docs": {
|
|
22584
|
+
"summary": "the principal."
|
|
22585
|
+
},
|
|
22526
22586
|
"name": "grantee",
|
|
22527
22587
|
"type": {
|
|
22528
22588
|
"fqn": "aws-cdk-lib.aws_iam.IGrantable"
|
|
22529
22589
|
}
|
|
22530
22590
|
},
|
|
22531
22591
|
{
|
|
22592
|
+
"docs": {
|
|
22593
|
+
"summary": "the set of Glue actions to allow (for example `glue:GetTable`)."
|
|
22594
|
+
},
|
|
22532
22595
|
"name": "actions",
|
|
22533
22596
|
"type": {
|
|
22534
22597
|
"collection": {
|
|
@@ -22596,23 +22659,29 @@
|
|
|
22596
22659
|
},
|
|
22597
22660
|
{
|
|
22598
22661
|
"docs": {
|
|
22599
|
-
"remarks": "
|
|
22662
|
+
"remarks": "This is a low-level escape hatch for actions (such as certain Lake\nFormation or crawler operations) that must be authorized against the\ncatalog and database in addition to the table. The `actions` are applied\nverbatim to all three ARNs (table, catalog, database), so scope them\ntightly: pass only the specific actions the grantee needs and avoid\nservice wildcards such as `glue:*`, which would grant broad access across\nevery resource in the catalog and database.\n[disable-awslint:no-grants]",
|
|
22600
22663
|
"stability": "experimental",
|
|
22601
|
-
"summary": "Grant the given identity custom permissions
|
|
22664
|
+
"summary": "Grant the given identity custom permissions on this table AND its parent catalog and database."
|
|
22602
22665
|
},
|
|
22603
22666
|
"locationInModule": {
|
|
22604
22667
|
"filename": "lib/table-base.ts",
|
|
22605
|
-
"line":
|
|
22668
|
+
"line": 505
|
|
22606
22669
|
},
|
|
22607
22670
|
"name": "grantToUnderlyingResources",
|
|
22608
22671
|
"parameters": [
|
|
22609
22672
|
{
|
|
22673
|
+
"docs": {
|
|
22674
|
+
"summary": "the principal."
|
|
22675
|
+
},
|
|
22610
22676
|
"name": "grantee",
|
|
22611
22677
|
"type": {
|
|
22612
22678
|
"fqn": "aws-cdk-lib.aws_iam.IGrantable"
|
|
22613
22679
|
}
|
|
22614
22680
|
},
|
|
22615
22681
|
{
|
|
22682
|
+
"docs": {
|
|
22683
|
+
"summary": "the set of Glue actions to allow (for example `glue:GetTable`)."
|
|
22684
|
+
},
|
|
22616
22685
|
"name": "actions",
|
|
22617
22686
|
"type": {
|
|
22618
22687
|
"collection": {
|
|
@@ -24407,6 +24476,6 @@
|
|
|
24407
24476
|
"symbolId": "lib/storage-parameter:WriteParallel"
|
|
24408
24477
|
}
|
|
24409
24478
|
},
|
|
24410
|
-
"version": "2.
|
|
24479
|
+
"version": "2.265.0-alpha.0",
|
|
24411
24480
|
"fingerprint": "**********"
|
|
24412
24481
|
}
|