aws_sdk_glue/operation/create_job/_create_job_input.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
5pub struct CreateJobInput {
6 /// <p>The name you assign to this job definition. It must be unique in your account.</p>
7 pub name: ::std::option::Option<::std::string::String>,
8 /// <p>A mode that describes how a job was created. Valid values are:</p>
9 /// <ul>
10 /// <li>
11 /// <p><code>SCRIPT</code> - The job was created using the Glue Studio script editor.</p></li>
12 /// <li>
13 /// <p><code>VISUAL</code> - The job was created using the Glue Studio visual editor.</p></li>
14 /// <li>
15 /// <p><code>NOTEBOOK</code> - The job was created using an interactive sessions notebook.</p></li>
16 /// </ul>
17 /// <p>When the <code>JobMode</code> field is missing or null, <code>SCRIPT</code> is assigned as the default value.</p>
18 pub job_mode: ::std::option::Option<crate::types::JobMode>,
19 /// <p>Specifies whether job run queuing is enabled for the job runs for this job.</p>
20 /// <p>A value of true means job run queuing is enabled for the job runs. If false or not populated, the job runs will not be considered for queueing.</p>
21 /// <p>If this field does not match the value set in the job run, then the value from the job run field will be used.</p>
22 pub job_run_queuing_enabled: ::std::option::Option<bool>,
23 /// <p>Description of the job being defined.</p>
24 pub description: ::std::option::Option<::std::string::String>,
25 /// <p>This field is reserved for future use.</p>
26 pub log_uri: ::std::option::Option<::std::string::String>,
27 /// <p>The name or Amazon Resource Name (ARN) of the IAM role associated with this job.</p>
28 pub role: ::std::option::Option<::std::string::String>,
29 /// <p>An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.</p>
30 pub execution_property: ::std::option::Option<crate::types::ExecutionProperty>,
31 /// <p>The <code>JobCommand</code> that runs this job.</p>
32 pub command: ::std::option::Option<crate::types::JobCommand>,
33 /// <p>The default arguments for every run of this job, specified as name-value pairs.</p>
34 /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
35 /// <p>Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job.</p>
36 /// <p>For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide.</p>
37 /// <p>For information about the arguments you can provide to this field when configuring Spark jobs, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.</p>
38 /// <p>For information about the arguments you can provide to this field when configuring Ray jobs, see <a href="https://docs.aws.amazon.com/glue/latest/dg/author-job-ray-job-parameters.html">Using job parameters in Ray jobs</a> in the developer guide.</p>
39 pub default_arguments: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
40 /// <p>Arguments for this job that are not overridden when providing job arguments in a job run, specified as name-value pairs.</p>
41 pub non_overridable_arguments: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
42 /// <p>The connections used for this job.</p>
43 pub connections: ::std::option::Option<crate::types::ConnectionsList>,
44 /// <p>The maximum number of times to retry this job if it fails.</p>
45 pub max_retries: ::std::option::Option<i32>,
46 /// <p>This parameter is deprecated. Use <code>MaxCapacity</code> instead.</p>
47 /// <p>The number of Glue data processing units (DPUs) to allocate to this Job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
48 #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
49 pub allocated_capacity: ::std::option::Option<i32>,
50 /// <p>The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status.</p>
51 /// <p>Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.</p>
52 /// <p>When the value is left blank, the timeout is defaulted to 2,880 minutes for Glue version 4.0 and earlier, or 480 minutes for Glue version 5.0 and later.</p>
53 /// <p>Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.</p>
54 /// <p>For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.</p>
55 pub timeout: ::std::option::Option<i32>,
56 /// <p>For Glue version 1.0 or earlier jobs, using the standard worker type, the number of 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. For more information, see the <a href="https://aws.amazon.com/glue/pricing/"> Glue pricing page</a>.</p>
57 /// <p>For Glue version 2.0+ jobs, you cannot specify a <code>Maximum capacity</code>. Instead, you should specify a <code>Worker type</code> and the <code>Number of workers</code>.</p>
58 /// <p>Do not set <code>MaxCapacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
59 /// <p>The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:</p>
60 /// <ul>
61 /// <li>
62 /// <p>When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.</p></li>
63 /// <li>
64 /// <p>When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl") or Apache Spark streaming ETL job (<code>JobCommand.Name</code>="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.</p></li>
65 /// </ul>
66 pub max_capacity: ::std::option::Option<f64>,
67 /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job.</p>
68 pub security_configuration: ::std::option::Option<::std::string::String>,
69 /// <p>The tags to use with this job. You may use tags to limit access to the job. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
70 pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
71 /// <p>Specifies configuration properties of a job notification.</p>
72 pub notification_property: ::std::option::Option<crate::types::NotificationProperty>,
73 /// <p>In Spark jobs, <code>GlueVersion</code> determines the versions of Apache Spark and Python that Glue available in a job. The Python version indicates the version supported for jobs of type Spark.</p>
74 /// <p>Ray jobs should set <code>GlueVersion</code> to <code>4.0</code> or greater. However, the versions of Ray, Python and additional libraries available in your Ray job are determined by the <code>Runtime</code> parameter of the Job command.</p>
75 /// <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p>
76 /// <p>Jobs that are created without specifying a Glue version default to Glue 5.1.</p>
77 pub glue_version: ::std::option::Option<::std::string::String>,
78 /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
79 pub number_of_workers: ::std::option::Option<i32>,
80 /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of G.025X, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X, or R.8X for Spark jobs. Accepts the value Z.2X for Ray jobs.</p>
81 /// <ul>
82 /// <li>
83 /// <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 or later streaming jobs.</p></li>
84 /// <li>
85 /// <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, 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.</p></li>
86 /// <li>
87 /// <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, 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.</p></li>
88 /// <li>
89 /// <p>For the <code>G.4X</code> worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, 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 Glue version 3.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
90 /// <li>
91 /// <p>For the <code>G.8X</code> worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, 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 Glue version 3.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
92 /// <li>
93 /// <p>For the <code>G.12X</code> worker type, each worker maps to 12 DPU (48 vCPUs, 192 GB of memory) with 768GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
94 /// <li>
95 /// <p>For the <code>G.16X</code> worker type, each worker maps to 16 DPU (64 vCPUs, 256 GB of memory) with 1024GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
96 /// <li>
97 /// <p>For the <code>R.1X</code> worker type, each worker maps to 1 M-DPU (4 vCPUs, 32 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
98 /// <li>
99 /// <p>For the <code>R.2X</code> worker type, each worker maps to 2 M-DPU (8 vCPUs, 64 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
100 /// <li>
101 /// <p>For the <code>R.4X</code> worker type, each worker maps to 4 M-DPU (16 vCPUs, 128 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
102 /// <li>
103 /// <p>For the <code>R.8X</code> worker type, each worker maps to 8 M-DPU (32 vCPUs, 256 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
104 /// <li>
105 /// <p>For the <code>Z.2X</code> worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.</p></li>
106 /// </ul>
107 pub worker_type: ::std::option::Option<crate::types::WorkerType>,
108 /// <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
109 pub code_gen_configuration_nodes:
110 ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::CodeGenConfigurationNode>>,
111 /// <p>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.</p>
112 /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.</p>
113 /// <p>Only jobs with Glue version 3.0 and above and command type <code>glueetl</code> will be allowed to set <code>ExecutionClass</code> to <code>FLEX</code>. The flexible execution class is available for Spark jobs.</p>
114 pub execution_class: ::std::option::Option<crate::types::ExecutionClass>,
115 /// <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
116 pub source_control_details: ::std::option::Option<crate::types::SourceControlDetails>,
117 /// <p>This field specifies a day of the week and hour for a maintenance window for streaming jobs. Glue periodically performs maintenance activities. During these maintenance windows, Glue will need to restart your streaming jobs.</p>
118 /// <p>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.</p>
119 pub maintenance_window: ::std::option::Option<::std::string::String>,
120}
121impl CreateJobInput {
122 /// <p>The name you assign to this job definition. It must be unique in your account.</p>
123 pub fn name(&self) -> ::std::option::Option<&str> {
124 self.name.as_deref()
125 }
126 /// <p>A mode that describes how a job was created. Valid values are:</p>
127 /// <ul>
128 /// <li>
129 /// <p><code>SCRIPT</code> - The job was created using the Glue Studio script editor.</p></li>
130 /// <li>
131 /// <p><code>VISUAL</code> - The job was created using the Glue Studio visual editor.</p></li>
132 /// <li>
133 /// <p><code>NOTEBOOK</code> - The job was created using an interactive sessions notebook.</p></li>
134 /// </ul>
135 /// <p>When the <code>JobMode</code> field is missing or null, <code>SCRIPT</code> is assigned as the default value.</p>
136 pub fn job_mode(&self) -> ::std::option::Option<&crate::types::JobMode> {
137 self.job_mode.as_ref()
138 }
139 /// <p>Specifies whether job run queuing is enabled for the job runs for this job.</p>
140 /// <p>A value of true means job run queuing is enabled for the job runs. If false or not populated, the job runs will not be considered for queueing.</p>
141 /// <p>If this field does not match the value set in the job run, then the value from the job run field will be used.</p>
142 pub fn job_run_queuing_enabled(&self) -> ::std::option::Option<bool> {
143 self.job_run_queuing_enabled
144 }
145 /// <p>Description of the job being defined.</p>
146 pub fn description(&self) -> ::std::option::Option<&str> {
147 self.description.as_deref()
148 }
149 /// <p>This field is reserved for future use.</p>
150 pub fn log_uri(&self) -> ::std::option::Option<&str> {
151 self.log_uri.as_deref()
152 }
153 /// <p>The name or Amazon Resource Name (ARN) of the IAM role associated with this job.</p>
154 pub fn role(&self) -> ::std::option::Option<&str> {
155 self.role.as_deref()
156 }
157 /// <p>An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.</p>
158 pub fn execution_property(&self) -> ::std::option::Option<&crate::types::ExecutionProperty> {
159 self.execution_property.as_ref()
160 }
161 /// <p>The <code>JobCommand</code> that runs this job.</p>
162 pub fn command(&self) -> ::std::option::Option<&crate::types::JobCommand> {
163 self.command.as_ref()
164 }
165 /// <p>The default arguments for every run of this job, specified as name-value pairs.</p>
166 /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
167 /// <p>Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job.</p>
168 /// <p>For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide.</p>
169 /// <p>For information about the arguments you can provide to this field when configuring Spark jobs, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.</p>
170 /// <p>For information about the arguments you can provide to this field when configuring Ray jobs, see <a href="https://docs.aws.amazon.com/glue/latest/dg/author-job-ray-job-parameters.html">Using job parameters in Ray jobs</a> in the developer guide.</p>
171 pub fn default_arguments(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
172 self.default_arguments.as_ref()
173 }
174 /// <p>Arguments for this job that are not overridden when providing job arguments in a job run, specified as name-value pairs.</p>
175 pub fn non_overridable_arguments(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
176 self.non_overridable_arguments.as_ref()
177 }
178 /// <p>The connections used for this job.</p>
179 pub fn connections(&self) -> ::std::option::Option<&crate::types::ConnectionsList> {
180 self.connections.as_ref()
181 }
182 /// <p>The maximum number of times to retry this job if it fails.</p>
183 pub fn max_retries(&self) -> ::std::option::Option<i32> {
184 self.max_retries
185 }
186 /// <p>This parameter is deprecated. Use <code>MaxCapacity</code> instead.</p>
187 /// <p>The number of Glue data processing units (DPUs) to allocate to this Job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
188 #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
189 pub fn allocated_capacity(&self) -> ::std::option::Option<i32> {
190 self.allocated_capacity
191 }
192 /// <p>The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status.</p>
193 /// <p>Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.</p>
194 /// <p>When the value is left blank, the timeout is defaulted to 2,880 minutes for Glue version 4.0 and earlier, or 480 minutes for Glue version 5.0 and later.</p>
195 /// <p>Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.</p>
196 /// <p>For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.</p>
197 pub fn timeout(&self) -> ::std::option::Option<i32> {
198 self.timeout
199 }
200 /// <p>For Glue version 1.0 or earlier jobs, using the standard worker type, the number of 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. For more information, see the <a href="https://aws.amazon.com/glue/pricing/"> Glue pricing page</a>.</p>
201 /// <p>For Glue version 2.0+ jobs, you cannot specify a <code>Maximum capacity</code>. Instead, you should specify a <code>Worker type</code> and the <code>Number of workers</code>.</p>
202 /// <p>Do not set <code>MaxCapacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
203 /// <p>The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:</p>
204 /// <ul>
205 /// <li>
206 /// <p>When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.</p></li>
207 /// <li>
208 /// <p>When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl") or Apache Spark streaming ETL job (<code>JobCommand.Name</code>="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.</p></li>
209 /// </ul>
210 pub fn max_capacity(&self) -> ::std::option::Option<f64> {
211 self.max_capacity
212 }
213 /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job.</p>
214 pub fn security_configuration(&self) -> ::std::option::Option<&str> {
215 self.security_configuration.as_deref()
216 }
217 /// <p>The tags to use with this job. You may use tags to limit access to the job. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
218 pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
219 self.tags.as_ref()
220 }
221 /// <p>Specifies configuration properties of a job notification.</p>
222 pub fn notification_property(&self) -> ::std::option::Option<&crate::types::NotificationProperty> {
223 self.notification_property.as_ref()
224 }
225 /// <p>In Spark jobs, <code>GlueVersion</code> determines the versions of Apache Spark and Python that Glue available in a job. The Python version indicates the version supported for jobs of type Spark.</p>
226 /// <p>Ray jobs should set <code>GlueVersion</code> to <code>4.0</code> or greater. However, the versions of Ray, Python and additional libraries available in your Ray job are determined by the <code>Runtime</code> parameter of the Job command.</p>
227 /// <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p>
228 /// <p>Jobs that are created without specifying a Glue version default to Glue 5.1.</p>
229 pub fn glue_version(&self) -> ::std::option::Option<&str> {
230 self.glue_version.as_deref()
231 }
232 /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
233 pub fn number_of_workers(&self) -> ::std::option::Option<i32> {
234 self.number_of_workers
235 }
236 /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of G.025X, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X, or R.8X for Spark jobs. Accepts the value Z.2X for Ray jobs.</p>
237 /// <ul>
238 /// <li>
239 /// <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 or later streaming jobs.</p></li>
240 /// <li>
241 /// <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, 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.</p></li>
242 /// <li>
243 /// <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, 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.</p></li>
244 /// <li>
245 /// <p>For the <code>G.4X</code> worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, 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 Glue version 3.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
246 /// <li>
247 /// <p>For the <code>G.8X</code> worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, 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 Glue version 3.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
248 /// <li>
249 /// <p>For the <code>G.12X</code> worker type, each worker maps to 12 DPU (48 vCPUs, 192 GB of memory) with 768GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
250 /// <li>
251 /// <p>For the <code>G.16X</code> worker type, each worker maps to 16 DPU (64 vCPUs, 256 GB of memory) with 1024GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
252 /// <li>
253 /// <p>For the <code>R.1X</code> worker type, each worker maps to 1 M-DPU (4 vCPUs, 32 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
254 /// <li>
255 /// <p>For the <code>R.2X</code> worker type, each worker maps to 2 M-DPU (8 vCPUs, 64 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
256 /// <li>
257 /// <p>For the <code>R.4X</code> worker type, each worker maps to 4 M-DPU (16 vCPUs, 128 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
258 /// <li>
259 /// <p>For the <code>R.8X</code> worker type, each worker maps to 8 M-DPU (32 vCPUs, 256 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
260 /// <li>
261 /// <p>For the <code>Z.2X</code> worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.</p></li>
262 /// </ul>
263 pub fn worker_type(&self) -> ::std::option::Option<&crate::types::WorkerType> {
264 self.worker_type.as_ref()
265 }
266 /// <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
267 pub fn code_gen_configuration_nodes(
268 &self,
269 ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::CodeGenConfigurationNode>> {
270 self.code_gen_configuration_nodes.as_ref()
271 }
272 /// <p>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.</p>
273 /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.</p>
274 /// <p>Only jobs with Glue version 3.0 and above and command type <code>glueetl</code> will be allowed to set <code>ExecutionClass</code> to <code>FLEX</code>. The flexible execution class is available for Spark jobs.</p>
275 pub fn execution_class(&self) -> ::std::option::Option<&crate::types::ExecutionClass> {
276 self.execution_class.as_ref()
277 }
278 /// <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
279 pub fn source_control_details(&self) -> ::std::option::Option<&crate::types::SourceControlDetails> {
280 self.source_control_details.as_ref()
281 }
282 /// <p>This field specifies a day of the week and hour for a maintenance window for streaming jobs. Glue periodically performs maintenance activities. During these maintenance windows, Glue will need to restart your streaming jobs.</p>
283 /// <p>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.</p>
284 pub fn maintenance_window(&self) -> ::std::option::Option<&str> {
285 self.maintenance_window.as_deref()
286 }
287}
288impl ::std::fmt::Debug for CreateJobInput {
289 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
290 let mut formatter = f.debug_struct("CreateJobInput");
291 formatter.field("name", &self.name);
292 formatter.field("job_mode", &self.job_mode);
293 formatter.field("job_run_queuing_enabled", &self.job_run_queuing_enabled);
294 formatter.field("description", &self.description);
295 formatter.field("log_uri", &self.log_uri);
296 formatter.field("role", &self.role);
297 formatter.field("execution_property", &self.execution_property);
298 formatter.field("command", &self.command);
299 formatter.field("default_arguments", &self.default_arguments);
300 formatter.field("non_overridable_arguments", &self.non_overridable_arguments);
301 formatter.field("connections", &self.connections);
302 formatter.field("max_retries", &self.max_retries);
303 formatter.field("allocated_capacity", &self.allocated_capacity);
304 formatter.field("timeout", &self.timeout);
305 formatter.field("max_capacity", &self.max_capacity);
306 formatter.field("security_configuration", &self.security_configuration);
307 formatter.field("tags", &self.tags);
308 formatter.field("notification_property", &self.notification_property);
309 formatter.field("glue_version", &self.glue_version);
310 formatter.field("number_of_workers", &self.number_of_workers);
311 formatter.field("worker_type", &self.worker_type);
312 formatter.field("code_gen_configuration_nodes", &"*** Sensitive Data Redacted ***");
313 formatter.field("execution_class", &self.execution_class);
314 formatter.field("source_control_details", &self.source_control_details);
315 formatter.field("maintenance_window", &self.maintenance_window);
316 formatter.finish()
317 }
318}
319impl CreateJobInput {
320 /// Creates a new builder-style object to manufacture [`CreateJobInput`](crate::operation::create_job::CreateJobInput).
321 pub fn builder() -> crate::operation::create_job::builders::CreateJobInputBuilder {
322 crate::operation::create_job::builders::CreateJobInputBuilder::default()
323 }
324}
325
326/// A builder for [`CreateJobInput`](crate::operation::create_job::CreateJobInput).
327#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
328#[non_exhaustive]
329pub struct CreateJobInputBuilder {
330 pub(crate) name: ::std::option::Option<::std::string::String>,
331 pub(crate) job_mode: ::std::option::Option<crate::types::JobMode>,
332 pub(crate) job_run_queuing_enabled: ::std::option::Option<bool>,
333 pub(crate) description: ::std::option::Option<::std::string::String>,
334 pub(crate) log_uri: ::std::option::Option<::std::string::String>,
335 pub(crate) role: ::std::option::Option<::std::string::String>,
336 pub(crate) execution_property: ::std::option::Option<crate::types::ExecutionProperty>,
337 pub(crate) command: ::std::option::Option<crate::types::JobCommand>,
338 pub(crate) default_arguments: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
339 pub(crate) non_overridable_arguments: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
340 pub(crate) connections: ::std::option::Option<crate::types::ConnectionsList>,
341 pub(crate) max_retries: ::std::option::Option<i32>,
342 pub(crate) allocated_capacity: ::std::option::Option<i32>,
343 pub(crate) timeout: ::std::option::Option<i32>,
344 pub(crate) max_capacity: ::std::option::Option<f64>,
345 pub(crate) security_configuration: ::std::option::Option<::std::string::String>,
346 pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
347 pub(crate) notification_property: ::std::option::Option<crate::types::NotificationProperty>,
348 pub(crate) glue_version: ::std::option::Option<::std::string::String>,
349 pub(crate) number_of_workers: ::std::option::Option<i32>,
350 pub(crate) worker_type: ::std::option::Option<crate::types::WorkerType>,
351 pub(crate) code_gen_configuration_nodes:
352 ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::CodeGenConfigurationNode>>,
353 pub(crate) execution_class: ::std::option::Option<crate::types::ExecutionClass>,
354 pub(crate) source_control_details: ::std::option::Option<crate::types::SourceControlDetails>,
355 pub(crate) maintenance_window: ::std::option::Option<::std::string::String>,
356}
357impl CreateJobInputBuilder {
358 /// <p>The name you assign to this job definition. It must be unique in your account.</p>
359 /// This field is required.
360 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
361 self.name = ::std::option::Option::Some(input.into());
362 self
363 }
364 /// <p>The name you assign to this job definition. It must be unique in your account.</p>
365 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
366 self.name = input;
367 self
368 }
369 /// <p>The name you assign to this job definition. It must be unique in your account.</p>
370 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
371 &self.name
372 }
373 /// <p>A mode that describes how a job was created. Valid values are:</p>
374 /// <ul>
375 /// <li>
376 /// <p><code>SCRIPT</code> - The job was created using the Glue Studio script editor.</p></li>
377 /// <li>
378 /// <p><code>VISUAL</code> - The job was created using the Glue Studio visual editor.</p></li>
379 /// <li>
380 /// <p><code>NOTEBOOK</code> - The job was created using an interactive sessions notebook.</p></li>
381 /// </ul>
382 /// <p>When the <code>JobMode</code> field is missing or null, <code>SCRIPT</code> is assigned as the default value.</p>
383 pub fn job_mode(mut self, input: crate::types::JobMode) -> Self {
384 self.job_mode = ::std::option::Option::Some(input);
385 self
386 }
387 /// <p>A mode that describes how a job was created. Valid values are:</p>
388 /// <ul>
389 /// <li>
390 /// <p><code>SCRIPT</code> - The job was created using the Glue Studio script editor.</p></li>
391 /// <li>
392 /// <p><code>VISUAL</code> - The job was created using the Glue Studio visual editor.</p></li>
393 /// <li>
394 /// <p><code>NOTEBOOK</code> - The job was created using an interactive sessions notebook.</p></li>
395 /// </ul>
396 /// <p>When the <code>JobMode</code> field is missing or null, <code>SCRIPT</code> is assigned as the default value.</p>
397 pub fn set_job_mode(mut self, input: ::std::option::Option<crate::types::JobMode>) -> Self {
398 self.job_mode = input;
399 self
400 }
401 /// <p>A mode that describes how a job was created. Valid values are:</p>
402 /// <ul>
403 /// <li>
404 /// <p><code>SCRIPT</code> - The job was created using the Glue Studio script editor.</p></li>
405 /// <li>
406 /// <p><code>VISUAL</code> - The job was created using the Glue Studio visual editor.</p></li>
407 /// <li>
408 /// <p><code>NOTEBOOK</code> - The job was created using an interactive sessions notebook.</p></li>
409 /// </ul>
410 /// <p>When the <code>JobMode</code> field is missing or null, <code>SCRIPT</code> is assigned as the default value.</p>
411 pub fn get_job_mode(&self) -> &::std::option::Option<crate::types::JobMode> {
412 &self.job_mode
413 }
414 /// <p>Specifies whether job run queuing is enabled for the job runs for this job.</p>
415 /// <p>A value of true means job run queuing is enabled for the job runs. If false or not populated, the job runs will not be considered for queueing.</p>
416 /// <p>If this field does not match the value set in the job run, then the value from the job run field will be used.</p>
417 pub fn job_run_queuing_enabled(mut self, input: bool) -> Self {
418 self.job_run_queuing_enabled = ::std::option::Option::Some(input);
419 self
420 }
421 /// <p>Specifies whether job run queuing is enabled for the job runs for this job.</p>
422 /// <p>A value of true means job run queuing is enabled for the job runs. If false or not populated, the job runs will not be considered for queueing.</p>
423 /// <p>If this field does not match the value set in the job run, then the value from the job run field will be used.</p>
424 pub fn set_job_run_queuing_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
425 self.job_run_queuing_enabled = input;
426 self
427 }
428 /// <p>Specifies whether job run queuing is enabled for the job runs for this job.</p>
429 /// <p>A value of true means job run queuing is enabled for the job runs. If false or not populated, the job runs will not be considered for queueing.</p>
430 /// <p>If this field does not match the value set in the job run, then the value from the job run field will be used.</p>
431 pub fn get_job_run_queuing_enabled(&self) -> &::std::option::Option<bool> {
432 &self.job_run_queuing_enabled
433 }
434 /// <p>Description of the job being defined.</p>
435 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
436 self.description = ::std::option::Option::Some(input.into());
437 self
438 }
439 /// <p>Description of the job being defined.</p>
440 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
441 self.description = input;
442 self
443 }
444 /// <p>Description of the job being defined.</p>
445 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
446 &self.description
447 }
448 /// <p>This field is reserved for future use.</p>
449 pub fn log_uri(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
450 self.log_uri = ::std::option::Option::Some(input.into());
451 self
452 }
453 /// <p>This field is reserved for future use.</p>
454 pub fn set_log_uri(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
455 self.log_uri = input;
456 self
457 }
458 /// <p>This field is reserved for future use.</p>
459 pub fn get_log_uri(&self) -> &::std::option::Option<::std::string::String> {
460 &self.log_uri
461 }
462 /// <p>The name or Amazon Resource Name (ARN) of the IAM role associated with this job.</p>
463 /// This field is required.
464 pub fn role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
465 self.role = ::std::option::Option::Some(input.into());
466 self
467 }
468 /// <p>The name or Amazon Resource Name (ARN) of the IAM role associated with this job.</p>
469 pub fn set_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
470 self.role = input;
471 self
472 }
473 /// <p>The name or Amazon Resource Name (ARN) of the IAM role associated with this job.</p>
474 pub fn get_role(&self) -> &::std::option::Option<::std::string::String> {
475 &self.role
476 }
477 /// <p>An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.</p>
478 pub fn execution_property(mut self, input: crate::types::ExecutionProperty) -> Self {
479 self.execution_property = ::std::option::Option::Some(input);
480 self
481 }
482 /// <p>An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.</p>
483 pub fn set_execution_property(mut self, input: ::std::option::Option<crate::types::ExecutionProperty>) -> Self {
484 self.execution_property = input;
485 self
486 }
487 /// <p>An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.</p>
488 pub fn get_execution_property(&self) -> &::std::option::Option<crate::types::ExecutionProperty> {
489 &self.execution_property
490 }
491 /// <p>The <code>JobCommand</code> that runs this job.</p>
492 /// This field is required.
493 pub fn command(mut self, input: crate::types::JobCommand) -> Self {
494 self.command = ::std::option::Option::Some(input);
495 self
496 }
497 /// <p>The <code>JobCommand</code> that runs this job.</p>
498 pub fn set_command(mut self, input: ::std::option::Option<crate::types::JobCommand>) -> Self {
499 self.command = input;
500 self
501 }
502 /// <p>The <code>JobCommand</code> that runs this job.</p>
503 pub fn get_command(&self) -> &::std::option::Option<crate::types::JobCommand> {
504 &self.command
505 }
506 /// Adds a key-value pair to `default_arguments`.
507 ///
508 /// To override the contents of this collection use [`set_default_arguments`](Self::set_default_arguments).
509 ///
510 /// <p>The default arguments for every run of this job, specified as name-value pairs.</p>
511 /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
512 /// <p>Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job.</p>
513 /// <p>For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide.</p>
514 /// <p>For information about the arguments you can provide to this field when configuring Spark jobs, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.</p>
515 /// <p>For information about the arguments you can provide to this field when configuring Ray jobs, see <a href="https://docs.aws.amazon.com/glue/latest/dg/author-job-ray-job-parameters.html">Using job parameters in Ray jobs</a> in the developer guide.</p>
516 pub fn default_arguments(
517 mut self,
518 k: impl ::std::convert::Into<::std::string::String>,
519 v: impl ::std::convert::Into<::std::string::String>,
520 ) -> Self {
521 let mut hash_map = self.default_arguments.unwrap_or_default();
522 hash_map.insert(k.into(), v.into());
523 self.default_arguments = ::std::option::Option::Some(hash_map);
524 self
525 }
526 /// <p>The default arguments for every run of this job, specified as name-value pairs.</p>
527 /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
528 /// <p>Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job.</p>
529 /// <p>For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide.</p>
530 /// <p>For information about the arguments you can provide to this field when configuring Spark jobs, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.</p>
531 /// <p>For information about the arguments you can provide to this field when configuring Ray jobs, see <a href="https://docs.aws.amazon.com/glue/latest/dg/author-job-ray-job-parameters.html">Using job parameters in Ray jobs</a> in the developer guide.</p>
532 pub fn set_default_arguments(
533 mut self,
534 input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
535 ) -> Self {
536 self.default_arguments = input;
537 self
538 }
539 /// <p>The default arguments for every run of this job, specified as name-value pairs.</p>
540 /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
541 /// <p>Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job.</p>
542 /// <p>For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide.</p>
543 /// <p>For information about the arguments you can provide to this field when configuring Spark jobs, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.</p>
544 /// <p>For information about the arguments you can provide to this field when configuring Ray jobs, see <a href="https://docs.aws.amazon.com/glue/latest/dg/author-job-ray-job-parameters.html">Using job parameters in Ray jobs</a> in the developer guide.</p>
545 pub fn get_default_arguments(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
546 &self.default_arguments
547 }
548 /// Adds a key-value pair to `non_overridable_arguments`.
549 ///
550 /// To override the contents of this collection use [`set_non_overridable_arguments`](Self::set_non_overridable_arguments).
551 ///
552 /// <p>Arguments for this job that are not overridden when providing job arguments in a job run, specified as name-value pairs.</p>
553 pub fn non_overridable_arguments(
554 mut self,
555 k: impl ::std::convert::Into<::std::string::String>,
556 v: impl ::std::convert::Into<::std::string::String>,
557 ) -> Self {
558 let mut hash_map = self.non_overridable_arguments.unwrap_or_default();
559 hash_map.insert(k.into(), v.into());
560 self.non_overridable_arguments = ::std::option::Option::Some(hash_map);
561 self
562 }
563 /// <p>Arguments for this job that are not overridden when providing job arguments in a job run, specified as name-value pairs.</p>
564 pub fn set_non_overridable_arguments(
565 mut self,
566 input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
567 ) -> Self {
568 self.non_overridable_arguments = input;
569 self
570 }
571 /// <p>Arguments for this job that are not overridden when providing job arguments in a job run, specified as name-value pairs.</p>
572 pub fn get_non_overridable_arguments(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
573 &self.non_overridable_arguments
574 }
575 /// <p>The connections used for this job.</p>
576 pub fn connections(mut self, input: crate::types::ConnectionsList) -> Self {
577 self.connections = ::std::option::Option::Some(input);
578 self
579 }
580 /// <p>The connections used for this job.</p>
581 pub fn set_connections(mut self, input: ::std::option::Option<crate::types::ConnectionsList>) -> Self {
582 self.connections = input;
583 self
584 }
585 /// <p>The connections used for this job.</p>
586 pub fn get_connections(&self) -> &::std::option::Option<crate::types::ConnectionsList> {
587 &self.connections
588 }
589 /// <p>The maximum number of times to retry this job if it fails.</p>
590 pub fn max_retries(mut self, input: i32) -> Self {
591 self.max_retries = ::std::option::Option::Some(input);
592 self
593 }
594 /// <p>The maximum number of times to retry this job if it fails.</p>
595 pub fn set_max_retries(mut self, input: ::std::option::Option<i32>) -> Self {
596 self.max_retries = input;
597 self
598 }
599 /// <p>The maximum number of times to retry this job if it fails.</p>
600 pub fn get_max_retries(&self) -> &::std::option::Option<i32> {
601 &self.max_retries
602 }
603 /// <p>This parameter is deprecated. Use <code>MaxCapacity</code> instead.</p>
604 /// <p>The number of Glue data processing units (DPUs) to allocate to this Job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
605 #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
606 pub fn allocated_capacity(mut self, input: i32) -> Self {
607 self.allocated_capacity = ::std::option::Option::Some(input);
608 self
609 }
610 /// <p>This parameter is deprecated. Use <code>MaxCapacity</code> instead.</p>
611 /// <p>The number of Glue data processing units (DPUs) to allocate to this Job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
612 #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
613 pub fn set_allocated_capacity(mut self, input: ::std::option::Option<i32>) -> Self {
614 self.allocated_capacity = input;
615 self
616 }
617 /// <p>This parameter is deprecated. Use <code>MaxCapacity</code> instead.</p>
618 /// <p>The number of Glue data processing units (DPUs) to allocate to this Job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
619 #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
620 pub fn get_allocated_capacity(&self) -> &::std::option::Option<i32> {
621 &self.allocated_capacity
622 }
623 /// <p>The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status.</p>
624 /// <p>Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.</p>
625 /// <p>When the value is left blank, the timeout is defaulted to 2,880 minutes for Glue version 4.0 and earlier, or 480 minutes for Glue version 5.0 and later.</p>
626 /// <p>Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.</p>
627 /// <p>For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.</p>
628 pub fn timeout(mut self, input: i32) -> Self {
629 self.timeout = ::std::option::Option::Some(input);
630 self
631 }
632 /// <p>The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status.</p>
633 /// <p>Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.</p>
634 /// <p>When the value is left blank, the timeout is defaulted to 2,880 minutes for Glue version 4.0 and earlier, or 480 minutes for Glue version 5.0 and later.</p>
635 /// <p>Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.</p>
636 /// <p>For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.</p>
637 pub fn set_timeout(mut self, input: ::std::option::Option<i32>) -> Self {
638 self.timeout = input;
639 self
640 }
641 /// <p>The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status.</p>
642 /// <p>Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.</p>
643 /// <p>When the value is left blank, the timeout is defaulted to 2,880 minutes for Glue version 4.0 and earlier, or 480 minutes for Glue version 5.0 and later.</p>
644 /// <p>Any existing Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.</p>
645 /// <p>For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.</p>
646 pub fn get_timeout(&self) -> &::std::option::Option<i32> {
647 &self.timeout
648 }
649 /// <p>For Glue version 1.0 or earlier jobs, using the standard worker type, the number of 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. For more information, see the <a href="https://aws.amazon.com/glue/pricing/"> Glue pricing page</a>.</p>
650 /// <p>For Glue version 2.0+ jobs, you cannot specify a <code>Maximum capacity</code>. Instead, you should specify a <code>Worker type</code> and the <code>Number of workers</code>.</p>
651 /// <p>Do not set <code>MaxCapacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
652 /// <p>The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:</p>
653 /// <ul>
654 /// <li>
655 /// <p>When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.</p></li>
656 /// <li>
657 /// <p>When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl") or Apache Spark streaming ETL job (<code>JobCommand.Name</code>="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.</p></li>
658 /// </ul>
659 pub fn max_capacity(mut self, input: f64) -> Self {
660 self.max_capacity = ::std::option::Option::Some(input);
661 self
662 }
663 /// <p>For Glue version 1.0 or earlier jobs, using the standard worker type, the number of 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. For more information, see the <a href="https://aws.amazon.com/glue/pricing/"> Glue pricing page</a>.</p>
664 /// <p>For Glue version 2.0+ jobs, you cannot specify a <code>Maximum capacity</code>. Instead, you should specify a <code>Worker type</code> and the <code>Number of workers</code>.</p>
665 /// <p>Do not set <code>MaxCapacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
666 /// <p>The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:</p>
667 /// <ul>
668 /// <li>
669 /// <p>When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.</p></li>
670 /// <li>
671 /// <p>When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl") or Apache Spark streaming ETL job (<code>JobCommand.Name</code>="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.</p></li>
672 /// </ul>
673 pub fn set_max_capacity(mut self, input: ::std::option::Option<f64>) -> Self {
674 self.max_capacity = input;
675 self
676 }
677 /// <p>For Glue version 1.0 or earlier jobs, using the standard worker type, the number of 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. For more information, see the <a href="https://aws.amazon.com/glue/pricing/"> Glue pricing page</a>.</p>
678 /// <p>For Glue version 2.0+ jobs, you cannot specify a <code>Maximum capacity</code>. Instead, you should specify a <code>Worker type</code> and the <code>Number of workers</code>.</p>
679 /// <p>Do not set <code>MaxCapacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
680 /// <p>The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:</p>
681 /// <ul>
682 /// <li>
683 /// <p>When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.</p></li>
684 /// <li>
685 /// <p>When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl") or Apache Spark streaming ETL job (<code>JobCommand.Name</code>="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.</p></li>
686 /// </ul>
687 pub fn get_max_capacity(&self) -> &::std::option::Option<f64> {
688 &self.max_capacity
689 }
690 /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job.</p>
691 pub fn security_configuration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
692 self.security_configuration = ::std::option::Option::Some(input.into());
693 self
694 }
695 /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job.</p>
696 pub fn set_security_configuration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
697 self.security_configuration = input;
698 self
699 }
700 /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job.</p>
701 pub fn get_security_configuration(&self) -> &::std::option::Option<::std::string::String> {
702 &self.security_configuration
703 }
704 /// Adds a key-value pair to `tags`.
705 ///
706 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
707 ///
708 /// <p>The tags to use with this job. You may use tags to limit access to the job. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
709 pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
710 let mut hash_map = self.tags.unwrap_or_default();
711 hash_map.insert(k.into(), v.into());
712 self.tags = ::std::option::Option::Some(hash_map);
713 self
714 }
715 /// <p>The tags to use with this job. You may use tags to limit access to the job. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
716 pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
717 self.tags = input;
718 self
719 }
720 /// <p>The tags to use with this job. You may use tags to limit access to the job. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
721 pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
722 &self.tags
723 }
724 /// <p>Specifies configuration properties of a job notification.</p>
725 pub fn notification_property(mut self, input: crate::types::NotificationProperty) -> Self {
726 self.notification_property = ::std::option::Option::Some(input);
727 self
728 }
729 /// <p>Specifies configuration properties of a job notification.</p>
730 pub fn set_notification_property(mut self, input: ::std::option::Option<crate::types::NotificationProperty>) -> Self {
731 self.notification_property = input;
732 self
733 }
734 /// <p>Specifies configuration properties of a job notification.</p>
735 pub fn get_notification_property(&self) -> &::std::option::Option<crate::types::NotificationProperty> {
736 &self.notification_property
737 }
738 /// <p>In Spark jobs, <code>GlueVersion</code> determines the versions of Apache Spark and Python that Glue available in a job. The Python version indicates the version supported for jobs of type Spark.</p>
739 /// <p>Ray jobs should set <code>GlueVersion</code> to <code>4.0</code> or greater. However, the versions of Ray, Python and additional libraries available in your Ray job are determined by the <code>Runtime</code> parameter of the Job command.</p>
740 /// <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p>
741 /// <p>Jobs that are created without specifying a Glue version default to Glue 5.1.</p>
742 pub fn glue_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
743 self.glue_version = ::std::option::Option::Some(input.into());
744 self
745 }
746 /// <p>In Spark jobs, <code>GlueVersion</code> determines the versions of Apache Spark and Python that Glue available in a job. The Python version indicates the version supported for jobs of type Spark.</p>
747 /// <p>Ray jobs should set <code>GlueVersion</code> to <code>4.0</code> or greater. However, the versions of Ray, Python and additional libraries available in your Ray job are determined by the <code>Runtime</code> parameter of the Job command.</p>
748 /// <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p>
749 /// <p>Jobs that are created without specifying a Glue version default to Glue 5.1.</p>
750 pub fn set_glue_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
751 self.glue_version = input;
752 self
753 }
754 /// <p>In Spark jobs, <code>GlueVersion</code> determines the versions of Apache Spark and Python that Glue available in a job. The Python version indicates the version supported for jobs of type Spark.</p>
755 /// <p>Ray jobs should set <code>GlueVersion</code> to <code>4.0</code> or greater. However, the versions of Ray, Python and additional libraries available in your Ray job are determined by the <code>Runtime</code> parameter of the Job command.</p>
756 /// <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p>
757 /// <p>Jobs that are created without specifying a Glue version default to Glue 5.1.</p>
758 pub fn get_glue_version(&self) -> &::std::option::Option<::std::string::String> {
759 &self.glue_version
760 }
761 /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
762 pub fn number_of_workers(mut self, input: i32) -> Self {
763 self.number_of_workers = ::std::option::Option::Some(input);
764 self
765 }
766 /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
767 pub fn set_number_of_workers(mut self, input: ::std::option::Option<i32>) -> Self {
768 self.number_of_workers = input;
769 self
770 }
771 /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
772 pub fn get_number_of_workers(&self) -> &::std::option::Option<i32> {
773 &self.number_of_workers
774 }
775 /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of G.025X, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X, or R.8X for Spark jobs. Accepts the value Z.2X for Ray jobs.</p>
776 /// <ul>
777 /// <li>
778 /// <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 or later streaming jobs.</p></li>
779 /// <li>
780 /// <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, 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.</p></li>
781 /// <li>
782 /// <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, 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.</p></li>
783 /// <li>
784 /// <p>For the <code>G.4X</code> worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, 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 Glue version 3.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
785 /// <li>
786 /// <p>For the <code>G.8X</code> worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, 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 Glue version 3.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
787 /// <li>
788 /// <p>For the <code>G.12X</code> worker type, each worker maps to 12 DPU (48 vCPUs, 192 GB of memory) with 768GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
789 /// <li>
790 /// <p>For the <code>G.16X</code> worker type, each worker maps to 16 DPU (64 vCPUs, 256 GB of memory) with 1024GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
791 /// <li>
792 /// <p>For the <code>R.1X</code> worker type, each worker maps to 1 M-DPU (4 vCPUs, 32 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
793 /// <li>
794 /// <p>For the <code>R.2X</code> worker type, each worker maps to 2 M-DPU (8 vCPUs, 64 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
795 /// <li>
796 /// <p>For the <code>R.4X</code> worker type, each worker maps to 4 M-DPU (16 vCPUs, 128 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
797 /// <li>
798 /// <p>For the <code>R.8X</code> worker type, each worker maps to 8 M-DPU (32 vCPUs, 256 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
799 /// <li>
800 /// <p>For the <code>Z.2X</code> worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.</p></li>
801 /// </ul>
802 pub fn worker_type(mut self, input: crate::types::WorkerType) -> Self {
803 self.worker_type = ::std::option::Option::Some(input);
804 self
805 }
806 /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of G.025X, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X, or R.8X for Spark jobs. Accepts the value Z.2X for Ray jobs.</p>
807 /// <ul>
808 /// <li>
809 /// <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 or later streaming jobs.</p></li>
810 /// <li>
811 /// <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, 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.</p></li>
812 /// <li>
813 /// <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, 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.</p></li>
814 /// <li>
815 /// <p>For the <code>G.4X</code> worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, 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 Glue version 3.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
816 /// <li>
817 /// <p>For the <code>G.8X</code> worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, 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 Glue version 3.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
818 /// <li>
819 /// <p>For the <code>G.12X</code> worker type, each worker maps to 12 DPU (48 vCPUs, 192 GB of memory) with 768GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
820 /// <li>
821 /// <p>For the <code>G.16X</code> worker type, each worker maps to 16 DPU (64 vCPUs, 256 GB of memory) with 1024GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
822 /// <li>
823 /// <p>For the <code>R.1X</code> worker type, each worker maps to 1 M-DPU (4 vCPUs, 32 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
824 /// <li>
825 /// <p>For the <code>R.2X</code> worker type, each worker maps to 2 M-DPU (8 vCPUs, 64 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
826 /// <li>
827 /// <p>For the <code>R.4X</code> worker type, each worker maps to 4 M-DPU (16 vCPUs, 128 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
828 /// <li>
829 /// <p>For the <code>R.8X</code> worker type, each worker maps to 8 M-DPU (32 vCPUs, 256 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
830 /// <li>
831 /// <p>For the <code>Z.2X</code> worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.</p></li>
832 /// </ul>
833 pub fn set_worker_type(mut self, input: ::std::option::Option<crate::types::WorkerType>) -> Self {
834 self.worker_type = input;
835 self
836 }
837 /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of G.025X, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X, or R.8X for Spark jobs. Accepts the value Z.2X for Ray jobs.</p>
838 /// <ul>
839 /// <li>
840 /// <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 or later streaming jobs.</p></li>
841 /// <li>
842 /// <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, 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.</p></li>
843 /// <li>
844 /// <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, 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.</p></li>
845 /// <li>
846 /// <p>For the <code>G.4X</code> worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, 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 Glue version 3.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
847 /// <li>
848 /// <p>For the <code>G.8X</code> worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, 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 Glue version 3.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
849 /// <li>
850 /// <p>For the <code>G.12X</code> worker type, each worker maps to 12 DPU (48 vCPUs, 192 GB of memory) with 768GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
851 /// <li>
852 /// <p>For the <code>G.16X</code> worker type, each worker maps to 16 DPU (64 vCPUs, 256 GB of memory) with 1024GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
853 /// <li>
854 /// <p>For the <code>R.1X</code> worker type, each worker maps to 1 M-DPU (4 vCPUs, 32 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
855 /// <li>
856 /// <p>For the <code>R.2X</code> worker type, each worker maps to 2 M-DPU (8 vCPUs, 64 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
857 /// <li>
858 /// <p>For the <code>R.4X</code> worker type, each worker maps to 4 M-DPU (16 vCPUs, 128 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
859 /// <li>
860 /// <p>For the <code>R.8X</code> worker type, each worker maps to 8 M-DPU (32 vCPUs, 256 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for Glue version 4.0 or later Spark ETL jobs in select Amazon Web Services Regions. For the supported Regions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Configuring job properties for Spark jobs</a> in the developer guide.</p></li>
861 /// <li>
862 /// <p>For the <code>Z.2X</code> worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.</p></li>
863 /// </ul>
864 pub fn get_worker_type(&self) -> &::std::option::Option<crate::types::WorkerType> {
865 &self.worker_type
866 }
867 /// Adds a key-value pair to `code_gen_configuration_nodes`.
868 ///
869 /// To override the contents of this collection use [`set_code_gen_configuration_nodes`](Self::set_code_gen_configuration_nodes).
870 ///
871 /// <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
872 pub fn code_gen_configuration_nodes(
873 mut self,
874 k: impl ::std::convert::Into<::std::string::String>,
875 v: crate::types::CodeGenConfigurationNode,
876 ) -> Self {
877 let mut hash_map = self.code_gen_configuration_nodes.unwrap_or_default();
878 hash_map.insert(k.into(), v);
879 self.code_gen_configuration_nodes = ::std::option::Option::Some(hash_map);
880 self
881 }
882 /// <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
883 pub fn set_code_gen_configuration_nodes(
884 mut self,
885 input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::CodeGenConfigurationNode>>,
886 ) -> Self {
887 self.code_gen_configuration_nodes = input;
888 self
889 }
890 /// <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
891 pub fn get_code_gen_configuration_nodes(
892 &self,
893 ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::CodeGenConfigurationNode>> {
894 &self.code_gen_configuration_nodes
895 }
896 /// <p>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.</p>
897 /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.</p>
898 /// <p>Only jobs with Glue version 3.0 and above and command type <code>glueetl</code> will be allowed to set <code>ExecutionClass</code> to <code>FLEX</code>. The flexible execution class is available for Spark jobs.</p>
899 pub fn execution_class(mut self, input: crate::types::ExecutionClass) -> Self {
900 self.execution_class = ::std::option::Option::Some(input);
901 self
902 }
903 /// <p>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.</p>
904 /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.</p>
905 /// <p>Only jobs with Glue version 3.0 and above and command type <code>glueetl</code> will be allowed to set <code>ExecutionClass</code> to <code>FLEX</code>. The flexible execution class is available for Spark jobs.</p>
906 pub fn set_execution_class(mut self, input: ::std::option::Option<crate::types::ExecutionClass>) -> Self {
907 self.execution_class = input;
908 self
909 }
910 /// <p>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.</p>
911 /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.</p>
912 /// <p>Only jobs with Glue version 3.0 and above and command type <code>glueetl</code> will be allowed to set <code>ExecutionClass</code> to <code>FLEX</code>. The flexible execution class is available for Spark jobs.</p>
913 pub fn get_execution_class(&self) -> &::std::option::Option<crate::types::ExecutionClass> {
914 &self.execution_class
915 }
916 /// <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
917 pub fn source_control_details(mut self, input: crate::types::SourceControlDetails) -> Self {
918 self.source_control_details = ::std::option::Option::Some(input);
919 self
920 }
921 /// <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
922 pub fn set_source_control_details(mut self, input: ::std::option::Option<crate::types::SourceControlDetails>) -> Self {
923 self.source_control_details = input;
924 self
925 }
926 /// <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
927 pub fn get_source_control_details(&self) -> &::std::option::Option<crate::types::SourceControlDetails> {
928 &self.source_control_details
929 }
930 /// <p>This field specifies a day of the week and hour for a maintenance window for streaming jobs. Glue periodically performs maintenance activities. During these maintenance windows, Glue will need to restart your streaming jobs.</p>
931 /// <p>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.</p>
932 pub fn maintenance_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
933 self.maintenance_window = ::std::option::Option::Some(input.into());
934 self
935 }
936 /// <p>This field specifies a day of the week and hour for a maintenance window for streaming jobs. Glue periodically performs maintenance activities. During these maintenance windows, Glue will need to restart your streaming jobs.</p>
937 /// <p>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.</p>
938 pub fn set_maintenance_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
939 self.maintenance_window = input;
940 self
941 }
942 /// <p>This field specifies a day of the week and hour for a maintenance window for streaming jobs. Glue periodically performs maintenance activities. During these maintenance windows, Glue will need to restart your streaming jobs.</p>
943 /// <p>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.</p>
944 pub fn get_maintenance_window(&self) -> &::std::option::Option<::std::string::String> {
945 &self.maintenance_window
946 }
947 /// Consumes the builder and constructs a [`CreateJobInput`](crate::operation::create_job::CreateJobInput).
948 pub fn build(self) -> ::std::result::Result<crate::operation::create_job::CreateJobInput, ::aws_smithy_types::error::operation::BuildError> {
949 ::std::result::Result::Ok(crate::operation::create_job::CreateJobInput {
950 name: self.name,
951 job_mode: self.job_mode,
952 job_run_queuing_enabled: self.job_run_queuing_enabled,
953 description: self.description,
954 log_uri: self.log_uri,
955 role: self.role,
956 execution_property: self.execution_property,
957 command: self.command,
958 default_arguments: self.default_arguments,
959 non_overridable_arguments: self.non_overridable_arguments,
960 connections: self.connections,
961 max_retries: self.max_retries,
962 allocated_capacity: self.allocated_capacity,
963 timeout: self.timeout,
964 max_capacity: self.max_capacity,
965 security_configuration: self.security_configuration,
966 tags: self.tags,
967 notification_property: self.notification_property,
968 glue_version: self.glue_version,
969 number_of_workers: self.number_of_workers,
970 worker_type: self.worker_type,
971 code_gen_configuration_nodes: self.code_gen_configuration_nodes,
972 execution_class: self.execution_class,
973 source_control_details: self.source_control_details,
974 maintenance_window: self.maintenance_window,
975 })
976 }
977}
978impl ::std::fmt::Debug for CreateJobInputBuilder {
979 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
980 let mut formatter = f.debug_struct("CreateJobInputBuilder");
981 formatter.field("name", &self.name);
982 formatter.field("job_mode", &self.job_mode);
983 formatter.field("job_run_queuing_enabled", &self.job_run_queuing_enabled);
984 formatter.field("description", &self.description);
985 formatter.field("log_uri", &self.log_uri);
986 formatter.field("role", &self.role);
987 formatter.field("execution_property", &self.execution_property);
988 formatter.field("command", &self.command);
989 formatter.field("default_arguments", &self.default_arguments);
990 formatter.field("non_overridable_arguments", &self.non_overridable_arguments);
991 formatter.field("connections", &self.connections);
992 formatter.field("max_retries", &self.max_retries);
993 formatter.field("allocated_capacity", &self.allocated_capacity);
994 formatter.field("timeout", &self.timeout);
995 formatter.field("max_capacity", &self.max_capacity);
996 formatter.field("security_configuration", &self.security_configuration);
997 formatter.field("tags", &self.tags);
998 formatter.field("notification_property", &self.notification_property);
999 formatter.field("glue_version", &self.glue_version);
1000 formatter.field("number_of_workers", &self.number_of_workers);
1001 formatter.field("worker_type", &self.worker_type);
1002 formatter.field("code_gen_configuration_nodes", &"*** Sensitive Data Redacted ***");
1003 formatter.field("execution_class", &self.execution_class);
1004 formatter.field("source_control_details", &self.source_control_details);
1005 formatter.field("maintenance_window", &self.maintenance_window);
1006 formatter.finish()
1007 }
1008}