github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/glue/job.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package glue
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Provides a Glue Job resource.
    16  //
    17  // > Glue functionality, such as monitoring and logging of jobs, is typically managed with the `defaultArguments` argument. See the [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) topic in the Glue developer guide for additional information.
    18  //
    19  // ## Example Usage
    20  //
    21  // ### Python Job
    22  //
    23  // <!--Start PulumiCodeChooser -->
    24  // ```go
    25  // package main
    26  //
    27  // import (
    28  //
    29  //	"fmt"
    30  //
    31  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue"
    32  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    33  //
    34  // )
    35  //
    36  //	func main() {
    37  //		pulumi.Run(func(ctx *pulumi.Context) error {
    38  //			_, err := glue.NewJob(ctx, "example", &glue.JobArgs{
    39  //				Name:    pulumi.String("example"),
    40  //				RoleArn: pulumi.Any(exampleAwsIamRole.Arn),
    41  //				Command: &glue.JobCommandArgs{
    42  //					ScriptLocation: pulumi.String(fmt.Sprintf("s3://%v/example.py", exampleAwsS3Bucket.Bucket)),
    43  //				},
    44  //			})
    45  //			if err != nil {
    46  //				return err
    47  //			}
    48  //			return nil
    49  //		})
    50  //	}
    51  //
    52  // ```
    53  // <!--End PulumiCodeChooser -->
    54  //
    55  // ### Ray Job
    56  //
    57  // <!--Start PulumiCodeChooser -->
    58  // ```go
    59  // package main
    60  //
    61  // import (
    62  //
    63  //	"fmt"
    64  //
    65  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue"
    66  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    67  //
    68  // )
    69  //
    70  //	func main() {
    71  //		pulumi.Run(func(ctx *pulumi.Context) error {
    72  //			_, err := glue.NewJob(ctx, "example", &glue.JobArgs{
    73  //				Name:        pulumi.String("example"),
    74  //				RoleArn:     pulumi.Any(exampleAwsIamRole.Arn),
    75  //				GlueVersion: pulumi.String("4.0"),
    76  //				WorkerType:  pulumi.String("Z.2X"),
    77  //				Command: &glue.JobCommandArgs{
    78  //					Name:           pulumi.String("glueray"),
    79  //					PythonVersion:  pulumi.String("3.9"),
    80  //					Runtime:        pulumi.String("Ray2.4"),
    81  //					ScriptLocation: pulumi.String(fmt.Sprintf("s3://%v/example.py", exampleAwsS3Bucket.Bucket)),
    82  //				},
    83  //			})
    84  //			if err != nil {
    85  //				return err
    86  //			}
    87  //			return nil
    88  //		})
    89  //	}
    90  //
    91  // ```
    92  // <!--End PulumiCodeChooser -->
    93  //
    94  // ### Scala Job
    95  //
    96  // <!--Start PulumiCodeChooser -->
    97  // ```go
    98  // package main
    99  //
   100  // import (
   101  //
   102  //	"fmt"
   103  //
   104  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue"
   105  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   106  //
   107  // )
   108  //
   109  //	func main() {
   110  //		pulumi.Run(func(ctx *pulumi.Context) error {
   111  //			_, err := glue.NewJob(ctx, "example", &glue.JobArgs{
   112  //				Name:    pulumi.String("example"),
   113  //				RoleArn: pulumi.Any(exampleAwsIamRole.Arn),
   114  //				Command: &glue.JobCommandArgs{
   115  //					ScriptLocation: pulumi.String(fmt.Sprintf("s3://%v/example.scala", exampleAwsS3Bucket.Bucket)),
   116  //				},
   117  //				DefaultArguments: pulumi.StringMap{
   118  //					"--job-language": pulumi.String("scala"),
   119  //				},
   120  //			})
   121  //			if err != nil {
   122  //				return err
   123  //			}
   124  //			return nil
   125  //		})
   126  //	}
   127  //
   128  // ```
   129  // <!--End PulumiCodeChooser -->
   130  //
   131  // ### Streaming Job
   132  //
   133  // <!--Start PulumiCodeChooser -->
   134  // ```go
   135  // package main
   136  //
   137  // import (
   138  //
   139  //	"fmt"
   140  //
   141  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue"
   142  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   143  //
   144  // )
   145  //
   146  //	func main() {
   147  //		pulumi.Run(func(ctx *pulumi.Context) error {
   148  //			_, err := glue.NewJob(ctx, "example", &glue.JobArgs{
   149  //				Name:    pulumi.String("example streaming job"),
   150  //				RoleArn: pulumi.Any(exampleAwsIamRole.Arn),
   151  //				Command: &glue.JobCommandArgs{
   152  //					Name:           pulumi.String("gluestreaming"),
   153  //					ScriptLocation: pulumi.String(fmt.Sprintf("s3://%v/example.script", exampleAwsS3Bucket.Bucket)),
   154  //				},
   155  //			})
   156  //			if err != nil {
   157  //				return err
   158  //			}
   159  //			return nil
   160  //		})
   161  //	}
   162  //
   163  // ```
   164  // <!--End PulumiCodeChooser -->
   165  //
   166  // ### Enabling CloudWatch Logs and Metrics
   167  //
   168  // <!--Start PulumiCodeChooser -->
   169  // ```go
   170  // package main
   171  //
   172  // import (
   173  //
   174  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch"
   175  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue"
   176  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   177  //
   178  // )
   179  //
   180  //	func main() {
   181  //		pulumi.Run(func(ctx *pulumi.Context) error {
   182  //			example, err := cloudwatch.NewLogGroup(ctx, "example", &cloudwatch.LogGroupArgs{
   183  //				Name:            pulumi.String("example"),
   184  //				RetentionInDays: pulumi.Int(14),
   185  //			})
   186  //			if err != nil {
   187  //				return err
   188  //			}
   189  //			_, err = glue.NewJob(ctx, "example", &glue.JobArgs{
   190  //				DefaultArguments: pulumi.StringMap{
   191  //					"--continuous-log-logGroup":          example.Name,
   192  //					"--enable-continuous-cloudwatch-log": pulumi.String("true"),
   193  //					"--enable-continuous-log-filter":     pulumi.String("true"),
   194  //					"--enable-metrics":                   pulumi.String(""),
   195  //				},
   196  //			})
   197  //			if err != nil {
   198  //				return err
   199  //			}
   200  //			return nil
   201  //		})
   202  //	}
   203  //
   204  // ```
   205  // <!--End PulumiCodeChooser -->
   206  //
   207  // ## Import
   208  //
   209  // Using `pulumi import`, import Glue Jobs using `name`. For example:
   210  //
   211  // ```sh
   212  // $ pulumi import aws:glue/job:Job MyJob MyJob
   213  // ```
   214  type Job struct {
   215  	pulumi.CustomResourceState
   216  
   217  	// Amazon Resource Name (ARN) of Glue Job
   218  	Arn pulumi.StringOutput `pulumi:"arn"`
   219  	// The command of the job. Defined below.
   220  	Command JobCommandOutput `pulumi:"command"`
   221  	// The list of connections used for this job.
   222  	Connections pulumi.StringArrayOutput `pulumi:"connections"`
   223  	// The map of default arguments for this job. You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes. For information about how to specify and consume your own Job arguments, see the [Calling AWS Glue APIs in Python](http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide. For information about the key-value pairs that AWS Glue consumes to set up your job, see the [Special Parameters Used by AWS Glue](http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-glue-arguments.html) topic in the developer guide.
   224  	DefaultArguments pulumi.StringMapOutput `pulumi:"defaultArguments"`
   225  	// Description of the job.
   226  	Description pulumi.StringPtrOutput `pulumi:"description"`
   227  	// 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. Valid value: `FLEX`, `STANDARD`.
   228  	ExecutionClass pulumi.StringPtrOutput `pulumi:"executionClass"`
   229  	// Execution property of the job. Defined below.
   230  	ExecutionProperty JobExecutionPropertyOutput `pulumi:"executionProperty"`
   231  	// The version of glue to use, for example "1.0". Ray jobs should set this to 4.0 or greater. For information about available versions, see the [AWS Glue Release Notes](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html).
   232  	GlueVersion pulumi.StringOutput `pulumi:"glueVersion"`
   233  	// The maximum number of AWS Glue data processing units (DPUs) that can be allocated when this job runs. `Required` when `pythonshell` is set, accept either `0.0625` or `1.0`. Use `numberOfWorkers` and `workerType` arguments instead with `glueVersion` `2.0` and above.
   234  	MaxCapacity pulumi.Float64Output `pulumi:"maxCapacity"`
   235  	// The maximum number of times to retry this job if it fails.
   236  	MaxRetries pulumi.IntPtrOutput `pulumi:"maxRetries"`
   237  	// The name you assign to this job. It must be unique in your account.
   238  	Name pulumi.StringOutput `pulumi:"name"`
   239  	// Non-overridable arguments for this job, specified as name-value pairs.
   240  	NonOverridableArguments pulumi.StringMapOutput `pulumi:"nonOverridableArguments"`
   241  	// Notification property of the job. Defined below.
   242  	NotificationProperty JobNotificationPropertyOutput `pulumi:"notificationProperty"`
   243  	// The number of workers of a defined workerType that are allocated when a job runs.
   244  	NumberOfWorkers pulumi.IntOutput `pulumi:"numberOfWorkers"`
   245  	// The ARN of the IAM role associated with this job.
   246  	RoleArn pulumi.StringOutput `pulumi:"roleArn"`
   247  	// The name of the Security Configuration to be associated with the job.
   248  	SecurityConfiguration pulumi.StringPtrOutput `pulumi:"securityConfiguration"`
   249  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   250  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   251  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   252  	//
   253  	// Deprecated: Please use `tags` instead.
   254  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   255  	// The job timeout in minutes. The default is 2880 minutes (48 hours) for `glueetl` and `pythonshell` jobs, and null (unlimited) for `gluestreaming` jobs.
   256  	Timeout pulumi.IntOutput `pulumi:"timeout"`
   257  	// The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.
   258  	// * For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
   259  	// * For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for memory-intensive jobs.
   260  	// * For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. Recommended for memory-intensive jobs.
   261  	// * 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. Recommended for memory-intensive jobs. Only available for Glue version 3.0. Available 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).
   262  	// * 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. Recommended for memory-intensive jobs. Only available for Glue version 3.0. Available 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).
   263  	// * For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for low volume streaming jobs. Only available for Glue version 3.0.
   264  	// * For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPU, 64 GB of m emory, 128 GB disk), and provides up to 8 Ray workers based on the autoscaler.
   265  	WorkerType pulumi.StringOutput `pulumi:"workerType"`
   266  }
   267  
   268  // NewJob registers a new resource with the given unique name, arguments, and options.
   269  func NewJob(ctx *pulumi.Context,
   270  	name string, args *JobArgs, opts ...pulumi.ResourceOption) (*Job, error) {
   271  	if args == nil {
   272  		return nil, errors.New("missing one or more required arguments")
   273  	}
   274  
   275  	if args.Command == nil {
   276  		return nil, errors.New("invalid value for required argument 'Command'")
   277  	}
   278  	if args.RoleArn == nil {
   279  		return nil, errors.New("invalid value for required argument 'RoleArn'")
   280  	}
   281  	opts = internal.PkgResourceDefaultOpts(opts)
   282  	var resource Job
   283  	err := ctx.RegisterResource("aws:glue/job:Job", name, args, &resource, opts...)
   284  	if err != nil {
   285  		return nil, err
   286  	}
   287  	return &resource, nil
   288  }
   289  
   290  // GetJob gets an existing Job resource's state with the given name, ID, and optional
   291  // state properties that are used to uniquely qualify the lookup (nil if not required).
   292  func GetJob(ctx *pulumi.Context,
   293  	name string, id pulumi.IDInput, state *JobState, opts ...pulumi.ResourceOption) (*Job, error) {
   294  	var resource Job
   295  	err := ctx.ReadResource("aws:glue/job:Job", name, id, state, &resource, opts...)
   296  	if err != nil {
   297  		return nil, err
   298  	}
   299  	return &resource, nil
   300  }
   301  
   302  // Input properties used for looking up and filtering Job resources.
   303  type jobState struct {
   304  	// Amazon Resource Name (ARN) of Glue Job
   305  	Arn *string `pulumi:"arn"`
   306  	// The command of the job. Defined below.
   307  	Command *JobCommand `pulumi:"command"`
   308  	// The list of connections used for this job.
   309  	Connections []string `pulumi:"connections"`
   310  	// The map of default arguments for this job. You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes. For information about how to specify and consume your own Job arguments, see the [Calling AWS Glue APIs in Python](http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide. For information about the key-value pairs that AWS Glue consumes to set up your job, see the [Special Parameters Used by AWS Glue](http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-glue-arguments.html) topic in the developer guide.
   311  	DefaultArguments map[string]string `pulumi:"defaultArguments"`
   312  	// Description of the job.
   313  	Description *string `pulumi:"description"`
   314  	// 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. Valid value: `FLEX`, `STANDARD`.
   315  	ExecutionClass *string `pulumi:"executionClass"`
   316  	// Execution property of the job. Defined below.
   317  	ExecutionProperty *JobExecutionProperty `pulumi:"executionProperty"`
   318  	// The version of glue to use, for example "1.0". Ray jobs should set this to 4.0 or greater. For information about available versions, see the [AWS Glue Release Notes](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html).
   319  	GlueVersion *string `pulumi:"glueVersion"`
   320  	// The maximum number of AWS Glue data processing units (DPUs) that can be allocated when this job runs. `Required` when `pythonshell` is set, accept either `0.0625` or `1.0`. Use `numberOfWorkers` and `workerType` arguments instead with `glueVersion` `2.0` and above.
   321  	MaxCapacity *float64 `pulumi:"maxCapacity"`
   322  	// The maximum number of times to retry this job if it fails.
   323  	MaxRetries *int `pulumi:"maxRetries"`
   324  	// The name you assign to this job. It must be unique in your account.
   325  	Name *string `pulumi:"name"`
   326  	// Non-overridable arguments for this job, specified as name-value pairs.
   327  	NonOverridableArguments map[string]string `pulumi:"nonOverridableArguments"`
   328  	// Notification property of the job. Defined below.
   329  	NotificationProperty *JobNotificationProperty `pulumi:"notificationProperty"`
   330  	// The number of workers of a defined workerType that are allocated when a job runs.
   331  	NumberOfWorkers *int `pulumi:"numberOfWorkers"`
   332  	// The ARN of the IAM role associated with this job.
   333  	RoleArn *string `pulumi:"roleArn"`
   334  	// The name of the Security Configuration to be associated with the job.
   335  	SecurityConfiguration *string `pulumi:"securityConfiguration"`
   336  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   337  	Tags map[string]string `pulumi:"tags"`
   338  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   339  	//
   340  	// Deprecated: Please use `tags` instead.
   341  	TagsAll map[string]string `pulumi:"tagsAll"`
   342  	// The job timeout in minutes. The default is 2880 minutes (48 hours) for `glueetl` and `pythonshell` jobs, and null (unlimited) for `gluestreaming` jobs.
   343  	Timeout *int `pulumi:"timeout"`
   344  	// The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.
   345  	// * For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
   346  	// * For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for memory-intensive jobs.
   347  	// * For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. Recommended for memory-intensive jobs.
   348  	// * 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. Recommended for memory-intensive jobs. Only available for Glue version 3.0. Available 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).
   349  	// * 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. Recommended for memory-intensive jobs. Only available for Glue version 3.0. Available 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).
   350  	// * For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for low volume streaming jobs. Only available for Glue version 3.0.
   351  	// * For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPU, 64 GB of m emory, 128 GB disk), and provides up to 8 Ray workers based on the autoscaler.
   352  	WorkerType *string `pulumi:"workerType"`
   353  }
   354  
   355  type JobState struct {
   356  	// Amazon Resource Name (ARN) of Glue Job
   357  	Arn pulumi.StringPtrInput
   358  	// The command of the job. Defined below.
   359  	Command JobCommandPtrInput
   360  	// The list of connections used for this job.
   361  	Connections pulumi.StringArrayInput
   362  	// The map of default arguments for this job. You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes. For information about how to specify and consume your own Job arguments, see the [Calling AWS Glue APIs in Python](http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide. For information about the key-value pairs that AWS Glue consumes to set up your job, see the [Special Parameters Used by AWS Glue](http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-glue-arguments.html) topic in the developer guide.
   363  	DefaultArguments pulumi.StringMapInput
   364  	// Description of the job.
   365  	Description pulumi.StringPtrInput
   366  	// 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. Valid value: `FLEX`, `STANDARD`.
   367  	ExecutionClass pulumi.StringPtrInput
   368  	// Execution property of the job. Defined below.
   369  	ExecutionProperty JobExecutionPropertyPtrInput
   370  	// The version of glue to use, for example "1.0". Ray jobs should set this to 4.0 or greater. For information about available versions, see the [AWS Glue Release Notes](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html).
   371  	GlueVersion pulumi.StringPtrInput
   372  	// The maximum number of AWS Glue data processing units (DPUs) that can be allocated when this job runs. `Required` when `pythonshell` is set, accept either `0.0625` or `1.0`. Use `numberOfWorkers` and `workerType` arguments instead with `glueVersion` `2.0` and above.
   373  	MaxCapacity pulumi.Float64PtrInput
   374  	// The maximum number of times to retry this job if it fails.
   375  	MaxRetries pulumi.IntPtrInput
   376  	// The name you assign to this job. It must be unique in your account.
   377  	Name pulumi.StringPtrInput
   378  	// Non-overridable arguments for this job, specified as name-value pairs.
   379  	NonOverridableArguments pulumi.StringMapInput
   380  	// Notification property of the job. Defined below.
   381  	NotificationProperty JobNotificationPropertyPtrInput
   382  	// The number of workers of a defined workerType that are allocated when a job runs.
   383  	NumberOfWorkers pulumi.IntPtrInput
   384  	// The ARN of the IAM role associated with this job.
   385  	RoleArn pulumi.StringPtrInput
   386  	// The name of the Security Configuration to be associated with the job.
   387  	SecurityConfiguration pulumi.StringPtrInput
   388  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   389  	Tags pulumi.StringMapInput
   390  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   391  	//
   392  	// Deprecated: Please use `tags` instead.
   393  	TagsAll pulumi.StringMapInput
   394  	// The job timeout in minutes. The default is 2880 minutes (48 hours) for `glueetl` and `pythonshell` jobs, and null (unlimited) for `gluestreaming` jobs.
   395  	Timeout pulumi.IntPtrInput
   396  	// The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.
   397  	// * For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
   398  	// * For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for memory-intensive jobs.
   399  	// * For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. Recommended for memory-intensive jobs.
   400  	// * 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. Recommended for memory-intensive jobs. Only available for Glue version 3.0. Available 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).
   401  	// * 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. Recommended for memory-intensive jobs. Only available for Glue version 3.0. Available 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).
   402  	// * For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for low volume streaming jobs. Only available for Glue version 3.0.
   403  	// * For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPU, 64 GB of m emory, 128 GB disk), and provides up to 8 Ray workers based on the autoscaler.
   404  	WorkerType pulumi.StringPtrInput
   405  }
   406  
   407  func (JobState) ElementType() reflect.Type {
   408  	return reflect.TypeOf((*jobState)(nil)).Elem()
   409  }
   410  
   411  type jobArgs struct {
   412  	// The command of the job. Defined below.
   413  	Command JobCommand `pulumi:"command"`
   414  	// The list of connections used for this job.
   415  	Connections []string `pulumi:"connections"`
   416  	// The map of default arguments for this job. You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes. For information about how to specify and consume your own Job arguments, see the [Calling AWS Glue APIs in Python](http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide. For information about the key-value pairs that AWS Glue consumes to set up your job, see the [Special Parameters Used by AWS Glue](http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-glue-arguments.html) topic in the developer guide.
   417  	DefaultArguments map[string]string `pulumi:"defaultArguments"`
   418  	// Description of the job.
   419  	Description *string `pulumi:"description"`
   420  	// 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. Valid value: `FLEX`, `STANDARD`.
   421  	ExecutionClass *string `pulumi:"executionClass"`
   422  	// Execution property of the job. Defined below.
   423  	ExecutionProperty *JobExecutionProperty `pulumi:"executionProperty"`
   424  	// The version of glue to use, for example "1.0". Ray jobs should set this to 4.0 or greater. For information about available versions, see the [AWS Glue Release Notes](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html).
   425  	GlueVersion *string `pulumi:"glueVersion"`
   426  	// The maximum number of AWS Glue data processing units (DPUs) that can be allocated when this job runs. `Required` when `pythonshell` is set, accept either `0.0625` or `1.0`. Use `numberOfWorkers` and `workerType` arguments instead with `glueVersion` `2.0` and above.
   427  	MaxCapacity *float64 `pulumi:"maxCapacity"`
   428  	// The maximum number of times to retry this job if it fails.
   429  	MaxRetries *int `pulumi:"maxRetries"`
   430  	// The name you assign to this job. It must be unique in your account.
   431  	Name *string `pulumi:"name"`
   432  	// Non-overridable arguments for this job, specified as name-value pairs.
   433  	NonOverridableArguments map[string]string `pulumi:"nonOverridableArguments"`
   434  	// Notification property of the job. Defined below.
   435  	NotificationProperty *JobNotificationProperty `pulumi:"notificationProperty"`
   436  	// The number of workers of a defined workerType that are allocated when a job runs.
   437  	NumberOfWorkers *int `pulumi:"numberOfWorkers"`
   438  	// The ARN of the IAM role associated with this job.
   439  	RoleArn string `pulumi:"roleArn"`
   440  	// The name of the Security Configuration to be associated with the job.
   441  	SecurityConfiguration *string `pulumi:"securityConfiguration"`
   442  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   443  	Tags map[string]string `pulumi:"tags"`
   444  	// The job timeout in minutes. The default is 2880 minutes (48 hours) for `glueetl` and `pythonshell` jobs, and null (unlimited) for `gluestreaming` jobs.
   445  	Timeout *int `pulumi:"timeout"`
   446  	// The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.
   447  	// * For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
   448  	// * For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for memory-intensive jobs.
   449  	// * For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. Recommended for memory-intensive jobs.
   450  	// * 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. Recommended for memory-intensive jobs. Only available for Glue version 3.0. Available 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).
   451  	// * 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. Recommended for memory-intensive jobs. Only available for Glue version 3.0. Available 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).
   452  	// * For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for low volume streaming jobs. Only available for Glue version 3.0.
   453  	// * For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPU, 64 GB of m emory, 128 GB disk), and provides up to 8 Ray workers based on the autoscaler.
   454  	WorkerType *string `pulumi:"workerType"`
   455  }
   456  
   457  // The set of arguments for constructing a Job resource.
   458  type JobArgs struct {
   459  	// The command of the job. Defined below.
   460  	Command JobCommandInput
   461  	// The list of connections used for this job.
   462  	Connections pulumi.StringArrayInput
   463  	// The map of default arguments for this job. You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes. For information about how to specify and consume your own Job arguments, see the [Calling AWS Glue APIs in Python](http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide. For information about the key-value pairs that AWS Glue consumes to set up your job, see the [Special Parameters Used by AWS Glue](http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-glue-arguments.html) topic in the developer guide.
   464  	DefaultArguments pulumi.StringMapInput
   465  	// Description of the job.
   466  	Description pulumi.StringPtrInput
   467  	// 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. Valid value: `FLEX`, `STANDARD`.
   468  	ExecutionClass pulumi.StringPtrInput
   469  	// Execution property of the job. Defined below.
   470  	ExecutionProperty JobExecutionPropertyPtrInput
   471  	// The version of glue to use, for example "1.0". Ray jobs should set this to 4.0 or greater. For information about available versions, see the [AWS Glue Release Notes](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html).
   472  	GlueVersion pulumi.StringPtrInput
   473  	// The maximum number of AWS Glue data processing units (DPUs) that can be allocated when this job runs. `Required` when `pythonshell` is set, accept either `0.0625` or `1.0`. Use `numberOfWorkers` and `workerType` arguments instead with `glueVersion` `2.0` and above.
   474  	MaxCapacity pulumi.Float64PtrInput
   475  	// The maximum number of times to retry this job if it fails.
   476  	MaxRetries pulumi.IntPtrInput
   477  	// The name you assign to this job. It must be unique in your account.
   478  	Name pulumi.StringPtrInput
   479  	// Non-overridable arguments for this job, specified as name-value pairs.
   480  	NonOverridableArguments pulumi.StringMapInput
   481  	// Notification property of the job. Defined below.
   482  	NotificationProperty JobNotificationPropertyPtrInput
   483  	// The number of workers of a defined workerType that are allocated when a job runs.
   484  	NumberOfWorkers pulumi.IntPtrInput
   485  	// The ARN of the IAM role associated with this job.
   486  	RoleArn pulumi.StringInput
   487  	// The name of the Security Configuration to be associated with the job.
   488  	SecurityConfiguration pulumi.StringPtrInput
   489  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   490  	Tags pulumi.StringMapInput
   491  	// The job timeout in minutes. The default is 2880 minutes (48 hours) for `glueetl` and `pythonshell` jobs, and null (unlimited) for `gluestreaming` jobs.
   492  	Timeout pulumi.IntPtrInput
   493  	// The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.
   494  	// * For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
   495  	// * For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for memory-intensive jobs.
   496  	// * For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. Recommended for memory-intensive jobs.
   497  	// * 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. Recommended for memory-intensive jobs. Only available for Glue version 3.0. Available 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).
   498  	// * 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. Recommended for memory-intensive jobs. Only available for Glue version 3.0. Available 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).
   499  	// * For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for low volume streaming jobs. Only available for Glue version 3.0.
   500  	// * For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPU, 64 GB of m emory, 128 GB disk), and provides up to 8 Ray workers based on the autoscaler.
   501  	WorkerType pulumi.StringPtrInput
   502  }
   503  
   504  func (JobArgs) ElementType() reflect.Type {
   505  	return reflect.TypeOf((*jobArgs)(nil)).Elem()
   506  }
   507  
   508  type JobInput interface {
   509  	pulumi.Input
   510  
   511  	ToJobOutput() JobOutput
   512  	ToJobOutputWithContext(ctx context.Context) JobOutput
   513  }
   514  
   515  func (*Job) ElementType() reflect.Type {
   516  	return reflect.TypeOf((**Job)(nil)).Elem()
   517  }
   518  
   519  func (i *Job) ToJobOutput() JobOutput {
   520  	return i.ToJobOutputWithContext(context.Background())
   521  }
   522  
   523  func (i *Job) ToJobOutputWithContext(ctx context.Context) JobOutput {
   524  	return pulumi.ToOutputWithContext(ctx, i).(JobOutput)
   525  }
   526  
   527  // JobArrayInput is an input type that accepts JobArray and JobArrayOutput values.
   528  // You can construct a concrete instance of `JobArrayInput` via:
   529  //
   530  //	JobArray{ JobArgs{...} }
   531  type JobArrayInput interface {
   532  	pulumi.Input
   533  
   534  	ToJobArrayOutput() JobArrayOutput
   535  	ToJobArrayOutputWithContext(context.Context) JobArrayOutput
   536  }
   537  
   538  type JobArray []JobInput
   539  
   540  func (JobArray) ElementType() reflect.Type {
   541  	return reflect.TypeOf((*[]*Job)(nil)).Elem()
   542  }
   543  
   544  func (i JobArray) ToJobArrayOutput() JobArrayOutput {
   545  	return i.ToJobArrayOutputWithContext(context.Background())
   546  }
   547  
   548  func (i JobArray) ToJobArrayOutputWithContext(ctx context.Context) JobArrayOutput {
   549  	return pulumi.ToOutputWithContext(ctx, i).(JobArrayOutput)
   550  }
   551  
   552  // JobMapInput is an input type that accepts JobMap and JobMapOutput values.
   553  // You can construct a concrete instance of `JobMapInput` via:
   554  //
   555  //	JobMap{ "key": JobArgs{...} }
   556  type JobMapInput interface {
   557  	pulumi.Input
   558  
   559  	ToJobMapOutput() JobMapOutput
   560  	ToJobMapOutputWithContext(context.Context) JobMapOutput
   561  }
   562  
   563  type JobMap map[string]JobInput
   564  
   565  func (JobMap) ElementType() reflect.Type {
   566  	return reflect.TypeOf((*map[string]*Job)(nil)).Elem()
   567  }
   568  
   569  func (i JobMap) ToJobMapOutput() JobMapOutput {
   570  	return i.ToJobMapOutputWithContext(context.Background())
   571  }
   572  
   573  func (i JobMap) ToJobMapOutputWithContext(ctx context.Context) JobMapOutput {
   574  	return pulumi.ToOutputWithContext(ctx, i).(JobMapOutput)
   575  }
   576  
   577  type JobOutput struct{ *pulumi.OutputState }
   578  
   579  func (JobOutput) ElementType() reflect.Type {
   580  	return reflect.TypeOf((**Job)(nil)).Elem()
   581  }
   582  
   583  func (o JobOutput) ToJobOutput() JobOutput {
   584  	return o
   585  }
   586  
   587  func (o JobOutput) ToJobOutputWithContext(ctx context.Context) JobOutput {
   588  	return o
   589  }
   590  
   591  // Amazon Resource Name (ARN) of Glue Job
   592  func (o JobOutput) Arn() pulumi.StringOutput {
   593  	return o.ApplyT(func(v *Job) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   594  }
   595  
   596  // The command of the job. Defined below.
   597  func (o JobOutput) Command() JobCommandOutput {
   598  	return o.ApplyT(func(v *Job) JobCommandOutput { return v.Command }).(JobCommandOutput)
   599  }
   600  
   601  // The list of connections used for this job.
   602  func (o JobOutput) Connections() pulumi.StringArrayOutput {
   603  	return o.ApplyT(func(v *Job) pulumi.StringArrayOutput { return v.Connections }).(pulumi.StringArrayOutput)
   604  }
   605  
   606  // The map of default arguments for this job. You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes. For information about how to specify and consume your own Job arguments, see the [Calling AWS Glue APIs in Python](http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide. For information about the key-value pairs that AWS Glue consumes to set up your job, see the [Special Parameters Used by AWS Glue](http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-glue-arguments.html) topic in the developer guide.
   607  func (o JobOutput) DefaultArguments() pulumi.StringMapOutput {
   608  	return o.ApplyT(func(v *Job) pulumi.StringMapOutput { return v.DefaultArguments }).(pulumi.StringMapOutput)
   609  }
   610  
   611  // Description of the job.
   612  func (o JobOutput) Description() pulumi.StringPtrOutput {
   613  	return o.ApplyT(func(v *Job) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   614  }
   615  
   616  // 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. Valid value: `FLEX`, `STANDARD`.
   617  func (o JobOutput) ExecutionClass() pulumi.StringPtrOutput {
   618  	return o.ApplyT(func(v *Job) pulumi.StringPtrOutput { return v.ExecutionClass }).(pulumi.StringPtrOutput)
   619  }
   620  
   621  // Execution property of the job. Defined below.
   622  func (o JobOutput) ExecutionProperty() JobExecutionPropertyOutput {
   623  	return o.ApplyT(func(v *Job) JobExecutionPropertyOutput { return v.ExecutionProperty }).(JobExecutionPropertyOutput)
   624  }
   625  
   626  // The version of glue to use, for example "1.0". Ray jobs should set this to 4.0 or greater. For information about available versions, see the [AWS Glue Release Notes](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html).
   627  func (o JobOutput) GlueVersion() pulumi.StringOutput {
   628  	return o.ApplyT(func(v *Job) pulumi.StringOutput { return v.GlueVersion }).(pulumi.StringOutput)
   629  }
   630  
   631  // The maximum number of AWS Glue data processing units (DPUs) that can be allocated when this job runs. `Required` when `pythonshell` is set, accept either `0.0625` or `1.0`. Use `numberOfWorkers` and `workerType` arguments instead with `glueVersion` `2.0` and above.
   632  func (o JobOutput) MaxCapacity() pulumi.Float64Output {
   633  	return o.ApplyT(func(v *Job) pulumi.Float64Output { return v.MaxCapacity }).(pulumi.Float64Output)
   634  }
   635  
   636  // The maximum number of times to retry this job if it fails.
   637  func (o JobOutput) MaxRetries() pulumi.IntPtrOutput {
   638  	return o.ApplyT(func(v *Job) pulumi.IntPtrOutput { return v.MaxRetries }).(pulumi.IntPtrOutput)
   639  }
   640  
   641  // The name you assign to this job. It must be unique in your account.
   642  func (o JobOutput) Name() pulumi.StringOutput {
   643  	return o.ApplyT(func(v *Job) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   644  }
   645  
   646  // Non-overridable arguments for this job, specified as name-value pairs.
   647  func (o JobOutput) NonOverridableArguments() pulumi.StringMapOutput {
   648  	return o.ApplyT(func(v *Job) pulumi.StringMapOutput { return v.NonOverridableArguments }).(pulumi.StringMapOutput)
   649  }
   650  
   651  // Notification property of the job. Defined below.
   652  func (o JobOutput) NotificationProperty() JobNotificationPropertyOutput {
   653  	return o.ApplyT(func(v *Job) JobNotificationPropertyOutput { return v.NotificationProperty }).(JobNotificationPropertyOutput)
   654  }
   655  
   656  // The number of workers of a defined workerType that are allocated when a job runs.
   657  func (o JobOutput) NumberOfWorkers() pulumi.IntOutput {
   658  	return o.ApplyT(func(v *Job) pulumi.IntOutput { return v.NumberOfWorkers }).(pulumi.IntOutput)
   659  }
   660  
   661  // The ARN of the IAM role associated with this job.
   662  func (o JobOutput) RoleArn() pulumi.StringOutput {
   663  	return o.ApplyT(func(v *Job) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput)
   664  }
   665  
   666  // The name of the Security Configuration to be associated with the job.
   667  func (o JobOutput) SecurityConfiguration() pulumi.StringPtrOutput {
   668  	return o.ApplyT(func(v *Job) pulumi.StringPtrOutput { return v.SecurityConfiguration }).(pulumi.StringPtrOutput)
   669  }
   670  
   671  // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   672  func (o JobOutput) Tags() pulumi.StringMapOutput {
   673  	return o.ApplyT(func(v *Job) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   674  }
   675  
   676  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   677  //
   678  // Deprecated: Please use `tags` instead.
   679  func (o JobOutput) TagsAll() pulumi.StringMapOutput {
   680  	return o.ApplyT(func(v *Job) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   681  }
   682  
   683  // The job timeout in minutes. The default is 2880 minutes (48 hours) for `glueetl` and `pythonshell` jobs, and null (unlimited) for `gluestreaming` jobs.
   684  func (o JobOutput) Timeout() pulumi.IntOutput {
   685  	return o.ApplyT(func(v *Job) pulumi.IntOutput { return v.Timeout }).(pulumi.IntOutput)
   686  }
   687  
   688  // The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.
   689  // * For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
   690  // * For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for memory-intensive jobs.
   691  // * For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. Recommended for memory-intensive jobs.
   692  // * 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. Recommended for memory-intensive jobs. Only available for Glue version 3.0. Available 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).
   693  // * 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. Recommended for memory-intensive jobs. Only available for Glue version 3.0. Available 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).
   694  // * For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4GB of memory, 64 GB disk), and provides 1 executor per worker. Recommended for low volume streaming jobs. Only available for Glue version 3.0.
   695  // * For the Z.2X worker type, each worker maps to 2 M-DPU (8vCPU, 64 GB of m emory, 128 GB disk), and provides up to 8 Ray workers based on the autoscaler.
   696  func (o JobOutput) WorkerType() pulumi.StringOutput {
   697  	return o.ApplyT(func(v *Job) pulumi.StringOutput { return v.WorkerType }).(pulumi.StringOutput)
   698  }
   699  
   700  type JobArrayOutput struct{ *pulumi.OutputState }
   701  
   702  func (JobArrayOutput) ElementType() reflect.Type {
   703  	return reflect.TypeOf((*[]*Job)(nil)).Elem()
   704  }
   705  
   706  func (o JobArrayOutput) ToJobArrayOutput() JobArrayOutput {
   707  	return o
   708  }
   709  
   710  func (o JobArrayOutput) ToJobArrayOutputWithContext(ctx context.Context) JobArrayOutput {
   711  	return o
   712  }
   713  
   714  func (o JobArrayOutput) Index(i pulumi.IntInput) JobOutput {
   715  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Job {
   716  		return vs[0].([]*Job)[vs[1].(int)]
   717  	}).(JobOutput)
   718  }
   719  
   720  type JobMapOutput struct{ *pulumi.OutputState }
   721  
   722  func (JobMapOutput) ElementType() reflect.Type {
   723  	return reflect.TypeOf((*map[string]*Job)(nil)).Elem()
   724  }
   725  
   726  func (o JobMapOutput) ToJobMapOutput() JobMapOutput {
   727  	return o
   728  }
   729  
   730  func (o JobMapOutput) ToJobMapOutputWithContext(ctx context.Context) JobMapOutput {
   731  	return o
   732  }
   733  
   734  func (o JobMapOutput) MapIndex(k pulumi.StringInput) JobOutput {
   735  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Job {
   736  		return vs[0].(map[string]*Job)[vs[1].(string)]
   737  	}).(JobOutput)
   738  }
   739  
   740  func init() {
   741  	pulumi.RegisterInputType(reflect.TypeOf((*JobInput)(nil)).Elem(), &Job{})
   742  	pulumi.RegisterInputType(reflect.TypeOf((*JobArrayInput)(nil)).Elem(), JobArray{})
   743  	pulumi.RegisterInputType(reflect.TypeOf((*JobMapInput)(nil)).Elem(), JobMap{})
   744  	pulumi.RegisterOutputType(JobOutput{})
   745  	pulumi.RegisterOutputType(JobArrayOutput{})
   746  	pulumi.RegisterOutputType(JobMapOutput{})
   747  }