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 2880 minutes.</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 0.9.</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.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.</p>
81 /// <ul>
82 /// <li>
83 /// <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>
84 /// <li>
85 /// <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>
86 /// <li>
87 /// <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 the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Mumbai), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), Europe (London), Europe (Spain), Europe (Stockholm), and South America (São Paulo).</p></li>
88 /// <li>
89 /// <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 the same Amazon Web Services Regions as supported for the <code>G.4X</code> worker type.</p></li>
90 /// <li>
91 /// <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>
92 /// <li>
93 /// <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>
94 /// </ul>
95 pub worker_type: ::std::option::Option<crate::types::WorkerType>,
96 /// <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
97 pub code_gen_configuration_nodes:
98 ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::CodeGenConfigurationNode>>,
99 /// <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>
100 /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.</p>
101 /// <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>
102 pub execution_class: ::std::option::Option<crate::types::ExecutionClass>,
103 /// <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
104 pub source_control_details: ::std::option::Option<crate::types::SourceControlDetails>,
105 /// <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>
106 /// <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>
107 pub maintenance_window: ::std::option::Option<::std::string::String>,
108}
109impl CreateJobInput {
110 /// <p>The name you assign to this job definition. It must be unique in your account.</p>
111 pub fn name(&self) -> ::std::option::Option<&str> {
112 self.name.as_deref()
113 }
114 /// <p>A mode that describes how a job was created. Valid values are:</p>
115 /// <ul>
116 /// <li>
117 /// <p><code>SCRIPT</code> - The job was created using the Glue Studio script editor.</p></li>
118 /// <li>
119 /// <p><code>VISUAL</code> - The job was created using the Glue Studio visual editor.</p></li>
120 /// <li>
121 /// <p><code>NOTEBOOK</code> - The job was created using an interactive sessions notebook.</p></li>
122 /// </ul>
123 /// <p>When the <code>JobMode</code> field is missing or null, <code>SCRIPT</code> is assigned as the default value.</p>
124 pub fn job_mode(&self) -> ::std::option::Option<&crate::types::JobMode> {
125 self.job_mode.as_ref()
126 }
127 /// <p>Specifies whether job run queuing is enabled for the job runs for this job.</p>
128 /// <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>
129 /// <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>
130 pub fn job_run_queuing_enabled(&self) -> ::std::option::Option<bool> {
131 self.job_run_queuing_enabled
132 }
133 /// <p>Description of the job being defined.</p>
134 pub fn description(&self) -> ::std::option::Option<&str> {
135 self.description.as_deref()
136 }
137 /// <p>This field is reserved for future use.</p>
138 pub fn log_uri(&self) -> ::std::option::Option<&str> {
139 self.log_uri.as_deref()
140 }
141 /// <p>The name or Amazon Resource Name (ARN) of the IAM role associated with this job.</p>
142 pub fn role(&self) -> ::std::option::Option<&str> {
143 self.role.as_deref()
144 }
145 /// <p>An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.</p>
146 pub fn execution_property(&self) -> ::std::option::Option<&crate::types::ExecutionProperty> {
147 self.execution_property.as_ref()
148 }
149 /// <p>The <code>JobCommand</code> that runs this job.</p>
150 pub fn command(&self) -> ::std::option::Option<&crate::types::JobCommand> {
151 self.command.as_ref()
152 }
153 /// <p>The default arguments for every run of this job, specified as name-value pairs.</p>
154 /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
155 /// <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>
156 /// <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>
157 /// <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>
158 /// <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>
159 pub fn default_arguments(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
160 self.default_arguments.as_ref()
161 }
162 /// <p>Arguments for this job that are not overridden when providing job arguments in a job run, specified as name-value pairs.</p>
163 pub fn non_overridable_arguments(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
164 self.non_overridable_arguments.as_ref()
165 }
166 /// <p>The connections used for this job.</p>
167 pub fn connections(&self) -> ::std::option::Option<&crate::types::ConnectionsList> {
168 self.connections.as_ref()
169 }
170 /// <p>The maximum number of times to retry this job if it fails.</p>
171 pub fn max_retries(&self) -> ::std::option::Option<i32> {
172 self.max_retries
173 }
174 /// <p>This parameter is deprecated. Use <code>MaxCapacity</code> instead.</p>
175 /// <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>
176 #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
177 pub fn allocated_capacity(&self) -> ::std::option::Option<i32> {
178 self.allocated_capacity
179 }
180 /// <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>
181 /// <p>Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.</p>
182 /// <p>When the value is left blank, the timeout is defaulted to 2880 minutes.</p>
183 /// <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>
184 /// <p>For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.</p>
185 pub fn timeout(&self) -> ::std::option::Option<i32> {
186 self.timeout
187 }
188 /// <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>
189 /// <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>
190 /// <p>Do not set <code>MaxCapacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
191 /// <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>
192 /// <ul>
193 /// <li>
194 /// <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>
195 /// <li>
196 /// <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>
197 /// </ul>
198 pub fn max_capacity(&self) -> ::std::option::Option<f64> {
199 self.max_capacity
200 }
201 /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job.</p>
202 pub fn security_configuration(&self) -> ::std::option::Option<&str> {
203 self.security_configuration.as_deref()
204 }
205 /// <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>
206 pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
207 self.tags.as_ref()
208 }
209 /// <p>Specifies configuration properties of a job notification.</p>
210 pub fn notification_property(&self) -> ::std::option::Option<&crate::types::NotificationProperty> {
211 self.notification_property.as_ref()
212 }
213 /// <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>
214 /// <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>
215 /// <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>
216 /// <p>Jobs that are created without specifying a Glue version default to Glue 0.9.</p>
217 pub fn glue_version(&self) -> ::std::option::Option<&str> {
218 self.glue_version.as_deref()
219 }
220 /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
221 pub fn number_of_workers(&self) -> ::std::option::Option<i32> {
222 self.number_of_workers
223 }
224 /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.</p>
225 /// <ul>
226 /// <li>
227 /// <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>
228 /// <li>
229 /// <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>
230 /// <li>
231 /// <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 the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Mumbai), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), Europe (London), Europe (Spain), Europe (Stockholm), and South America (São Paulo).</p></li>
232 /// <li>
233 /// <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 the same Amazon Web Services Regions as supported for the <code>G.4X</code> worker type.</p></li>
234 /// <li>
235 /// <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>
236 /// <li>
237 /// <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>
238 /// </ul>
239 pub fn worker_type(&self) -> ::std::option::Option<&crate::types::WorkerType> {
240 self.worker_type.as_ref()
241 }
242 /// <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
243 pub fn code_gen_configuration_nodes(
244 &self,
245 ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::CodeGenConfigurationNode>> {
246 self.code_gen_configuration_nodes.as_ref()
247 }
248 /// <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>
249 /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.</p>
250 /// <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>
251 pub fn execution_class(&self) -> ::std::option::Option<&crate::types::ExecutionClass> {
252 self.execution_class.as_ref()
253 }
254 /// <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
255 pub fn source_control_details(&self) -> ::std::option::Option<&crate::types::SourceControlDetails> {
256 self.source_control_details.as_ref()
257 }
258 /// <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>
259 /// <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>
260 pub fn maintenance_window(&self) -> ::std::option::Option<&str> {
261 self.maintenance_window.as_deref()
262 }
263}
264impl ::std::fmt::Debug for CreateJobInput {
265 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
266 let mut formatter = f.debug_struct("CreateJobInput");
267 formatter.field("name", &self.name);
268 formatter.field("job_mode", &self.job_mode);
269 formatter.field("job_run_queuing_enabled", &self.job_run_queuing_enabled);
270 formatter.field("description", &self.description);
271 formatter.field("log_uri", &self.log_uri);
272 formatter.field("role", &self.role);
273 formatter.field("execution_property", &self.execution_property);
274 formatter.field("command", &self.command);
275 formatter.field("default_arguments", &self.default_arguments);
276 formatter.field("non_overridable_arguments", &self.non_overridable_arguments);
277 formatter.field("connections", &self.connections);
278 formatter.field("max_retries", &self.max_retries);
279 formatter.field("allocated_capacity", &self.allocated_capacity);
280 formatter.field("timeout", &self.timeout);
281 formatter.field("max_capacity", &self.max_capacity);
282 formatter.field("security_configuration", &self.security_configuration);
283 formatter.field("tags", &self.tags);
284 formatter.field("notification_property", &self.notification_property);
285 formatter.field("glue_version", &self.glue_version);
286 formatter.field("number_of_workers", &self.number_of_workers);
287 formatter.field("worker_type", &self.worker_type);
288 formatter.field("code_gen_configuration_nodes", &"*** Sensitive Data Redacted ***");
289 formatter.field("execution_class", &self.execution_class);
290 formatter.field("source_control_details", &self.source_control_details);
291 formatter.field("maintenance_window", &self.maintenance_window);
292 formatter.finish()
293 }
294}
295impl CreateJobInput {
296 /// Creates a new builder-style object to manufacture [`CreateJobInput`](crate::operation::create_job::CreateJobInput).
297 pub fn builder() -> crate::operation::create_job::builders::CreateJobInputBuilder {
298 crate::operation::create_job::builders::CreateJobInputBuilder::default()
299 }
300}
301
302/// A builder for [`CreateJobInput`](crate::operation::create_job::CreateJobInput).
303#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
304#[non_exhaustive]
305pub struct CreateJobInputBuilder {
306 pub(crate) name: ::std::option::Option<::std::string::String>,
307 pub(crate) job_mode: ::std::option::Option<crate::types::JobMode>,
308 pub(crate) job_run_queuing_enabled: ::std::option::Option<bool>,
309 pub(crate) description: ::std::option::Option<::std::string::String>,
310 pub(crate) log_uri: ::std::option::Option<::std::string::String>,
311 pub(crate) role: ::std::option::Option<::std::string::String>,
312 pub(crate) execution_property: ::std::option::Option<crate::types::ExecutionProperty>,
313 pub(crate) command: ::std::option::Option<crate::types::JobCommand>,
314 pub(crate) default_arguments: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
315 pub(crate) non_overridable_arguments: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
316 pub(crate) connections: ::std::option::Option<crate::types::ConnectionsList>,
317 pub(crate) max_retries: ::std::option::Option<i32>,
318 pub(crate) allocated_capacity: ::std::option::Option<i32>,
319 pub(crate) timeout: ::std::option::Option<i32>,
320 pub(crate) max_capacity: ::std::option::Option<f64>,
321 pub(crate) security_configuration: ::std::option::Option<::std::string::String>,
322 pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
323 pub(crate) notification_property: ::std::option::Option<crate::types::NotificationProperty>,
324 pub(crate) glue_version: ::std::option::Option<::std::string::String>,
325 pub(crate) number_of_workers: ::std::option::Option<i32>,
326 pub(crate) worker_type: ::std::option::Option<crate::types::WorkerType>,
327 pub(crate) code_gen_configuration_nodes:
328 ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::CodeGenConfigurationNode>>,
329 pub(crate) execution_class: ::std::option::Option<crate::types::ExecutionClass>,
330 pub(crate) source_control_details: ::std::option::Option<crate::types::SourceControlDetails>,
331 pub(crate) maintenance_window: ::std::option::Option<::std::string::String>,
332}
333impl CreateJobInputBuilder {
334 /// <p>The name you assign to this job definition. It must be unique in your account.</p>
335 /// This field is required.
336 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
337 self.name = ::std::option::Option::Some(input.into());
338 self
339 }
340 /// <p>The name you assign to this job definition. It must be unique in your account.</p>
341 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
342 self.name = input;
343 self
344 }
345 /// <p>The name you assign to this job definition. It must be unique in your account.</p>
346 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
347 &self.name
348 }
349 /// <p>A mode that describes how a job was created. Valid values are:</p>
350 /// <ul>
351 /// <li>
352 /// <p><code>SCRIPT</code> - The job was created using the Glue Studio script editor.</p></li>
353 /// <li>
354 /// <p><code>VISUAL</code> - The job was created using the Glue Studio visual editor.</p></li>
355 /// <li>
356 /// <p><code>NOTEBOOK</code> - The job was created using an interactive sessions notebook.</p></li>
357 /// </ul>
358 /// <p>When the <code>JobMode</code> field is missing or null, <code>SCRIPT</code> is assigned as the default value.</p>
359 pub fn job_mode(mut self, input: crate::types::JobMode) -> Self {
360 self.job_mode = ::std::option::Option::Some(input);
361 self
362 }
363 /// <p>A mode that describes how a job was created. Valid values are:</p>
364 /// <ul>
365 /// <li>
366 /// <p><code>SCRIPT</code> - The job was created using the Glue Studio script editor.</p></li>
367 /// <li>
368 /// <p><code>VISUAL</code> - The job was created using the Glue Studio visual editor.</p></li>
369 /// <li>
370 /// <p><code>NOTEBOOK</code> - The job was created using an interactive sessions notebook.</p></li>
371 /// </ul>
372 /// <p>When the <code>JobMode</code> field is missing or null, <code>SCRIPT</code> is assigned as the default value.</p>
373 pub fn set_job_mode(mut self, input: ::std::option::Option<crate::types::JobMode>) -> Self {
374 self.job_mode = input;
375 self
376 }
377 /// <p>A mode that describes how a job was created. Valid values are:</p>
378 /// <ul>
379 /// <li>
380 /// <p><code>SCRIPT</code> - The job was created using the Glue Studio script editor.</p></li>
381 /// <li>
382 /// <p><code>VISUAL</code> - The job was created using the Glue Studio visual editor.</p></li>
383 /// <li>
384 /// <p><code>NOTEBOOK</code> - The job was created using an interactive sessions notebook.</p></li>
385 /// </ul>
386 /// <p>When the <code>JobMode</code> field is missing or null, <code>SCRIPT</code> is assigned as the default value.</p>
387 pub fn get_job_mode(&self) -> &::std::option::Option<crate::types::JobMode> {
388 &self.job_mode
389 }
390 /// <p>Specifies whether job run queuing is enabled for the job runs for this job.</p>
391 /// <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>
392 /// <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>
393 pub fn job_run_queuing_enabled(mut self, input: bool) -> Self {
394 self.job_run_queuing_enabled = ::std::option::Option::Some(input);
395 self
396 }
397 /// <p>Specifies whether job run queuing is enabled for the job runs for this job.</p>
398 /// <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>
399 /// <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>
400 pub fn set_job_run_queuing_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
401 self.job_run_queuing_enabled = input;
402 self
403 }
404 /// <p>Specifies whether job run queuing is enabled for the job runs for this job.</p>
405 /// <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>
406 /// <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>
407 pub fn get_job_run_queuing_enabled(&self) -> &::std::option::Option<bool> {
408 &self.job_run_queuing_enabled
409 }
410 /// <p>Description of the job being defined.</p>
411 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
412 self.description = ::std::option::Option::Some(input.into());
413 self
414 }
415 /// <p>Description of the job being defined.</p>
416 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
417 self.description = input;
418 self
419 }
420 /// <p>Description of the job being defined.</p>
421 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
422 &self.description
423 }
424 /// <p>This field is reserved for future use.</p>
425 pub fn log_uri(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
426 self.log_uri = ::std::option::Option::Some(input.into());
427 self
428 }
429 /// <p>This field is reserved for future use.</p>
430 pub fn set_log_uri(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
431 self.log_uri = input;
432 self
433 }
434 /// <p>This field is reserved for future use.</p>
435 pub fn get_log_uri(&self) -> &::std::option::Option<::std::string::String> {
436 &self.log_uri
437 }
438 /// <p>The name or Amazon Resource Name (ARN) of the IAM role associated with this job.</p>
439 /// This field is required.
440 pub fn role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
441 self.role = ::std::option::Option::Some(input.into());
442 self
443 }
444 /// <p>The name or Amazon Resource Name (ARN) of the IAM role associated with this job.</p>
445 pub fn set_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
446 self.role = input;
447 self
448 }
449 /// <p>The name or Amazon Resource Name (ARN) of the IAM role associated with this job.</p>
450 pub fn get_role(&self) -> &::std::option::Option<::std::string::String> {
451 &self.role
452 }
453 /// <p>An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.</p>
454 pub fn execution_property(mut self, input: crate::types::ExecutionProperty) -> Self {
455 self.execution_property = ::std::option::Option::Some(input);
456 self
457 }
458 /// <p>An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.</p>
459 pub fn set_execution_property(mut self, input: ::std::option::Option<crate::types::ExecutionProperty>) -> Self {
460 self.execution_property = input;
461 self
462 }
463 /// <p>An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.</p>
464 pub fn get_execution_property(&self) -> &::std::option::Option<crate::types::ExecutionProperty> {
465 &self.execution_property
466 }
467 /// <p>The <code>JobCommand</code> that runs this job.</p>
468 /// This field is required.
469 pub fn command(mut self, input: crate::types::JobCommand) -> Self {
470 self.command = ::std::option::Option::Some(input);
471 self
472 }
473 /// <p>The <code>JobCommand</code> that runs this job.</p>
474 pub fn set_command(mut self, input: ::std::option::Option<crate::types::JobCommand>) -> Self {
475 self.command = input;
476 self
477 }
478 /// <p>The <code>JobCommand</code> that runs this job.</p>
479 pub fn get_command(&self) -> &::std::option::Option<crate::types::JobCommand> {
480 &self.command
481 }
482 /// Adds a key-value pair to `default_arguments`.
483 ///
484 /// To override the contents of this collection use [`set_default_arguments`](Self::set_default_arguments).
485 ///
486 /// <p>The default arguments for every run of this job, specified as name-value pairs.</p>
487 /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
488 /// <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>
489 /// <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>
490 /// <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>
491 /// <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>
492 pub fn default_arguments(
493 mut self,
494 k: impl ::std::convert::Into<::std::string::String>,
495 v: impl ::std::convert::Into<::std::string::String>,
496 ) -> Self {
497 let mut hash_map = self.default_arguments.unwrap_or_default();
498 hash_map.insert(k.into(), v.into());
499 self.default_arguments = ::std::option::Option::Some(hash_map);
500 self
501 }
502 /// <p>The default arguments for every run of this job, specified as name-value pairs.</p>
503 /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
504 /// <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>
505 /// <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>
506 /// <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>
507 /// <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>
508 pub fn set_default_arguments(
509 mut self,
510 input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
511 ) -> Self {
512 self.default_arguments = input;
513 self
514 }
515 /// <p>The default arguments for every run of this job, specified as name-value pairs.</p>
516 /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
517 /// <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>
518 /// <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>
519 /// <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>
520 /// <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>
521 pub fn get_default_arguments(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
522 &self.default_arguments
523 }
524 /// Adds a key-value pair to `non_overridable_arguments`.
525 ///
526 /// To override the contents of this collection use [`set_non_overridable_arguments`](Self::set_non_overridable_arguments).
527 ///
528 /// <p>Arguments for this job that are not overridden when providing job arguments in a job run, specified as name-value pairs.</p>
529 pub fn non_overridable_arguments(
530 mut self,
531 k: impl ::std::convert::Into<::std::string::String>,
532 v: impl ::std::convert::Into<::std::string::String>,
533 ) -> Self {
534 let mut hash_map = self.non_overridable_arguments.unwrap_or_default();
535 hash_map.insert(k.into(), v.into());
536 self.non_overridable_arguments = ::std::option::Option::Some(hash_map);
537 self
538 }
539 /// <p>Arguments for this job that are not overridden when providing job arguments in a job run, specified as name-value pairs.</p>
540 pub fn set_non_overridable_arguments(
541 mut self,
542 input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
543 ) -> Self {
544 self.non_overridable_arguments = input;
545 self
546 }
547 /// <p>Arguments for this job that are not overridden when providing job arguments in a job run, specified as name-value pairs.</p>
548 pub fn get_non_overridable_arguments(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
549 &self.non_overridable_arguments
550 }
551 /// <p>The connections used for this job.</p>
552 pub fn connections(mut self, input: crate::types::ConnectionsList) -> Self {
553 self.connections = ::std::option::Option::Some(input);
554 self
555 }
556 /// <p>The connections used for this job.</p>
557 pub fn set_connections(mut self, input: ::std::option::Option<crate::types::ConnectionsList>) -> Self {
558 self.connections = input;
559 self
560 }
561 /// <p>The connections used for this job.</p>
562 pub fn get_connections(&self) -> &::std::option::Option<crate::types::ConnectionsList> {
563 &self.connections
564 }
565 /// <p>The maximum number of times to retry this job if it fails.</p>
566 pub fn max_retries(mut self, input: i32) -> Self {
567 self.max_retries = ::std::option::Option::Some(input);
568 self
569 }
570 /// <p>The maximum number of times to retry this job if it fails.</p>
571 pub fn set_max_retries(mut self, input: ::std::option::Option<i32>) -> Self {
572 self.max_retries = input;
573 self
574 }
575 /// <p>The maximum number of times to retry this job if it fails.</p>
576 pub fn get_max_retries(&self) -> &::std::option::Option<i32> {
577 &self.max_retries
578 }
579 /// <p>This parameter is deprecated. Use <code>MaxCapacity</code> instead.</p>
580 /// <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>
581 #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
582 pub fn allocated_capacity(mut self, input: i32) -> Self {
583 self.allocated_capacity = ::std::option::Option::Some(input);
584 self
585 }
586 /// <p>This parameter is deprecated. Use <code>MaxCapacity</code> instead.</p>
587 /// <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>
588 #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
589 pub fn set_allocated_capacity(mut self, input: ::std::option::Option<i32>) -> Self {
590 self.allocated_capacity = input;
591 self
592 }
593 /// <p>This parameter is deprecated. Use <code>MaxCapacity</code> instead.</p>
594 /// <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>
595 #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
596 pub fn get_allocated_capacity(&self) -> &::std::option::Option<i32> {
597 &self.allocated_capacity
598 }
599 /// <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>
600 /// <p>Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.</p>
601 /// <p>When the value is left blank, the timeout is defaulted to 2880 minutes.</p>
602 /// <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>
603 /// <p>For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.</p>
604 pub fn timeout(mut self, input: i32) -> Self {
605 self.timeout = ::std::option::Option::Some(input);
606 self
607 }
608 /// <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>
609 /// <p>Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.</p>
610 /// <p>When the value is left blank, the timeout is defaulted to 2880 minutes.</p>
611 /// <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>
612 /// <p>For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.</p>
613 pub fn set_timeout(mut self, input: ::std::option::Option<i32>) -> Self {
614 self.timeout = input;
615 self
616 }
617 /// <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>
618 /// <p>Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.</p>
619 /// <p>When the value is left blank, the timeout is defaulted to 2880 minutes.</p>
620 /// <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>
621 /// <p>For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.</p>
622 pub fn get_timeout(&self) -> &::std::option::Option<i32> {
623 &self.timeout
624 }
625 /// <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>
626 /// <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>
627 /// <p>Do not set <code>MaxCapacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
628 /// <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>
629 /// <ul>
630 /// <li>
631 /// <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>
632 /// <li>
633 /// <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>
634 /// </ul>
635 pub fn max_capacity(mut self, input: f64) -> Self {
636 self.max_capacity = ::std::option::Option::Some(input);
637 self
638 }
639 /// <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>
640 /// <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>
641 /// <p>Do not set <code>MaxCapacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
642 /// <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>
643 /// <ul>
644 /// <li>
645 /// <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>
646 /// <li>
647 /// <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>
648 /// </ul>
649 pub fn set_max_capacity(mut self, input: ::std::option::Option<f64>) -> Self {
650 self.max_capacity = input;
651 self
652 }
653 /// <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>
654 /// <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>
655 /// <p>Do not set <code>MaxCapacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
656 /// <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>
657 /// <ul>
658 /// <li>
659 /// <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>
660 /// <li>
661 /// <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>
662 /// </ul>
663 pub fn get_max_capacity(&self) -> &::std::option::Option<f64> {
664 &self.max_capacity
665 }
666 /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job.</p>
667 pub fn security_configuration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
668 self.security_configuration = ::std::option::Option::Some(input.into());
669 self
670 }
671 /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job.</p>
672 pub fn set_security_configuration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
673 self.security_configuration = input;
674 self
675 }
676 /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job.</p>
677 pub fn get_security_configuration(&self) -> &::std::option::Option<::std::string::String> {
678 &self.security_configuration
679 }
680 /// Adds a key-value pair to `tags`.
681 ///
682 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
683 ///
684 /// <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>
685 pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
686 let mut hash_map = self.tags.unwrap_or_default();
687 hash_map.insert(k.into(), v.into());
688 self.tags = ::std::option::Option::Some(hash_map);
689 self
690 }
691 /// <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>
692 pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
693 self.tags = input;
694 self
695 }
696 /// <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>
697 pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
698 &self.tags
699 }
700 /// <p>Specifies configuration properties of a job notification.</p>
701 pub fn notification_property(mut self, input: crate::types::NotificationProperty) -> Self {
702 self.notification_property = ::std::option::Option::Some(input);
703 self
704 }
705 /// <p>Specifies configuration properties of a job notification.</p>
706 pub fn set_notification_property(mut self, input: ::std::option::Option<crate::types::NotificationProperty>) -> Self {
707 self.notification_property = input;
708 self
709 }
710 /// <p>Specifies configuration properties of a job notification.</p>
711 pub fn get_notification_property(&self) -> &::std::option::Option<crate::types::NotificationProperty> {
712 &self.notification_property
713 }
714 /// <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>
715 /// <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>
716 /// <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>
717 /// <p>Jobs that are created without specifying a Glue version default to Glue 0.9.</p>
718 pub fn glue_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
719 self.glue_version = ::std::option::Option::Some(input.into());
720 self
721 }
722 /// <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>
723 /// <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>
724 /// <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>
725 /// <p>Jobs that are created without specifying a Glue version default to Glue 0.9.</p>
726 pub fn set_glue_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
727 self.glue_version = input;
728 self
729 }
730 /// <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>
731 /// <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>
732 /// <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>
733 /// <p>Jobs that are created without specifying a Glue version default to Glue 0.9.</p>
734 pub fn get_glue_version(&self) -> &::std::option::Option<::std::string::String> {
735 &self.glue_version
736 }
737 /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
738 pub fn number_of_workers(mut self, input: i32) -> Self {
739 self.number_of_workers = ::std::option::Option::Some(input);
740 self
741 }
742 /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
743 pub fn set_number_of_workers(mut self, input: ::std::option::Option<i32>) -> Self {
744 self.number_of_workers = input;
745 self
746 }
747 /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
748 pub fn get_number_of_workers(&self) -> &::std::option::Option<i32> {
749 &self.number_of_workers
750 }
751 /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.</p>
752 /// <ul>
753 /// <li>
754 /// <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>
755 /// <li>
756 /// <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>
757 /// <li>
758 /// <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 the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Mumbai), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), Europe (London), Europe (Spain), Europe (Stockholm), and South America (São Paulo).</p></li>
759 /// <li>
760 /// <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 the same Amazon Web Services Regions as supported for the <code>G.4X</code> worker type.</p></li>
761 /// <li>
762 /// <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>
763 /// <li>
764 /// <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>
765 /// </ul>
766 pub fn worker_type(mut self, input: crate::types::WorkerType) -> Self {
767 self.worker_type = ::std::option::Option::Some(input);
768 self
769 }
770 /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.</p>
771 /// <ul>
772 /// <li>
773 /// <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>
774 /// <li>
775 /// <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>
776 /// <li>
777 /// <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 the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Mumbai), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), Europe (London), Europe (Spain), Europe (Stockholm), and South America (São Paulo).</p></li>
778 /// <li>
779 /// <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 the same Amazon Web Services Regions as supported for the <code>G.4X</code> worker type.</p></li>
780 /// <li>
781 /// <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>
782 /// <li>
783 /// <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>
784 /// </ul>
785 pub fn set_worker_type(mut self, input: ::std::option::Option<crate::types::WorkerType>) -> Self {
786 self.worker_type = input;
787 self
788 }
789 /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.</p>
790 /// <ul>
791 /// <li>
792 /// <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>
793 /// <li>
794 /// <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>
795 /// <li>
796 /// <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 the following Amazon Web Services Regions: US East (Ohio), US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Mumbai), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), Europe (London), Europe (Spain), Europe (Stockholm), and South America (São Paulo).</p></li>
797 /// <li>
798 /// <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 the same Amazon Web Services Regions as supported for the <code>G.4X</code> worker type.</p></li>
799 /// <li>
800 /// <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>
801 /// <li>
802 /// <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>
803 /// </ul>
804 pub fn get_worker_type(&self) -> &::std::option::Option<crate::types::WorkerType> {
805 &self.worker_type
806 }
807 /// Adds a key-value pair to `code_gen_configuration_nodes`.
808 ///
809 /// To override the contents of this collection use [`set_code_gen_configuration_nodes`](Self::set_code_gen_configuration_nodes).
810 ///
811 /// <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
812 pub fn code_gen_configuration_nodes(
813 mut self,
814 k: impl ::std::convert::Into<::std::string::String>,
815 v: crate::types::CodeGenConfigurationNode,
816 ) -> Self {
817 let mut hash_map = self.code_gen_configuration_nodes.unwrap_or_default();
818 hash_map.insert(k.into(), v);
819 self.code_gen_configuration_nodes = ::std::option::Option::Some(hash_map);
820 self
821 }
822 /// <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
823 pub fn set_code_gen_configuration_nodes(
824 mut self,
825 input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::CodeGenConfigurationNode>>,
826 ) -> Self {
827 self.code_gen_configuration_nodes = input;
828 self
829 }
830 /// <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
831 pub fn get_code_gen_configuration_nodes(
832 &self,
833 ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::CodeGenConfigurationNode>> {
834 &self.code_gen_configuration_nodes
835 }
836 /// <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>
837 /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.</p>
838 /// <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>
839 pub fn execution_class(mut self, input: crate::types::ExecutionClass) -> Self {
840 self.execution_class = ::std::option::Option::Some(input);
841 self
842 }
843 /// <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>
844 /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.</p>
845 /// <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>
846 pub fn set_execution_class(mut self, input: ::std::option::Option<crate::types::ExecutionClass>) -> Self {
847 self.execution_class = input;
848 self
849 }
850 /// <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>
851 /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.</p>
852 /// <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>
853 pub fn get_execution_class(&self) -> &::std::option::Option<crate::types::ExecutionClass> {
854 &self.execution_class
855 }
856 /// <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
857 pub fn source_control_details(mut self, input: crate::types::SourceControlDetails) -> Self {
858 self.source_control_details = ::std::option::Option::Some(input);
859 self
860 }
861 /// <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
862 pub fn set_source_control_details(mut self, input: ::std::option::Option<crate::types::SourceControlDetails>) -> Self {
863 self.source_control_details = input;
864 self
865 }
866 /// <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
867 pub fn get_source_control_details(&self) -> &::std::option::Option<crate::types::SourceControlDetails> {
868 &self.source_control_details
869 }
870 /// <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>
871 /// <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>
872 pub fn maintenance_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
873 self.maintenance_window = ::std::option::Option::Some(input.into());
874 self
875 }
876 /// <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>
877 /// <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>
878 pub fn set_maintenance_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
879 self.maintenance_window = input;
880 self
881 }
882 /// <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>
883 /// <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>
884 pub fn get_maintenance_window(&self) -> &::std::option::Option<::std::string::String> {
885 &self.maintenance_window
886 }
887 /// Consumes the builder and constructs a [`CreateJobInput`](crate::operation::create_job::CreateJobInput).
888 pub fn build(self) -> ::std::result::Result<crate::operation::create_job::CreateJobInput, ::aws_smithy_types::error::operation::BuildError> {
889 ::std::result::Result::Ok(crate::operation::create_job::CreateJobInput {
890 name: self.name,
891 job_mode: self.job_mode,
892 job_run_queuing_enabled: self.job_run_queuing_enabled,
893 description: self.description,
894 log_uri: self.log_uri,
895 role: self.role,
896 execution_property: self.execution_property,
897 command: self.command,
898 default_arguments: self.default_arguments,
899 non_overridable_arguments: self.non_overridable_arguments,
900 connections: self.connections,
901 max_retries: self.max_retries,
902 allocated_capacity: self.allocated_capacity,
903 timeout: self.timeout,
904 max_capacity: self.max_capacity,
905 security_configuration: self.security_configuration,
906 tags: self.tags,
907 notification_property: self.notification_property,
908 glue_version: self.glue_version,
909 number_of_workers: self.number_of_workers,
910 worker_type: self.worker_type,
911 code_gen_configuration_nodes: self.code_gen_configuration_nodes,
912 execution_class: self.execution_class,
913 source_control_details: self.source_control_details,
914 maintenance_window: self.maintenance_window,
915 })
916 }
917}
918impl ::std::fmt::Debug for CreateJobInputBuilder {
919 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
920 let mut formatter = f.debug_struct("CreateJobInputBuilder");
921 formatter.field("name", &self.name);
922 formatter.field("job_mode", &self.job_mode);
923 formatter.field("job_run_queuing_enabled", &self.job_run_queuing_enabled);
924 formatter.field("description", &self.description);
925 formatter.field("log_uri", &self.log_uri);
926 formatter.field("role", &self.role);
927 formatter.field("execution_property", &self.execution_property);
928 formatter.field("command", &self.command);
929 formatter.field("default_arguments", &self.default_arguments);
930 formatter.field("non_overridable_arguments", &self.non_overridable_arguments);
931 formatter.field("connections", &self.connections);
932 formatter.field("max_retries", &self.max_retries);
933 formatter.field("allocated_capacity", &self.allocated_capacity);
934 formatter.field("timeout", &self.timeout);
935 formatter.field("max_capacity", &self.max_capacity);
936 formatter.field("security_configuration", &self.security_configuration);
937 formatter.field("tags", &self.tags);
938 formatter.field("notification_property", &self.notification_property);
939 formatter.field("glue_version", &self.glue_version);
940 formatter.field("number_of_workers", &self.number_of_workers);
941 formatter.field("worker_type", &self.worker_type);
942 formatter.field("code_gen_configuration_nodes", &"*** Sensitive Data Redacted ***");
943 formatter.field("execution_class", &self.execution_class);
944 formatter.field("source_control_details", &self.source_control_details);
945 formatter.field("maintenance_window", &self.maintenance_window);
946 formatter.finish()
947 }
948}