All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.cloudshiftdev.awscdk.services.glue.CfnJobProps.kt Maven / Gradle / Ivy

The newest version!
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")

package io.cloudshiftdev.awscdk.services.glue

import io.cloudshiftdev.awscdk.IResolvable
import io.cloudshiftdev.awscdk.common.CdkDslMarker
import io.cloudshiftdev.awscdk.common.CdkObject
import io.cloudshiftdev.awscdk.common.CdkObjectWrappers
import kotlin.Any
import kotlin.Number
import kotlin.String
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * Properties for defining a `CfnJob`.
 *
 * Example:
 *
 * ```
 * // The code below shows an example of how to instantiate this type.
 * // The values are placeholders you should change.
 * import io.cloudshiftdev.awscdk.services.glue.*;
 * Object defaultArguments;
 * Object nonOverridableArguments;
 * Object tags;
 * CfnJobProps cfnJobProps = CfnJobProps.builder()
 * .command(JobCommandProperty.builder()
 * .name("name")
 * .pythonVersion("pythonVersion")
 * .runtime("runtime")
 * .scriptLocation("scriptLocation")
 * .build())
 * .role("role")
 * // the properties below are optional
 * .allocatedCapacity(123)
 * .connections(ConnectionsListProperty.builder()
 * .connections(List.of("connections"))
 * .build())
 * .defaultArguments(defaultArguments)
 * .description("description")
 * .executionClass("executionClass")
 * .executionProperty(ExecutionPropertyProperty.builder()
 * .maxConcurrentRuns(123)
 * .build())
 * .glueVersion("glueVersion")
 * .logUri("logUri")
 * .maintenanceWindow("maintenanceWindow")
 * .maxCapacity(123)
 * .maxRetries(123)
 * .name("name")
 * .nonOverridableArguments(nonOverridableArguments)
 * .notificationProperty(NotificationPropertyProperty.builder()
 * .notifyDelayAfter(123)
 * .build())
 * .numberOfWorkers(123)
 * .securityConfiguration("securityConfiguration")
 * .tags(tags)
 * .timeout(123)
 * .workerType("workerType")
 * .build();
 * ```
 *
 * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html)
 */
public interface CfnJobProps {
  /**
   * This parameter is no longer supported. Use `MaxCapacity` instead.
   *
   * The number of capacity units that are allocated to this job.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-allocatedcapacity)
   */
  public fun allocatedCapacity(): Number? = unwrap(this).getAllocatedCapacity()

  /**
   * The code that executes a job.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-command)
   */
  public fun command(): Any

  /**
   * The connections used for this job.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-connections)
   */
  public fun connections(): Any? = unwrap(this).getConnections()

  /**
   * The default arguments for this job, specified as name-value pairs.
   *
   * You can specify arguments here that your own job-execution script consumes, in addition to
   * arguments that AWS Glue itself consumes.
   *
   * For information about how to specify and consume your own job arguments, see [Calling AWS Glue
   * APIs in
   * Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) in
   * the *AWS Glue Developer Guide* .
   *
   * For information about the key-value pairs that AWS Glue consumes to set up your job, see
   * [Special Parameters Used by AWS
   * Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) in
   * the *AWS Glue Developer Guide* .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-defaultarguments)
   */
  public fun defaultArguments(): Any? = unwrap(this).getDefaultArguments()

  /**
   * A description of the job.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-description)
   */
  public fun description(): String? = unwrap(this).getDescription()

  /**
   * Indicates whether the job is run with a standard or flexible execution class.
   *
   * The standard execution class is ideal for time-sensitive workloads that require fast job
   * startup and dedicated resources.
   *
   * The flexible execution class is appropriate for time-insensitive jobs whose start and
   * completion times may vary.
   *
   * Only jobs with AWS Glue version 3.0 and above and command type `glueetl` will be allowed to set
   * `ExecutionClass` to `FLEX` . The flexible execution class is available for Spark jobs.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-executionclass)
   */
  public fun executionClass(): String? = unwrap(this).getExecutionClass()

  /**
   * The maximum number of concurrent runs that are allowed for this job.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-executionproperty)
   */
  public fun executionProperty(): Any? = unwrap(this).getExecutionProperty()

  /**
   * Glue version determines the versions of Apache Spark and Python that AWS Glue supports.
   *
   * The Python version indicates the version supported for jobs of type Spark.
   *
   * For more information about the available AWS Glue versions and corresponding Spark and Python
   * versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the
   * developer guide.
   *
   * Jobs that are created without specifying a Glue version default to the latest Glue version
   * available.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-glueversion)
   */
  public fun glueVersion(): String? = unwrap(this).getGlueVersion()

  /**
   * This field is reserved for future use.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-loguri)
   */
  public fun logUri(): String? = unwrap(this).getLogUri()

  /**
   * This field specifies a day of the week and hour for a maintenance window for streaming jobs.
   *
   * AWS Glue periodically performs maintenance activities. During these maintenance windows, AWS
   * Glue will need to restart your streaming jobs.
   *
   * AWS Glue will restart the job within 3 hours of the specified maintenance window. For instance,
   * if you set up the maintenance window for Monday at 10:00AM GMT, your jobs will be restarted
   * between 10:00AM GMT to 1:00PM GMT.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-maintenancewindow)
   */
  public fun maintenanceWindow(): String? = unwrap(this).getMaintenanceWindow()

  /**
   * The number of AWS Glue data processing units (DPUs) that can be allocated when this job runs.
   *
   * A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity
   * and 16 GB of memory.
   *
   * Do not set `Max Capacity` if using `WorkerType` and `NumberOfWorkers` .
   *
   * The value that can be allocated for `MaxCapacity` depends on whether you are running a Python
   * shell job or an Apache Spark ETL job:
   *
   * * When you specify a Python shell job ( `JobCommand.Name` ="pythonshell"), you can allocate
   * either 0.0625 or 1 DPU. The default is 0.0625 DPU.
   * * When you specify an Apache Spark ETL job ( `JobCommand.Name` ="glueetl"), you can allocate
   * from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-maxcapacity)
   */
  public fun maxCapacity(): Number? = unwrap(this).getMaxCapacity()

  /**
   * The maximum number of times to retry this job after a JobRun fails.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-maxretries)
   */
  public fun maxRetries(): Number? = unwrap(this).getMaxRetries()

  /**
   * The name you assign to this job definition.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-name)
   */
  public fun name(): String? = unwrap(this).getName()

  /**
   * Non-overridable arguments for this job, specified as name-value pairs.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-nonoverridablearguments)
   */
  public fun nonOverridableArguments(): Any? = unwrap(this).getNonOverridableArguments()

  /**
   * Specifies configuration properties of a notification.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-notificationproperty)
   */
  public fun notificationProperty(): Any? = unwrap(this).getNotificationProperty()

  /**
   * The number of workers of a defined `workerType` that are allocated when a job runs.
   *
   * The maximum number of workers you can define are 299 for `G.1X` , and 149 for `G.2X` .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-numberofworkers)
   */
  public fun numberOfWorkers(): Number? = unwrap(this).getNumberOfWorkers()

  /**
   * The name or Amazon Resource Name (ARN) of the IAM role associated with this job.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-role)
   */
  public fun role(): String

  /**
   * The name of the `SecurityConfiguration` structure to be used with this job.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-securityconfiguration)
   */
  public fun securityConfiguration(): String? = unwrap(this).getSecurityConfiguration()

  /**
   * The tags to use with this job.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-tags)
   */
  public fun tags(): Any? = unwrap(this).getTags()

  /**
   * The job timeout in minutes.
   *
   * This is the maximum time that a job run can consume resources before it is terminated and
   * enters TIMEOUT status. The default is 2,880 minutes (48 hours).
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-timeout)
   */
  public fun timeout(): Number? = unwrap(this).getTimeout()

  /**
   * The type of predefined worker that is allocated when a job runs.
   *
   * Accepts a value of G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for
   * Ray jobs.
   *
   * * For the `G.1X` worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 84GB
   * disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker type
   * for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective
   * way to run most jobs.
   * * For the `G.2X` worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 128GB
   * disk (approximately 77GB free), and provides 1 executor per worker. We recommend this worker type
   * for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective
   * way to run most jobs.
   * * For the `G.4X` worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB
   * disk (approximately 235GB free), and provides 1 executor per worker. We recommend this worker type
   * for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries.
   * This worker type is available only for AWS Glue version 3.0 or later Spark ETL jobs in the
   * following AWS Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific
   * (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt),
   * Europe (Ireland), and Europe (Stockholm).
   * * For the `G.8X` worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB
   * disk (approximately 487GB free), and provides 1 executor per worker. We recommend this worker type
   * for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries.
   * This worker type is available only for AWS Glue version 3.0 or later Spark ETL jobs, in the same
   * AWS Regions as supported for the `G.4X` worker type.
   * * For the `G.025X` worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with
   * 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker
   * type for low volume streaming jobs. This worker type is only available for AWS Glue version 3.0
   * streaming jobs.
   * * For the `Z.2X` worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB
   * disk (approximately 120GB free), and provides up to 8 Ray workers based on the autoscaler.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-workertype)
   */
  public fun workerType(): String? = unwrap(this).getWorkerType()

  /**
   * A builder for [CfnJobProps]
   */
  @CdkDslMarker
  public interface Builder {
    /**
     * @param allocatedCapacity This parameter is no longer supported. Use `MaxCapacity` instead.
     * The number of capacity units that are allocated to this job.
     */
    public fun allocatedCapacity(allocatedCapacity: Number)

    /**
     * @param command The code that executes a job. 
     */
    public fun command(command: IResolvable)

    /**
     * @param command The code that executes a job. 
     */
    public fun command(command: CfnJob.JobCommandProperty)

    /**
     * @param command The code that executes a job. 
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("da4b8ddfd931e2258ae33892b3856f3af8e9a12abfea18b04e500130cbfb461b")
    public fun command(command: CfnJob.JobCommandProperty.Builder.() -> Unit)

    /**
     * @param connections The connections used for this job.
     */
    public fun connections(connections: IResolvable)

    /**
     * @param connections The connections used for this job.
     */
    public fun connections(connections: CfnJob.ConnectionsListProperty)

    /**
     * @param connections The connections used for this job.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("5d004dac2e399a9b5b13d11a74ca3d6d386e4d9f85058f43e671c75dc44dfc4d")
    public fun connections(connections: CfnJob.ConnectionsListProperty.Builder.() -> Unit)

    /**
     * @param defaultArguments The default arguments for this job, specified as name-value pairs.
     * You can specify arguments here that your own job-execution script consumes, in addition to
     * arguments that AWS Glue itself consumes.
     *
     * For information about how to specify and consume your own job arguments, see [Calling AWS
     * Glue APIs in
     * Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) in
     * the *AWS Glue Developer Guide* .
     *
     * For information about the key-value pairs that AWS Glue consumes to set up your job, see
     * [Special Parameters Used by AWS
     * Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html)
     * in the *AWS Glue Developer Guide* .
     */
    public fun defaultArguments(defaultArguments: Any)

    /**
     * @param description A description of the job.
     */
    public fun description(description: String)

    /**
     * @param executionClass Indicates whether the job is run with a standard or flexible execution
     * class.
     * The standard execution class is ideal for time-sensitive workloads that require fast job
     * startup and dedicated resources.
     *
     * The flexible execution class is appropriate for time-insensitive jobs whose start and
     * completion times may vary.
     *
     * Only jobs with AWS Glue version 3.0 and above and command type `glueetl` will be allowed to
     * set `ExecutionClass` to `FLEX` . The flexible execution class is available for Spark jobs.
     */
    public fun executionClass(executionClass: String)

    /**
     * @param executionProperty The maximum number of concurrent runs that are allowed for this job.
     */
    public fun executionProperty(executionProperty: IResolvable)

    /**
     * @param executionProperty The maximum number of concurrent runs that are allowed for this job.
     */
    public fun executionProperty(executionProperty: CfnJob.ExecutionPropertyProperty)

    /**
     * @param executionProperty The maximum number of concurrent runs that are allowed for this job.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("5c6bf33591925bccc0b1b107899ab75f47a4f5ef4f10f4feb8b97fb37a9f5629")
    public
        fun executionProperty(executionProperty: CfnJob.ExecutionPropertyProperty.Builder.() -> Unit)

    /**
     * @param glueVersion Glue version determines the versions of Apache Spark and Python that AWS
     * Glue supports.
     * The Python version indicates the version supported for jobs of type Spark.
     *
     * For more information about the available AWS Glue versions and corresponding Spark and Python
     * versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the
     * developer guide.
     *
     * Jobs that are created without specifying a Glue version default to the latest Glue version
     * available.
     */
    public fun glueVersion(glueVersion: String)

    /**
     * @param logUri This field is reserved for future use.
     */
    public fun logUri(logUri: String)

    /**
     * @param maintenanceWindow This field specifies a day of the week and hour for a maintenance
     * window for streaming jobs.
     * AWS Glue periodically performs maintenance activities. During these maintenance windows, AWS
     * Glue will need to restart your streaming jobs.
     *
     * AWS Glue will restart the job within 3 hours of the specified maintenance window. For
     * instance, if you set up the maintenance window for Monday at 10:00AM GMT, your jobs will be
     * restarted between 10:00AM GMT to 1:00PM GMT.
     */
    public fun maintenanceWindow(maintenanceWindow: String)

    /**
     * @param maxCapacity The number of AWS Glue data processing units (DPUs) that can be allocated
     * when this job runs.
     * A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity
     * and 16 GB of memory.
     *
     * Do not set `Max Capacity` if using `WorkerType` and `NumberOfWorkers` .
     *
     * The value that can be allocated for `MaxCapacity` depends on whether you are running a Python
     * shell job or an Apache Spark ETL job:
     *
     * * When you specify a Python shell job ( `JobCommand.Name` ="pythonshell"), you can allocate
     * either 0.0625 or 1 DPU. The default is 0.0625 DPU.
     * * When you specify an Apache Spark ETL job ( `JobCommand.Name` ="glueetl"), you can allocate
     * from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU
     * allocation.
     */
    public fun maxCapacity(maxCapacity: Number)

    /**
     * @param maxRetries The maximum number of times to retry this job after a JobRun fails.
     */
    public fun maxRetries(maxRetries: Number)

    /**
     * @param name The name you assign to this job definition.
     */
    public fun name(name: String)

    /**
     * @param nonOverridableArguments Non-overridable arguments for this job, specified as
     * name-value pairs.
     */
    public fun nonOverridableArguments(nonOverridableArguments: Any)

    /**
     * @param notificationProperty Specifies configuration properties of a notification.
     */
    public fun notificationProperty(notificationProperty: IResolvable)

    /**
     * @param notificationProperty Specifies configuration properties of a notification.
     */
    public fun notificationProperty(notificationProperty: CfnJob.NotificationPropertyProperty)

    /**
     * @param notificationProperty Specifies configuration properties of a notification.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("6aec0fe135a85e56aea229fcf808f3fa7c8bf2bf853e52a3787c6052a213058f")
    public
        fun notificationProperty(notificationProperty: CfnJob.NotificationPropertyProperty.Builder.() -> Unit)

    /**
     * @param numberOfWorkers The number of workers of a defined `workerType` that are allocated
     * when a job runs.
     * The maximum number of workers you can define are 299 for `G.1X` , and 149 for `G.2X` .
     */
    public fun numberOfWorkers(numberOfWorkers: Number)

    /**
     * @param role The name or Amazon Resource Name (ARN) of the IAM role associated with this job. 
     */
    public fun role(role: String)

    /**
     * @param securityConfiguration The name of the `SecurityConfiguration` structure to be used
     * with this job.
     */
    public fun securityConfiguration(securityConfiguration: String)

    /**
     * @param tags The tags to use with this job.
     */
    public fun tags(tags: Any)

    /**
     * @param timeout The job timeout in minutes.
     * This is the maximum time that a job run can consume resources before it is terminated and
     * enters TIMEOUT status. The default is 2,880 minutes (48 hours).
     */
    public fun timeout(timeout: Number)

    /**
     * @param workerType The type of predefined worker that is allocated when a job runs.
     * Accepts a value of G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X
     * for Ray jobs.
     *
     * * For the `G.1X` worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 84GB
     * disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker
     * type for workloads such as data transforms, joins, and queries, to offers a scalable and cost
     * effective way to run most jobs.
     * * For the `G.2X` worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 128GB
     * disk (approximately 77GB free), and provides 1 executor per worker. We recommend this worker
     * type for workloads such as data transforms, joins, and queries, to offers a scalable and cost
     * effective way to run most jobs.
     * * For the `G.4X` worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with
     * 256GB disk (approximately 235GB free), and provides 1 executor per worker. We recommend this
     * worker type for jobs whose workloads contain your most demanding transforms, aggregations,
     * joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark
     * ETL jobs in the following AWS Regions: US East (Ohio), US East (N. Virginia), US West (Oregon),
     * Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe
     * (Frankfurt), Europe (Ireland), and Europe (Stockholm).
     * * For the `G.8X` worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with
     * 512GB disk (approximately 487GB free), and provides 1 executor per worker. We recommend this
     * worker type for jobs whose workloads contain your most demanding transforms, aggregations,
     * joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark
     * ETL jobs, in the same AWS Regions as supported for the `G.4X` worker type.
     * * For the `G.025X` worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with
     * 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this
     * worker type for low volume streaming jobs. This worker type is only available for AWS Glue
     * version 3.0 streaming jobs.
     * * For the `Z.2X` worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128
     * GB disk (approximately 120GB free), and provides up to 8 Ray workers based on the autoscaler.
     */
    public fun workerType(workerType: String)
  }

  private class BuilderImpl : Builder {
    private val cdkBuilder: software.amazon.awscdk.services.glue.CfnJobProps.Builder =
        software.amazon.awscdk.services.glue.CfnJobProps.builder()

    /**
     * @param allocatedCapacity This parameter is no longer supported. Use `MaxCapacity` instead.
     * The number of capacity units that are allocated to this job.
     */
    override fun allocatedCapacity(allocatedCapacity: Number) {
      cdkBuilder.allocatedCapacity(allocatedCapacity)
    }

    /**
     * @param command The code that executes a job. 
     */
    override fun command(command: IResolvable) {
      cdkBuilder.command(command.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param command The code that executes a job. 
     */
    override fun command(command: CfnJob.JobCommandProperty) {
      cdkBuilder.command(command.let(CfnJob.JobCommandProperty.Companion::unwrap))
    }

    /**
     * @param command The code that executes a job. 
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("da4b8ddfd931e2258ae33892b3856f3af8e9a12abfea18b04e500130cbfb461b")
    override fun command(command: CfnJob.JobCommandProperty.Builder.() -> Unit): Unit =
        command(CfnJob.JobCommandProperty(command))

    /**
     * @param connections The connections used for this job.
     */
    override fun connections(connections: IResolvable) {
      cdkBuilder.connections(connections.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param connections The connections used for this job.
     */
    override fun connections(connections: CfnJob.ConnectionsListProperty) {
      cdkBuilder.connections(connections.let(CfnJob.ConnectionsListProperty.Companion::unwrap))
    }

    /**
     * @param connections The connections used for this job.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("5d004dac2e399a9b5b13d11a74ca3d6d386e4d9f85058f43e671c75dc44dfc4d")
    override fun connections(connections: CfnJob.ConnectionsListProperty.Builder.() -> Unit): Unit =
        connections(CfnJob.ConnectionsListProperty(connections))

    /**
     * @param defaultArguments The default arguments for this job, specified as name-value pairs.
     * You can specify arguments here that your own job-execution script consumes, in addition to
     * arguments that AWS Glue itself consumes.
     *
     * For information about how to specify and consume your own job arguments, see [Calling AWS
     * Glue APIs in
     * Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) in
     * the *AWS Glue Developer Guide* .
     *
     * For information about the key-value pairs that AWS Glue consumes to set up your job, see
     * [Special Parameters Used by AWS
     * Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html)
     * in the *AWS Glue Developer Guide* .
     */
    override fun defaultArguments(defaultArguments: Any) {
      cdkBuilder.defaultArguments(defaultArguments)
    }

    /**
     * @param description A description of the job.
     */
    override fun description(description: String) {
      cdkBuilder.description(description)
    }

    /**
     * @param executionClass Indicates whether the job is run with a standard or flexible execution
     * class.
     * The standard execution class is ideal for time-sensitive workloads that require fast job
     * startup and dedicated resources.
     *
     * The flexible execution class is appropriate for time-insensitive jobs whose start and
     * completion times may vary.
     *
     * Only jobs with AWS Glue version 3.0 and above and command type `glueetl` will be allowed to
     * set `ExecutionClass` to `FLEX` . The flexible execution class is available for Spark jobs.
     */
    override fun executionClass(executionClass: String) {
      cdkBuilder.executionClass(executionClass)
    }

    /**
     * @param executionProperty The maximum number of concurrent runs that are allowed for this job.
     */
    override fun executionProperty(executionProperty: IResolvable) {
      cdkBuilder.executionProperty(executionProperty.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param executionProperty The maximum number of concurrent runs that are allowed for this job.
     */
    override fun executionProperty(executionProperty: CfnJob.ExecutionPropertyProperty) {
      cdkBuilder.executionProperty(executionProperty.let(CfnJob.ExecutionPropertyProperty.Companion::unwrap))
    }

    /**
     * @param executionProperty The maximum number of concurrent runs that are allowed for this job.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("5c6bf33591925bccc0b1b107899ab75f47a4f5ef4f10f4feb8b97fb37a9f5629")
    override
        fun executionProperty(executionProperty: CfnJob.ExecutionPropertyProperty.Builder.() -> Unit):
        Unit = executionProperty(CfnJob.ExecutionPropertyProperty(executionProperty))

    /**
     * @param glueVersion Glue version determines the versions of Apache Spark and Python that AWS
     * Glue supports.
     * The Python version indicates the version supported for jobs of type Spark.
     *
     * For more information about the available AWS Glue versions and corresponding Spark and Python
     * versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the
     * developer guide.
     *
     * Jobs that are created without specifying a Glue version default to the latest Glue version
     * available.
     */
    override fun glueVersion(glueVersion: String) {
      cdkBuilder.glueVersion(glueVersion)
    }

    /**
     * @param logUri This field is reserved for future use.
     */
    override fun logUri(logUri: String) {
      cdkBuilder.logUri(logUri)
    }

    /**
     * @param maintenanceWindow This field specifies a day of the week and hour for a maintenance
     * window for streaming jobs.
     * AWS Glue periodically performs maintenance activities. During these maintenance windows, AWS
     * Glue will need to restart your streaming jobs.
     *
     * AWS Glue will restart the job within 3 hours of the specified maintenance window. For
     * instance, if you set up the maintenance window for Monday at 10:00AM GMT, your jobs will be
     * restarted between 10:00AM GMT to 1:00PM GMT.
     */
    override fun maintenanceWindow(maintenanceWindow: String) {
      cdkBuilder.maintenanceWindow(maintenanceWindow)
    }

    /**
     * @param maxCapacity The number of AWS Glue data processing units (DPUs) that can be allocated
     * when this job runs.
     * A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity
     * and 16 GB of memory.
     *
     * Do not set `Max Capacity` if using `WorkerType` and `NumberOfWorkers` .
     *
     * The value that can be allocated for `MaxCapacity` depends on whether you are running a Python
     * shell job or an Apache Spark ETL job:
     *
     * * When you specify a Python shell job ( `JobCommand.Name` ="pythonshell"), you can allocate
     * either 0.0625 or 1 DPU. The default is 0.0625 DPU.
     * * When you specify an Apache Spark ETL job ( `JobCommand.Name` ="glueetl"), you can allocate
     * from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU
     * allocation.
     */
    override fun maxCapacity(maxCapacity: Number) {
      cdkBuilder.maxCapacity(maxCapacity)
    }

    /**
     * @param maxRetries The maximum number of times to retry this job after a JobRun fails.
     */
    override fun maxRetries(maxRetries: Number) {
      cdkBuilder.maxRetries(maxRetries)
    }

    /**
     * @param name The name you assign to this job definition.
     */
    override fun name(name: String) {
      cdkBuilder.name(name)
    }

    /**
     * @param nonOverridableArguments Non-overridable arguments for this job, specified as
     * name-value pairs.
     */
    override fun nonOverridableArguments(nonOverridableArguments: Any) {
      cdkBuilder.nonOverridableArguments(nonOverridableArguments)
    }

    /**
     * @param notificationProperty Specifies configuration properties of a notification.
     */
    override fun notificationProperty(notificationProperty: IResolvable) {
      cdkBuilder.notificationProperty(notificationProperty.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param notificationProperty Specifies configuration properties of a notification.
     */
    override fun notificationProperty(notificationProperty: CfnJob.NotificationPropertyProperty) {
      cdkBuilder.notificationProperty(notificationProperty.let(CfnJob.NotificationPropertyProperty.Companion::unwrap))
    }

    /**
     * @param notificationProperty Specifies configuration properties of a notification.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("6aec0fe135a85e56aea229fcf808f3fa7c8bf2bf853e52a3787c6052a213058f")
    override
        fun notificationProperty(notificationProperty: CfnJob.NotificationPropertyProperty.Builder.() -> Unit):
        Unit = notificationProperty(CfnJob.NotificationPropertyProperty(notificationProperty))

    /**
     * @param numberOfWorkers The number of workers of a defined `workerType` that are allocated
     * when a job runs.
     * The maximum number of workers you can define are 299 for `G.1X` , and 149 for `G.2X` .
     */
    override fun numberOfWorkers(numberOfWorkers: Number) {
      cdkBuilder.numberOfWorkers(numberOfWorkers)
    }

    /**
     * @param role The name or Amazon Resource Name (ARN) of the IAM role associated with this job. 
     */
    override fun role(role: String) {
      cdkBuilder.role(role)
    }

    /**
     * @param securityConfiguration The name of the `SecurityConfiguration` structure to be used
     * with this job.
     */
    override fun securityConfiguration(securityConfiguration: String) {
      cdkBuilder.securityConfiguration(securityConfiguration)
    }

    /**
     * @param tags The tags to use with this job.
     */
    override fun tags(tags: Any) {
      cdkBuilder.tags(tags)
    }

    /**
     * @param timeout The job timeout in minutes.
     * This is the maximum time that a job run can consume resources before it is terminated and
     * enters TIMEOUT status. The default is 2,880 minutes (48 hours).
     */
    override fun timeout(timeout: Number) {
      cdkBuilder.timeout(timeout)
    }

    /**
     * @param workerType The type of predefined worker that is allocated when a job runs.
     * Accepts a value of G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X
     * for Ray jobs.
     *
     * * For the `G.1X` worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 84GB
     * disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker
     * type for workloads such as data transforms, joins, and queries, to offers a scalable and cost
     * effective way to run most jobs.
     * * For the `G.2X` worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 128GB
     * disk (approximately 77GB free), and provides 1 executor per worker. We recommend this worker
     * type for workloads such as data transforms, joins, and queries, to offers a scalable and cost
     * effective way to run most jobs.
     * * For the `G.4X` worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with
     * 256GB disk (approximately 235GB free), and provides 1 executor per worker. We recommend this
     * worker type for jobs whose workloads contain your most demanding transforms, aggregations,
     * joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark
     * ETL jobs in the following AWS Regions: US East (Ohio), US East (N. Virginia), US West (Oregon),
     * Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe
     * (Frankfurt), Europe (Ireland), and Europe (Stockholm).
     * * For the `G.8X` worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with
     * 512GB disk (approximately 487GB free), and provides 1 executor per worker. We recommend this
     * worker type for jobs whose workloads contain your most demanding transforms, aggregations,
     * joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark
     * ETL jobs, in the same AWS Regions as supported for the `G.4X` worker type.
     * * For the `G.025X` worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with
     * 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this
     * worker type for low volume streaming jobs. This worker type is only available for AWS Glue
     * version 3.0 streaming jobs.
     * * For the `Z.2X` worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128
     * GB disk (approximately 120GB free), and provides up to 8 Ray workers based on the autoscaler.
     */
    override fun workerType(workerType: String) {
      cdkBuilder.workerType(workerType)
    }

    public fun build(): software.amazon.awscdk.services.glue.CfnJobProps = cdkBuilder.build()
  }

  private class Wrapper(
    cdkObject: software.amazon.awscdk.services.glue.CfnJobProps,
  ) : CdkObject(cdkObject),
      CfnJobProps {
    /**
     * This parameter is no longer supported. Use `MaxCapacity` instead.
     *
     * The number of capacity units that are allocated to this job.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-allocatedcapacity)
     */
    override fun allocatedCapacity(): Number? = unwrap(this).getAllocatedCapacity()

    /**
     * The code that executes a job.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-command)
     */
    override fun command(): Any = unwrap(this).getCommand()

    /**
     * The connections used for this job.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-connections)
     */
    override fun connections(): Any? = unwrap(this).getConnections()

    /**
     * The default arguments for this job, specified as name-value pairs.
     *
     * You can specify arguments here that your own job-execution script consumes, in addition to
     * arguments that AWS Glue itself consumes.
     *
     * For information about how to specify and consume your own job arguments, see [Calling AWS
     * Glue APIs in
     * Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) in
     * the *AWS Glue Developer Guide* .
     *
     * For information about the key-value pairs that AWS Glue consumes to set up your job, see
     * [Special Parameters Used by AWS
     * Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html)
     * in the *AWS Glue Developer Guide* .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-defaultarguments)
     */
    override fun defaultArguments(): Any? = unwrap(this).getDefaultArguments()

    /**
     * A description of the job.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-description)
     */
    override fun description(): String? = unwrap(this).getDescription()

    /**
     * Indicates whether the job is run with a standard or flexible execution class.
     *
     * The standard execution class is ideal for time-sensitive workloads that require fast job
     * startup and dedicated resources.
     *
     * The flexible execution class is appropriate for time-insensitive jobs whose start and
     * completion times may vary.
     *
     * Only jobs with AWS Glue version 3.0 and above and command type `glueetl` will be allowed to
     * set `ExecutionClass` to `FLEX` . The flexible execution class is available for Spark jobs.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-executionclass)
     */
    override fun executionClass(): String? = unwrap(this).getExecutionClass()

    /**
     * The maximum number of concurrent runs that are allowed for this job.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-executionproperty)
     */
    override fun executionProperty(): Any? = unwrap(this).getExecutionProperty()

    /**
     * Glue version determines the versions of Apache Spark and Python that AWS Glue supports.
     *
     * The Python version indicates the version supported for jobs of type Spark.
     *
     * For more information about the available AWS Glue versions and corresponding Spark and Python
     * versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the
     * developer guide.
     *
     * Jobs that are created without specifying a Glue version default to the latest Glue version
     * available.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-glueversion)
     */
    override fun glueVersion(): String? = unwrap(this).getGlueVersion()

    /**
     * This field is reserved for future use.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-loguri)
     */
    override fun logUri(): String? = unwrap(this).getLogUri()

    /**
     * This field specifies a day of the week and hour for a maintenance window for streaming jobs.
     *
     * AWS Glue periodically performs maintenance activities. During these maintenance windows, AWS
     * Glue will need to restart your streaming jobs.
     *
     * AWS Glue will restart the job within 3 hours of the specified maintenance window. For
     * instance, if you set up the maintenance window for Monday at 10:00AM GMT, your jobs will be
     * restarted between 10:00AM GMT to 1:00PM GMT.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-maintenancewindow)
     */
    override fun maintenanceWindow(): String? = unwrap(this).getMaintenanceWindow()

    /**
     * The number of AWS Glue data processing units (DPUs) that can be allocated when this job runs.
     *
     * A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity
     * and 16 GB of memory.
     *
     * Do not set `Max Capacity` if using `WorkerType` and `NumberOfWorkers` .
     *
     * The value that can be allocated for `MaxCapacity` depends on whether you are running a Python
     * shell job or an Apache Spark ETL job:
     *
     * * When you specify a Python shell job ( `JobCommand.Name` ="pythonshell"), you can allocate
     * either 0.0625 or 1 DPU. The default is 0.0625 DPU.
     * * When you specify an Apache Spark ETL job ( `JobCommand.Name` ="glueetl"), you can allocate
     * from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU
     * allocation.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-maxcapacity)
     */
    override fun maxCapacity(): Number? = unwrap(this).getMaxCapacity()

    /**
     * The maximum number of times to retry this job after a JobRun fails.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-maxretries)
     */
    override fun maxRetries(): Number? = unwrap(this).getMaxRetries()

    /**
     * The name you assign to this job definition.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-name)
     */
    override fun name(): String? = unwrap(this).getName()

    /**
     * Non-overridable arguments for this job, specified as name-value pairs.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-nonoverridablearguments)
     */
    override fun nonOverridableArguments(): Any? = unwrap(this).getNonOverridableArguments()

    /**
     * Specifies configuration properties of a notification.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-notificationproperty)
     */
    override fun notificationProperty(): Any? = unwrap(this).getNotificationProperty()

    /**
     * The number of workers of a defined `workerType` that are allocated when a job runs.
     *
     * The maximum number of workers you can define are 299 for `G.1X` , and 149 for `G.2X` .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-numberofworkers)
     */
    override fun numberOfWorkers(): Number? = unwrap(this).getNumberOfWorkers()

    /**
     * The name or Amazon Resource Name (ARN) of the IAM role associated with this job.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-role)
     */
    override fun role(): String = unwrap(this).getRole()

    /**
     * The name of the `SecurityConfiguration` structure to be used with this job.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-securityconfiguration)
     */
    override fun securityConfiguration(): String? = unwrap(this).getSecurityConfiguration()

    /**
     * The tags to use with this job.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-tags)
     */
    override fun tags(): Any? = unwrap(this).getTags()

    /**
     * The job timeout in minutes.
     *
     * This is the maximum time that a job run can consume resources before it is terminated and
     * enters TIMEOUT status. The default is 2,880 minutes (48 hours).
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-timeout)
     */
    override fun timeout(): Number? = unwrap(this).getTimeout()

    /**
     * The type of predefined worker that is allocated when a job runs.
     *
     * Accepts a value of G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X
     * for Ray jobs.
     *
     * * For the `G.1X` worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 84GB
     * disk (approximately 34GB free), and provides 1 executor per worker. We recommend this worker
     * type for workloads such as data transforms, joins, and queries, to offers a scalable and cost
     * effective way to run most jobs.
     * * For the `G.2X` worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 128GB
     * disk (approximately 77GB free), and provides 1 executor per worker. We recommend this worker
     * type for workloads such as data transforms, joins, and queries, to offers a scalable and cost
     * effective way to run most jobs.
     * * For the `G.4X` worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with
     * 256GB disk (approximately 235GB free), and provides 1 executor per worker. We recommend this
     * worker type for jobs whose workloads contain your most demanding transforms, aggregations,
     * joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark
     * ETL jobs in the following AWS Regions: US East (Ohio), US East (N. Virginia), US West (Oregon),
     * Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe
     * (Frankfurt), Europe (Ireland), and Europe (Stockholm).
     * * For the `G.8X` worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with
     * 512GB disk (approximately 487GB free), and provides 1 executor per worker. We recommend this
     * worker type for jobs whose workloads contain your most demanding transforms, aggregations,
     * joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark
     * ETL jobs, in the same AWS Regions as supported for the `G.4X` worker type.
     * * For the `G.025X` worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with
     * 84GB disk (approximately 34GB free), and provides 1 executor per worker. We recommend this
     * worker type for low volume streaming jobs. This worker type is only available for AWS Glue
     * version 3.0 streaming jobs.
     * * For the `Z.2X` worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128
     * GB disk (approximately 120GB free), and provides up to 8 Ray workers based on the autoscaler.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-workertype)
     */
    override fun workerType(): String? = unwrap(this).getWorkerType()
  }

  public companion object {
    public operator fun invoke(block: Builder.() -> Unit = {}): CfnJobProps {
      val builderImpl = BuilderImpl()
      return Wrapper(builderImpl.apply(block).build())
    }

    internal fun wrap(cdkObject: software.amazon.awscdk.services.glue.CfnJobProps): CfnJobProps =
        CdkObjectWrappers.wrap(cdkObject) as? CfnJobProps ?: Wrapper(cdkObject)

    internal fun unwrap(wrapped: CfnJobProps): software.amazon.awscdk.services.glue.CfnJobProps =
        (wrapped as CdkObject).cdkObject as software.amazon.awscdk.services.glue.CfnJobProps
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy