aws_sdk_databrew/operation/describe_job/
_describe_job_output.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, ::std::fmt::Debug)]
5pub struct DescribeJobOutput {
6    /// <p>The date and time that the job was created.</p>
7    pub create_date: ::std::option::Option<::aws_smithy_types::DateTime>,
8    /// <p>The identifier (user name) of the user associated with the creation of the job.</p>
9    pub created_by: ::std::option::Option<::std::string::String>,
10    /// <p>The dataset that the job acts upon.</p>
11    pub dataset_name: ::std::option::Option<::std::string::String>,
12    /// <p>The Amazon Resource Name (ARN) of an encryption key that is used to protect the job.</p>
13    pub encryption_key_arn: ::std::option::Option<::std::string::String>,
14    /// <p>The encryption mode for the job, which can be one of the following:</p>
15    /// <ul>
16    /// <li>
17    /// <p><code>SSE-KMS</code> - Server-side encryption with keys managed by KMS.</p></li>
18    /// <li>
19    /// <p><code>SSE-S3</code> - Server-side encryption with keys managed by Amazon S3.</p></li>
20    /// </ul>
21    pub encryption_mode: ::std::option::Option<crate::types::EncryptionMode>,
22    /// <p>The name of the job.</p>
23    pub name: ::std::string::String,
24    /// <p>The job type, which must be one of the following:</p>
25    /// <ul>
26    /// <li>
27    /// <p><code>PROFILE</code> - The job analyzes the dataset to determine its size, data types, data distribution, and more.</p></li>
28    /// <li>
29    /// <p><code>RECIPE</code> - The job applies one or more transformations to a dataset.</p></li>
30    /// </ul>
31    pub r#type: ::std::option::Option<crate::types::JobType>,
32    /// <p>The identifier (user name) of the user who last modified the job.</p>
33    pub last_modified_by: ::std::option::Option<::std::string::String>,
34    /// <p>The date and time that the job was last modified.</p>
35    pub last_modified_date: ::std::option::Option<::aws_smithy_types::DateTime>,
36    /// <p>Indicates whether Amazon CloudWatch logging is enabled for this job.</p>
37    pub log_subscription: ::std::option::Option<crate::types::LogSubscription>,
38    /// <p>The maximum number of compute nodes that DataBrew can consume when the job processes data.</p>
39    pub max_capacity: i32,
40    /// <p>The maximum number of times to retry the job after a job run fails.</p>
41    pub max_retries: i32,
42    /// <p>One or more artifacts that represent the output from running the job.</p>
43    pub outputs: ::std::option::Option<::std::vec::Vec<crate::types::Output>>,
44    /// <p>One or more artifacts that represent the Glue Data Catalog output from running the job.</p>
45    pub data_catalog_outputs: ::std::option::Option<::std::vec::Vec<crate::types::DataCatalogOutput>>,
46    /// <p>Represents a list of JDBC database output objects which defines the output destination for a DataBrew recipe job to write into.</p>
47    pub database_outputs: ::std::option::Option<::std::vec::Vec<crate::types::DatabaseOutput>>,
48    /// <p>The DataBrew project associated with this job.</p>
49    pub project_name: ::std::option::Option<::std::string::String>,
50    /// <p>Configuration for profile jobs. Used to select columns, do evaluations, and override default parameters of evaluations. When configuration is null, the profile job will run with default settings.</p>
51    pub profile_configuration: ::std::option::Option<crate::types::ProfileConfiguration>,
52    /// <p>List of validation configurations that are applied to the profile job.</p>
53    pub validation_configurations: ::std::option::Option<::std::vec::Vec<crate::types::ValidationConfiguration>>,
54    /// <p>Represents the name and version of a DataBrew recipe.</p>
55    pub recipe_reference: ::std::option::Option<crate::types::RecipeReference>,
56    /// <p>The Amazon Resource Name (ARN) of the job.</p>
57    pub resource_arn: ::std::option::Option<::std::string::String>,
58    /// <p>The ARN of the Identity and Access Management (IAM) role to be assumed when DataBrew runs the job.</p>
59    pub role_arn: ::std::option::Option<::std::string::String>,
60    /// <p>Metadata tags associated with this job.</p>
61    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
62    /// <p>The job's timeout in minutes. A job that attempts to run longer than this timeout period ends with a status of <code>TIMEOUT</code>.</p>
63    pub timeout: i32,
64    /// <p>Sample configuration for profile jobs only. Determines the number of rows on which the profile job will be executed.</p>
65    pub job_sample: ::std::option::Option<crate::types::JobSample>,
66    _request_id: Option<String>,
67}
68impl DescribeJobOutput {
69    /// <p>The date and time that the job was created.</p>
70    pub fn create_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
71        self.create_date.as_ref()
72    }
73    /// <p>The identifier (user name) of the user associated with the creation of the job.</p>
74    pub fn created_by(&self) -> ::std::option::Option<&str> {
75        self.created_by.as_deref()
76    }
77    /// <p>The dataset that the job acts upon.</p>
78    pub fn dataset_name(&self) -> ::std::option::Option<&str> {
79        self.dataset_name.as_deref()
80    }
81    /// <p>The Amazon Resource Name (ARN) of an encryption key that is used to protect the job.</p>
82    pub fn encryption_key_arn(&self) -> ::std::option::Option<&str> {
83        self.encryption_key_arn.as_deref()
84    }
85    /// <p>The encryption mode for the job, which can be one of the following:</p>
86    /// <ul>
87    /// <li>
88    /// <p><code>SSE-KMS</code> - Server-side encryption with keys managed by KMS.</p></li>
89    /// <li>
90    /// <p><code>SSE-S3</code> - Server-side encryption with keys managed by Amazon S3.</p></li>
91    /// </ul>
92    pub fn encryption_mode(&self) -> ::std::option::Option<&crate::types::EncryptionMode> {
93        self.encryption_mode.as_ref()
94    }
95    /// <p>The name of the job.</p>
96    pub fn name(&self) -> &str {
97        use std::ops::Deref;
98        self.name.deref()
99    }
100    /// <p>The job type, which must be one of the following:</p>
101    /// <ul>
102    /// <li>
103    /// <p><code>PROFILE</code> - The job analyzes the dataset to determine its size, data types, data distribution, and more.</p></li>
104    /// <li>
105    /// <p><code>RECIPE</code> - The job applies one or more transformations to a dataset.</p></li>
106    /// </ul>
107    pub fn r#type(&self) -> ::std::option::Option<&crate::types::JobType> {
108        self.r#type.as_ref()
109    }
110    /// <p>The identifier (user name) of the user who last modified the job.</p>
111    pub fn last_modified_by(&self) -> ::std::option::Option<&str> {
112        self.last_modified_by.as_deref()
113    }
114    /// <p>The date and time that the job was last modified.</p>
115    pub fn last_modified_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
116        self.last_modified_date.as_ref()
117    }
118    /// <p>Indicates whether Amazon CloudWatch logging is enabled for this job.</p>
119    pub fn log_subscription(&self) -> ::std::option::Option<&crate::types::LogSubscription> {
120        self.log_subscription.as_ref()
121    }
122    /// <p>The maximum number of compute nodes that DataBrew can consume when the job processes data.</p>
123    pub fn max_capacity(&self) -> i32 {
124        self.max_capacity
125    }
126    /// <p>The maximum number of times to retry the job after a job run fails.</p>
127    pub fn max_retries(&self) -> i32 {
128        self.max_retries
129    }
130    /// <p>One or more artifacts that represent the output from running the job.</p>
131    ///
132    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.outputs.is_none()`.
133    pub fn outputs(&self) -> &[crate::types::Output] {
134        self.outputs.as_deref().unwrap_or_default()
135    }
136    /// <p>One or more artifacts that represent the Glue Data Catalog output from running the job.</p>
137    ///
138    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.data_catalog_outputs.is_none()`.
139    pub fn data_catalog_outputs(&self) -> &[crate::types::DataCatalogOutput] {
140        self.data_catalog_outputs.as_deref().unwrap_or_default()
141    }
142    /// <p>Represents a list of JDBC database output objects which defines the output destination for a DataBrew recipe job to write into.</p>
143    ///
144    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.database_outputs.is_none()`.
145    pub fn database_outputs(&self) -> &[crate::types::DatabaseOutput] {
146        self.database_outputs.as_deref().unwrap_or_default()
147    }
148    /// <p>The DataBrew project associated with this job.</p>
149    pub fn project_name(&self) -> ::std::option::Option<&str> {
150        self.project_name.as_deref()
151    }
152    /// <p>Configuration for profile jobs. Used to select columns, do evaluations, and override default parameters of evaluations. When configuration is null, the profile job will run with default settings.</p>
153    pub fn profile_configuration(&self) -> ::std::option::Option<&crate::types::ProfileConfiguration> {
154        self.profile_configuration.as_ref()
155    }
156    /// <p>List of validation configurations that are applied to the profile job.</p>
157    ///
158    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.validation_configurations.is_none()`.
159    pub fn validation_configurations(&self) -> &[crate::types::ValidationConfiguration] {
160        self.validation_configurations.as_deref().unwrap_or_default()
161    }
162    /// <p>Represents the name and version of a DataBrew recipe.</p>
163    pub fn recipe_reference(&self) -> ::std::option::Option<&crate::types::RecipeReference> {
164        self.recipe_reference.as_ref()
165    }
166    /// <p>The Amazon Resource Name (ARN) of the job.</p>
167    pub fn resource_arn(&self) -> ::std::option::Option<&str> {
168        self.resource_arn.as_deref()
169    }
170    /// <p>The ARN of the Identity and Access Management (IAM) role to be assumed when DataBrew runs the job.</p>
171    pub fn role_arn(&self) -> ::std::option::Option<&str> {
172        self.role_arn.as_deref()
173    }
174    /// <p>Metadata tags associated with this job.</p>
175    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
176        self.tags.as_ref()
177    }
178    /// <p>The job's timeout in minutes. A job that attempts to run longer than this timeout period ends with a status of <code>TIMEOUT</code>.</p>
179    pub fn timeout(&self) -> i32 {
180        self.timeout
181    }
182    /// <p>Sample configuration for profile jobs only. Determines the number of rows on which the profile job will be executed.</p>
183    pub fn job_sample(&self) -> ::std::option::Option<&crate::types::JobSample> {
184        self.job_sample.as_ref()
185    }
186}
187impl ::aws_types::request_id::RequestId for DescribeJobOutput {
188    fn request_id(&self) -> Option<&str> {
189        self._request_id.as_deref()
190    }
191}
192impl DescribeJobOutput {
193    /// Creates a new builder-style object to manufacture [`DescribeJobOutput`](crate::operation::describe_job::DescribeJobOutput).
194    pub fn builder() -> crate::operation::describe_job::builders::DescribeJobOutputBuilder {
195        crate::operation::describe_job::builders::DescribeJobOutputBuilder::default()
196    }
197}
198
199/// A builder for [`DescribeJobOutput`](crate::operation::describe_job::DescribeJobOutput).
200#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
201#[non_exhaustive]
202pub struct DescribeJobOutputBuilder {
203    pub(crate) create_date: ::std::option::Option<::aws_smithy_types::DateTime>,
204    pub(crate) created_by: ::std::option::Option<::std::string::String>,
205    pub(crate) dataset_name: ::std::option::Option<::std::string::String>,
206    pub(crate) encryption_key_arn: ::std::option::Option<::std::string::String>,
207    pub(crate) encryption_mode: ::std::option::Option<crate::types::EncryptionMode>,
208    pub(crate) name: ::std::option::Option<::std::string::String>,
209    pub(crate) r#type: ::std::option::Option<crate::types::JobType>,
210    pub(crate) last_modified_by: ::std::option::Option<::std::string::String>,
211    pub(crate) last_modified_date: ::std::option::Option<::aws_smithy_types::DateTime>,
212    pub(crate) log_subscription: ::std::option::Option<crate::types::LogSubscription>,
213    pub(crate) max_capacity: ::std::option::Option<i32>,
214    pub(crate) max_retries: ::std::option::Option<i32>,
215    pub(crate) outputs: ::std::option::Option<::std::vec::Vec<crate::types::Output>>,
216    pub(crate) data_catalog_outputs: ::std::option::Option<::std::vec::Vec<crate::types::DataCatalogOutput>>,
217    pub(crate) database_outputs: ::std::option::Option<::std::vec::Vec<crate::types::DatabaseOutput>>,
218    pub(crate) project_name: ::std::option::Option<::std::string::String>,
219    pub(crate) profile_configuration: ::std::option::Option<crate::types::ProfileConfiguration>,
220    pub(crate) validation_configurations: ::std::option::Option<::std::vec::Vec<crate::types::ValidationConfiguration>>,
221    pub(crate) recipe_reference: ::std::option::Option<crate::types::RecipeReference>,
222    pub(crate) resource_arn: ::std::option::Option<::std::string::String>,
223    pub(crate) role_arn: ::std::option::Option<::std::string::String>,
224    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
225    pub(crate) timeout: ::std::option::Option<i32>,
226    pub(crate) job_sample: ::std::option::Option<crate::types::JobSample>,
227    _request_id: Option<String>,
228}
229impl DescribeJobOutputBuilder {
230    /// <p>The date and time that the job was created.</p>
231    pub fn create_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
232        self.create_date = ::std::option::Option::Some(input);
233        self
234    }
235    /// <p>The date and time that the job was created.</p>
236    pub fn set_create_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
237        self.create_date = input;
238        self
239    }
240    /// <p>The date and time that the job was created.</p>
241    pub fn get_create_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
242        &self.create_date
243    }
244    /// <p>The identifier (user name) of the user associated with the creation of the job.</p>
245    pub fn created_by(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
246        self.created_by = ::std::option::Option::Some(input.into());
247        self
248    }
249    /// <p>The identifier (user name) of the user associated with the creation of the job.</p>
250    pub fn set_created_by(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
251        self.created_by = input;
252        self
253    }
254    /// <p>The identifier (user name) of the user associated with the creation of the job.</p>
255    pub fn get_created_by(&self) -> &::std::option::Option<::std::string::String> {
256        &self.created_by
257    }
258    /// <p>The dataset that the job acts upon.</p>
259    pub fn dataset_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
260        self.dataset_name = ::std::option::Option::Some(input.into());
261        self
262    }
263    /// <p>The dataset that the job acts upon.</p>
264    pub fn set_dataset_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
265        self.dataset_name = input;
266        self
267    }
268    /// <p>The dataset that the job acts upon.</p>
269    pub fn get_dataset_name(&self) -> &::std::option::Option<::std::string::String> {
270        &self.dataset_name
271    }
272    /// <p>The Amazon Resource Name (ARN) of an encryption key that is used to protect the job.</p>
273    pub fn encryption_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
274        self.encryption_key_arn = ::std::option::Option::Some(input.into());
275        self
276    }
277    /// <p>The Amazon Resource Name (ARN) of an encryption key that is used to protect the job.</p>
278    pub fn set_encryption_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
279        self.encryption_key_arn = input;
280        self
281    }
282    /// <p>The Amazon Resource Name (ARN) of an encryption key that is used to protect the job.</p>
283    pub fn get_encryption_key_arn(&self) -> &::std::option::Option<::std::string::String> {
284        &self.encryption_key_arn
285    }
286    /// <p>The encryption mode for the job, which can be one of the following:</p>
287    /// <ul>
288    /// <li>
289    /// <p><code>SSE-KMS</code> - Server-side encryption with keys managed by KMS.</p></li>
290    /// <li>
291    /// <p><code>SSE-S3</code> - Server-side encryption with keys managed by Amazon S3.</p></li>
292    /// </ul>
293    pub fn encryption_mode(mut self, input: crate::types::EncryptionMode) -> Self {
294        self.encryption_mode = ::std::option::Option::Some(input);
295        self
296    }
297    /// <p>The encryption mode for the job, which can be one of the following:</p>
298    /// <ul>
299    /// <li>
300    /// <p><code>SSE-KMS</code> - Server-side encryption with keys managed by KMS.</p></li>
301    /// <li>
302    /// <p><code>SSE-S3</code> - Server-side encryption with keys managed by Amazon S3.</p></li>
303    /// </ul>
304    pub fn set_encryption_mode(mut self, input: ::std::option::Option<crate::types::EncryptionMode>) -> Self {
305        self.encryption_mode = input;
306        self
307    }
308    /// <p>The encryption mode for the job, which can be one of the following:</p>
309    /// <ul>
310    /// <li>
311    /// <p><code>SSE-KMS</code> - Server-side encryption with keys managed by KMS.</p></li>
312    /// <li>
313    /// <p><code>SSE-S3</code> - Server-side encryption with keys managed by Amazon S3.</p></li>
314    /// </ul>
315    pub fn get_encryption_mode(&self) -> &::std::option::Option<crate::types::EncryptionMode> {
316        &self.encryption_mode
317    }
318    /// <p>The name of the job.</p>
319    /// This field is required.
320    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
321        self.name = ::std::option::Option::Some(input.into());
322        self
323    }
324    /// <p>The name of the job.</p>
325    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
326        self.name = input;
327        self
328    }
329    /// <p>The name of the job.</p>
330    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
331        &self.name
332    }
333    /// <p>The job type, which must be one of the following:</p>
334    /// <ul>
335    /// <li>
336    /// <p><code>PROFILE</code> - The job analyzes the dataset to determine its size, data types, data distribution, and more.</p></li>
337    /// <li>
338    /// <p><code>RECIPE</code> - The job applies one or more transformations to a dataset.</p></li>
339    /// </ul>
340    pub fn r#type(mut self, input: crate::types::JobType) -> Self {
341        self.r#type = ::std::option::Option::Some(input);
342        self
343    }
344    /// <p>The job type, which must be one of the following:</p>
345    /// <ul>
346    /// <li>
347    /// <p><code>PROFILE</code> - The job analyzes the dataset to determine its size, data types, data distribution, and more.</p></li>
348    /// <li>
349    /// <p><code>RECIPE</code> - The job applies one or more transformations to a dataset.</p></li>
350    /// </ul>
351    pub fn set_type(mut self, input: ::std::option::Option<crate::types::JobType>) -> Self {
352        self.r#type = input;
353        self
354    }
355    /// <p>The job type, which must be one of the following:</p>
356    /// <ul>
357    /// <li>
358    /// <p><code>PROFILE</code> - The job analyzes the dataset to determine its size, data types, data distribution, and more.</p></li>
359    /// <li>
360    /// <p><code>RECIPE</code> - The job applies one or more transformations to a dataset.</p></li>
361    /// </ul>
362    pub fn get_type(&self) -> &::std::option::Option<crate::types::JobType> {
363        &self.r#type
364    }
365    /// <p>The identifier (user name) of the user who last modified the job.</p>
366    pub fn last_modified_by(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
367        self.last_modified_by = ::std::option::Option::Some(input.into());
368        self
369    }
370    /// <p>The identifier (user name) of the user who last modified the job.</p>
371    pub fn set_last_modified_by(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
372        self.last_modified_by = input;
373        self
374    }
375    /// <p>The identifier (user name) of the user who last modified the job.</p>
376    pub fn get_last_modified_by(&self) -> &::std::option::Option<::std::string::String> {
377        &self.last_modified_by
378    }
379    /// <p>The date and time that the job was last modified.</p>
380    pub fn last_modified_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
381        self.last_modified_date = ::std::option::Option::Some(input);
382        self
383    }
384    /// <p>The date and time that the job was last modified.</p>
385    pub fn set_last_modified_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
386        self.last_modified_date = input;
387        self
388    }
389    /// <p>The date and time that the job was last modified.</p>
390    pub fn get_last_modified_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
391        &self.last_modified_date
392    }
393    /// <p>Indicates whether Amazon CloudWatch logging is enabled for this job.</p>
394    pub fn log_subscription(mut self, input: crate::types::LogSubscription) -> Self {
395        self.log_subscription = ::std::option::Option::Some(input);
396        self
397    }
398    /// <p>Indicates whether Amazon CloudWatch logging is enabled for this job.</p>
399    pub fn set_log_subscription(mut self, input: ::std::option::Option<crate::types::LogSubscription>) -> Self {
400        self.log_subscription = input;
401        self
402    }
403    /// <p>Indicates whether Amazon CloudWatch logging is enabled for this job.</p>
404    pub fn get_log_subscription(&self) -> &::std::option::Option<crate::types::LogSubscription> {
405        &self.log_subscription
406    }
407    /// <p>The maximum number of compute nodes that DataBrew can consume when the job processes data.</p>
408    pub fn max_capacity(mut self, input: i32) -> Self {
409        self.max_capacity = ::std::option::Option::Some(input);
410        self
411    }
412    /// <p>The maximum number of compute nodes that DataBrew can consume when the job processes data.</p>
413    pub fn set_max_capacity(mut self, input: ::std::option::Option<i32>) -> Self {
414        self.max_capacity = input;
415        self
416    }
417    /// <p>The maximum number of compute nodes that DataBrew can consume when the job processes data.</p>
418    pub fn get_max_capacity(&self) -> &::std::option::Option<i32> {
419        &self.max_capacity
420    }
421    /// <p>The maximum number of times to retry the job after a job run fails.</p>
422    pub fn max_retries(mut self, input: i32) -> Self {
423        self.max_retries = ::std::option::Option::Some(input);
424        self
425    }
426    /// <p>The maximum number of times to retry the job after a job run fails.</p>
427    pub fn set_max_retries(mut self, input: ::std::option::Option<i32>) -> Self {
428        self.max_retries = input;
429        self
430    }
431    /// <p>The maximum number of times to retry the job after a job run fails.</p>
432    pub fn get_max_retries(&self) -> &::std::option::Option<i32> {
433        &self.max_retries
434    }
435    /// Appends an item to `outputs`.
436    ///
437    /// To override the contents of this collection use [`set_outputs`](Self::set_outputs).
438    ///
439    /// <p>One or more artifacts that represent the output from running the job.</p>
440    pub fn outputs(mut self, input: crate::types::Output) -> Self {
441        let mut v = self.outputs.unwrap_or_default();
442        v.push(input);
443        self.outputs = ::std::option::Option::Some(v);
444        self
445    }
446    /// <p>One or more artifacts that represent the output from running the job.</p>
447    pub fn set_outputs(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Output>>) -> Self {
448        self.outputs = input;
449        self
450    }
451    /// <p>One or more artifacts that represent the output from running the job.</p>
452    pub fn get_outputs(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Output>> {
453        &self.outputs
454    }
455    /// Appends an item to `data_catalog_outputs`.
456    ///
457    /// To override the contents of this collection use [`set_data_catalog_outputs`](Self::set_data_catalog_outputs).
458    ///
459    /// <p>One or more artifacts that represent the Glue Data Catalog output from running the job.</p>
460    pub fn data_catalog_outputs(mut self, input: crate::types::DataCatalogOutput) -> Self {
461        let mut v = self.data_catalog_outputs.unwrap_or_default();
462        v.push(input);
463        self.data_catalog_outputs = ::std::option::Option::Some(v);
464        self
465    }
466    /// <p>One or more artifacts that represent the Glue Data Catalog output from running the job.</p>
467    pub fn set_data_catalog_outputs(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DataCatalogOutput>>) -> Self {
468        self.data_catalog_outputs = input;
469        self
470    }
471    /// <p>One or more artifacts that represent the Glue Data Catalog output from running the job.</p>
472    pub fn get_data_catalog_outputs(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DataCatalogOutput>> {
473        &self.data_catalog_outputs
474    }
475    /// Appends an item to `database_outputs`.
476    ///
477    /// To override the contents of this collection use [`set_database_outputs`](Self::set_database_outputs).
478    ///
479    /// <p>Represents a list of JDBC database output objects which defines the output destination for a DataBrew recipe job to write into.</p>
480    pub fn database_outputs(mut self, input: crate::types::DatabaseOutput) -> Self {
481        let mut v = self.database_outputs.unwrap_or_default();
482        v.push(input);
483        self.database_outputs = ::std::option::Option::Some(v);
484        self
485    }
486    /// <p>Represents a list of JDBC database output objects which defines the output destination for a DataBrew recipe job to write into.</p>
487    pub fn set_database_outputs(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DatabaseOutput>>) -> Self {
488        self.database_outputs = input;
489        self
490    }
491    /// <p>Represents a list of JDBC database output objects which defines the output destination for a DataBrew recipe job to write into.</p>
492    pub fn get_database_outputs(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DatabaseOutput>> {
493        &self.database_outputs
494    }
495    /// <p>The DataBrew project associated with this job.</p>
496    pub fn project_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
497        self.project_name = ::std::option::Option::Some(input.into());
498        self
499    }
500    /// <p>The DataBrew project associated with this job.</p>
501    pub fn set_project_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
502        self.project_name = input;
503        self
504    }
505    /// <p>The DataBrew project associated with this job.</p>
506    pub fn get_project_name(&self) -> &::std::option::Option<::std::string::String> {
507        &self.project_name
508    }
509    /// <p>Configuration for profile jobs. Used to select columns, do evaluations, and override default parameters of evaluations. When configuration is null, the profile job will run with default settings.</p>
510    pub fn profile_configuration(mut self, input: crate::types::ProfileConfiguration) -> Self {
511        self.profile_configuration = ::std::option::Option::Some(input);
512        self
513    }
514    /// <p>Configuration for profile jobs. Used to select columns, do evaluations, and override default parameters of evaluations. When configuration is null, the profile job will run with default settings.</p>
515    pub fn set_profile_configuration(mut self, input: ::std::option::Option<crate::types::ProfileConfiguration>) -> Self {
516        self.profile_configuration = input;
517        self
518    }
519    /// <p>Configuration for profile jobs. Used to select columns, do evaluations, and override default parameters of evaluations. When configuration is null, the profile job will run with default settings.</p>
520    pub fn get_profile_configuration(&self) -> &::std::option::Option<crate::types::ProfileConfiguration> {
521        &self.profile_configuration
522    }
523    /// Appends an item to `validation_configurations`.
524    ///
525    /// To override the contents of this collection use [`set_validation_configurations`](Self::set_validation_configurations).
526    ///
527    /// <p>List of validation configurations that are applied to the profile job.</p>
528    pub fn validation_configurations(mut self, input: crate::types::ValidationConfiguration) -> Self {
529        let mut v = self.validation_configurations.unwrap_or_default();
530        v.push(input);
531        self.validation_configurations = ::std::option::Option::Some(v);
532        self
533    }
534    /// <p>List of validation configurations that are applied to the profile job.</p>
535    pub fn set_validation_configurations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ValidationConfiguration>>) -> Self {
536        self.validation_configurations = input;
537        self
538    }
539    /// <p>List of validation configurations that are applied to the profile job.</p>
540    pub fn get_validation_configurations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ValidationConfiguration>> {
541        &self.validation_configurations
542    }
543    /// <p>Represents the name and version of a DataBrew recipe.</p>
544    pub fn recipe_reference(mut self, input: crate::types::RecipeReference) -> Self {
545        self.recipe_reference = ::std::option::Option::Some(input);
546        self
547    }
548    /// <p>Represents the name and version of a DataBrew recipe.</p>
549    pub fn set_recipe_reference(mut self, input: ::std::option::Option<crate::types::RecipeReference>) -> Self {
550        self.recipe_reference = input;
551        self
552    }
553    /// <p>Represents the name and version of a DataBrew recipe.</p>
554    pub fn get_recipe_reference(&self) -> &::std::option::Option<crate::types::RecipeReference> {
555        &self.recipe_reference
556    }
557    /// <p>The Amazon Resource Name (ARN) of the job.</p>
558    pub fn resource_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
559        self.resource_arn = ::std::option::Option::Some(input.into());
560        self
561    }
562    /// <p>The Amazon Resource Name (ARN) of the job.</p>
563    pub fn set_resource_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
564        self.resource_arn = input;
565        self
566    }
567    /// <p>The Amazon Resource Name (ARN) of the job.</p>
568    pub fn get_resource_arn(&self) -> &::std::option::Option<::std::string::String> {
569        &self.resource_arn
570    }
571    /// <p>The ARN of the Identity and Access Management (IAM) role to be assumed when DataBrew runs the job.</p>
572    pub fn role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
573        self.role_arn = ::std::option::Option::Some(input.into());
574        self
575    }
576    /// <p>The ARN of the Identity and Access Management (IAM) role to be assumed when DataBrew runs the job.</p>
577    pub fn set_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
578        self.role_arn = input;
579        self
580    }
581    /// <p>The ARN of the Identity and Access Management (IAM) role to be assumed when DataBrew runs the job.</p>
582    pub fn get_role_arn(&self) -> &::std::option::Option<::std::string::String> {
583        &self.role_arn
584    }
585    /// Adds a key-value pair to `tags`.
586    ///
587    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
588    ///
589    /// <p>Metadata tags associated with this job.</p>
590    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
591        let mut hash_map = self.tags.unwrap_or_default();
592        hash_map.insert(k.into(), v.into());
593        self.tags = ::std::option::Option::Some(hash_map);
594        self
595    }
596    /// <p>Metadata tags associated with this job.</p>
597    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
598        self.tags = input;
599        self
600    }
601    /// <p>Metadata tags associated with this job.</p>
602    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
603        &self.tags
604    }
605    /// <p>The job's timeout in minutes. A job that attempts to run longer than this timeout period ends with a status of <code>TIMEOUT</code>.</p>
606    pub fn timeout(mut self, input: i32) -> Self {
607        self.timeout = ::std::option::Option::Some(input);
608        self
609    }
610    /// <p>The job's timeout in minutes. A job that attempts to run longer than this timeout period ends with a status of <code>TIMEOUT</code>.</p>
611    pub fn set_timeout(mut self, input: ::std::option::Option<i32>) -> Self {
612        self.timeout = input;
613        self
614    }
615    /// <p>The job's timeout in minutes. A job that attempts to run longer than this timeout period ends with a status of <code>TIMEOUT</code>.</p>
616    pub fn get_timeout(&self) -> &::std::option::Option<i32> {
617        &self.timeout
618    }
619    /// <p>Sample configuration for profile jobs only. Determines the number of rows on which the profile job will be executed.</p>
620    pub fn job_sample(mut self, input: crate::types::JobSample) -> Self {
621        self.job_sample = ::std::option::Option::Some(input);
622        self
623    }
624    /// <p>Sample configuration for profile jobs only. Determines the number of rows on which the profile job will be executed.</p>
625    pub fn set_job_sample(mut self, input: ::std::option::Option<crate::types::JobSample>) -> Self {
626        self.job_sample = input;
627        self
628    }
629    /// <p>Sample configuration for profile jobs only. Determines the number of rows on which the profile job will be executed.</p>
630    pub fn get_job_sample(&self) -> &::std::option::Option<crate::types::JobSample> {
631        &self.job_sample
632    }
633    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
634        self._request_id = Some(request_id.into());
635        self
636    }
637
638    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
639        self._request_id = request_id;
640        self
641    }
642    /// Consumes the builder and constructs a [`DescribeJobOutput`](crate::operation::describe_job::DescribeJobOutput).
643    /// This method will fail if any of the following fields are not set:
644    /// - [`name`](crate::operation::describe_job::builders::DescribeJobOutputBuilder::name)
645    pub fn build(self) -> ::std::result::Result<crate::operation::describe_job::DescribeJobOutput, ::aws_smithy_types::error::operation::BuildError> {
646        ::std::result::Result::Ok(crate::operation::describe_job::DescribeJobOutput {
647            create_date: self.create_date,
648            created_by: self.created_by,
649            dataset_name: self.dataset_name,
650            encryption_key_arn: self.encryption_key_arn,
651            encryption_mode: self.encryption_mode,
652            name: self.name.ok_or_else(|| {
653                ::aws_smithy_types::error::operation::BuildError::missing_field(
654                    "name",
655                    "name was not specified but it is required when building DescribeJobOutput",
656                )
657            })?,
658            r#type: self.r#type,
659            last_modified_by: self.last_modified_by,
660            last_modified_date: self.last_modified_date,
661            log_subscription: self.log_subscription,
662            max_capacity: self.max_capacity.unwrap_or_default(),
663            max_retries: self.max_retries.unwrap_or_default(),
664            outputs: self.outputs,
665            data_catalog_outputs: self.data_catalog_outputs,
666            database_outputs: self.database_outputs,
667            project_name: self.project_name,
668            profile_configuration: self.profile_configuration,
669            validation_configurations: self.validation_configurations,
670            recipe_reference: self.recipe_reference,
671            resource_arn: self.resource_arn,
672            role_arn: self.role_arn,
673            tags: self.tags,
674            timeout: self.timeout.unwrap_or_default(),
675            job_sample: self.job_sample,
676            _request_id: self._request_id,
677        })
678    }
679}