aws_sdk_braket/operation/get_job/
_get_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 GetJobOutput {
6    /// <p>The status of the Amazon Braket hybrid job.</p>
7    pub status: crate::types::JobPrimaryStatus,
8    /// <p>The ARN of the Amazon Braket hybrid job.</p>
9    pub job_arn: ::std::string::String,
10    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume to perform tasks on behalf of a user. It can access user resources, run an Amazon Braket job container on behalf of user, and output results and other hybrid job details to the s3 buckets of a user.</p>
11    pub role_arn: ::std::string::String,
12    /// <p>A description of the reason why an Amazon Braket hybrid job failed, if it failed.</p>
13    pub failure_reason: ::std::option::Option<::std::string::String>,
14    /// <p>The name of the Amazon Braket hybrid job.</p>
15    pub job_name: ::std::string::String,
16    /// <p>Algorithm-specific parameters used by an Amazon Braket hybrid job that influence the quality of the traiing job. The values are set with a map of JSON key:value pairs, where the key is the name of the hyperparameter and the value is the value of th hyperparameter.</p>
17    pub hyper_parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
18    /// <p>A list of parameters that specify the name and type of input data and where it is located.</p>
19    pub input_data_config: ::std::option::Option<::std::vec::Vec<crate::types::InputFileConfig>>,
20    /// <p>The path to the S3 location where hybrid job artifacts are stored and the encryption key used to store them there.</p>
21    pub output_data_config: ::std::option::Option<crate::types::JobOutputDataConfig>,
22    /// <p>The user-defined criteria that specifies when to stop a running hybrid job.</p>
23    pub stopping_condition: ::std::option::Option<crate::types::JobStoppingCondition>,
24    /// <p>Information about the output locations for hybrid job checkpoint data.</p>
25    pub checkpoint_config: ::std::option::Option<crate::types::JobCheckpointConfig>,
26    /// <p>Definition of the Amazon Braket hybrid job created. Provides information about the container image used, and the Python scripts used for training.</p>
27    pub algorithm_specification: ::std::option::Option<crate::types::AlgorithmSpecification>,
28    /// <p>The resource instances to use while running the hybrid job on Amazon Braket.</p>
29    pub instance_config: ::std::option::Option<crate::types::InstanceConfig>,
30    /// <p>The time at which the Amazon Braket hybrid job was created.</p>
31    pub created_at: ::aws_smithy_types::DateTime,
32    /// <p>The time at which the Amazon Braket hybrid job was started.</p>
33    pub started_at: ::std::option::Option<::aws_smithy_types::DateTime>,
34    /// <p>The time at which the Amazon Braket hybrid job ended.</p>
35    pub ended_at: ::std::option::Option<::aws_smithy_types::DateTime>,
36    /// <p>The billable time for which the Amazon Braket hybrid job used to complete.</p>
37    pub billable_duration: ::std::option::Option<i32>,
38    /// <p>The primary device used by the Amazon Braket hybrid job.</p>
39    pub device_config: ::std::option::Option<crate::types::DeviceConfig>,
40    /// <p>Details about the time and type of events occurred related to the Amazon Braket hybrid job.</p>
41    pub events: ::std::option::Option<::std::vec::Vec<crate::types::JobEventDetails>>,
42    /// <p>The tags associated with this hybrid job.</p>
43    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
44    /// <p>Queue information for the requested hybrid job. Only returned if <code>QueueInfo</code> is specified in the <code>additionalAttributeNames"</code> field in the <code>GetJob</code> API request.</p>
45    pub queue_info: ::std::option::Option<crate::types::HybridJobQueueInfo>,
46    /// <p>The list of Amazon Braket resources associated with the hybrid job.</p>
47    pub associations: ::std::option::Option<::std::vec::Vec<crate::types::Association>>,
48    _request_id: Option<String>,
49}
50impl GetJobOutput {
51    /// <p>The status of the Amazon Braket hybrid job.</p>
52    pub fn status(&self) -> &crate::types::JobPrimaryStatus {
53        &self.status
54    }
55    /// <p>The ARN of the Amazon Braket hybrid job.</p>
56    pub fn job_arn(&self) -> &str {
57        use std::ops::Deref;
58        self.job_arn.deref()
59    }
60    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume to perform tasks on behalf of a user. It can access user resources, run an Amazon Braket job container on behalf of user, and output results and other hybrid job details to the s3 buckets of a user.</p>
61    pub fn role_arn(&self) -> &str {
62        use std::ops::Deref;
63        self.role_arn.deref()
64    }
65    /// <p>A description of the reason why an Amazon Braket hybrid job failed, if it failed.</p>
66    pub fn failure_reason(&self) -> ::std::option::Option<&str> {
67        self.failure_reason.as_deref()
68    }
69    /// <p>The name of the Amazon Braket hybrid job.</p>
70    pub fn job_name(&self) -> &str {
71        use std::ops::Deref;
72        self.job_name.deref()
73    }
74    /// <p>Algorithm-specific parameters used by an Amazon Braket hybrid job that influence the quality of the traiing job. The values are set with a map of JSON key:value pairs, where the key is the name of the hyperparameter and the value is the value of th hyperparameter.</p>
75    pub fn hyper_parameters(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
76        self.hyper_parameters.as_ref()
77    }
78    /// <p>A list of parameters that specify the name and type of input data and where it is located.</p>
79    ///
80    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.input_data_config.is_none()`.
81    pub fn input_data_config(&self) -> &[crate::types::InputFileConfig] {
82        self.input_data_config.as_deref().unwrap_or_default()
83    }
84    /// <p>The path to the S3 location where hybrid job artifacts are stored and the encryption key used to store them there.</p>
85    pub fn output_data_config(&self) -> ::std::option::Option<&crate::types::JobOutputDataConfig> {
86        self.output_data_config.as_ref()
87    }
88    /// <p>The user-defined criteria that specifies when to stop a running hybrid job.</p>
89    pub fn stopping_condition(&self) -> ::std::option::Option<&crate::types::JobStoppingCondition> {
90        self.stopping_condition.as_ref()
91    }
92    /// <p>Information about the output locations for hybrid job checkpoint data.</p>
93    pub fn checkpoint_config(&self) -> ::std::option::Option<&crate::types::JobCheckpointConfig> {
94        self.checkpoint_config.as_ref()
95    }
96    /// <p>Definition of the Amazon Braket hybrid job created. Provides information about the container image used, and the Python scripts used for training.</p>
97    pub fn algorithm_specification(&self) -> ::std::option::Option<&crate::types::AlgorithmSpecification> {
98        self.algorithm_specification.as_ref()
99    }
100    /// <p>The resource instances to use while running the hybrid job on Amazon Braket.</p>
101    pub fn instance_config(&self) -> ::std::option::Option<&crate::types::InstanceConfig> {
102        self.instance_config.as_ref()
103    }
104    /// <p>The time at which the Amazon Braket hybrid job was created.</p>
105    pub fn created_at(&self) -> &::aws_smithy_types::DateTime {
106        &self.created_at
107    }
108    /// <p>The time at which the Amazon Braket hybrid job was started.</p>
109    pub fn started_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
110        self.started_at.as_ref()
111    }
112    /// <p>The time at which the Amazon Braket hybrid job ended.</p>
113    pub fn ended_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
114        self.ended_at.as_ref()
115    }
116    /// <p>The billable time for which the Amazon Braket hybrid job used to complete.</p>
117    pub fn billable_duration(&self) -> ::std::option::Option<i32> {
118        self.billable_duration
119    }
120    /// <p>The primary device used by the Amazon Braket hybrid job.</p>
121    pub fn device_config(&self) -> ::std::option::Option<&crate::types::DeviceConfig> {
122        self.device_config.as_ref()
123    }
124    /// <p>Details about the time and type of events occurred related to the Amazon Braket hybrid job.</p>
125    ///
126    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.events.is_none()`.
127    pub fn events(&self) -> &[crate::types::JobEventDetails] {
128        self.events.as_deref().unwrap_or_default()
129    }
130    /// <p>The tags associated with this hybrid job.</p>
131    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
132        self.tags.as_ref()
133    }
134    /// <p>Queue information for the requested hybrid job. Only returned if <code>QueueInfo</code> is specified in the <code>additionalAttributeNames"</code> field in the <code>GetJob</code> API request.</p>
135    pub fn queue_info(&self) -> ::std::option::Option<&crate::types::HybridJobQueueInfo> {
136        self.queue_info.as_ref()
137    }
138    /// <p>The list of Amazon Braket resources associated with the hybrid job.</p>
139    ///
140    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.associations.is_none()`.
141    pub fn associations(&self) -> &[crate::types::Association] {
142        self.associations.as_deref().unwrap_or_default()
143    }
144}
145impl ::aws_types::request_id::RequestId for GetJobOutput {
146    fn request_id(&self) -> Option<&str> {
147        self._request_id.as_deref()
148    }
149}
150impl GetJobOutput {
151    /// Creates a new builder-style object to manufacture [`GetJobOutput`](crate::operation::get_job::GetJobOutput).
152    pub fn builder() -> crate::operation::get_job::builders::GetJobOutputBuilder {
153        crate::operation::get_job::builders::GetJobOutputBuilder::default()
154    }
155}
156
157/// A builder for [`GetJobOutput`](crate::operation::get_job::GetJobOutput).
158#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
159#[non_exhaustive]
160pub struct GetJobOutputBuilder {
161    pub(crate) status: ::std::option::Option<crate::types::JobPrimaryStatus>,
162    pub(crate) job_arn: ::std::option::Option<::std::string::String>,
163    pub(crate) role_arn: ::std::option::Option<::std::string::String>,
164    pub(crate) failure_reason: ::std::option::Option<::std::string::String>,
165    pub(crate) job_name: ::std::option::Option<::std::string::String>,
166    pub(crate) hyper_parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
167    pub(crate) input_data_config: ::std::option::Option<::std::vec::Vec<crate::types::InputFileConfig>>,
168    pub(crate) output_data_config: ::std::option::Option<crate::types::JobOutputDataConfig>,
169    pub(crate) stopping_condition: ::std::option::Option<crate::types::JobStoppingCondition>,
170    pub(crate) checkpoint_config: ::std::option::Option<crate::types::JobCheckpointConfig>,
171    pub(crate) algorithm_specification: ::std::option::Option<crate::types::AlgorithmSpecification>,
172    pub(crate) instance_config: ::std::option::Option<crate::types::InstanceConfig>,
173    pub(crate) created_at: ::std::option::Option<::aws_smithy_types::DateTime>,
174    pub(crate) started_at: ::std::option::Option<::aws_smithy_types::DateTime>,
175    pub(crate) ended_at: ::std::option::Option<::aws_smithy_types::DateTime>,
176    pub(crate) billable_duration: ::std::option::Option<i32>,
177    pub(crate) device_config: ::std::option::Option<crate::types::DeviceConfig>,
178    pub(crate) events: ::std::option::Option<::std::vec::Vec<crate::types::JobEventDetails>>,
179    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
180    pub(crate) queue_info: ::std::option::Option<crate::types::HybridJobQueueInfo>,
181    pub(crate) associations: ::std::option::Option<::std::vec::Vec<crate::types::Association>>,
182    _request_id: Option<String>,
183}
184impl GetJobOutputBuilder {
185    /// <p>The status of the Amazon Braket hybrid job.</p>
186    /// This field is required.
187    pub fn status(mut self, input: crate::types::JobPrimaryStatus) -> Self {
188        self.status = ::std::option::Option::Some(input);
189        self
190    }
191    /// <p>The status of the Amazon Braket hybrid job.</p>
192    pub fn set_status(mut self, input: ::std::option::Option<crate::types::JobPrimaryStatus>) -> Self {
193        self.status = input;
194        self
195    }
196    /// <p>The status of the Amazon Braket hybrid job.</p>
197    pub fn get_status(&self) -> &::std::option::Option<crate::types::JobPrimaryStatus> {
198        &self.status
199    }
200    /// <p>The ARN of the Amazon Braket hybrid job.</p>
201    /// This field is required.
202    pub fn job_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
203        self.job_arn = ::std::option::Option::Some(input.into());
204        self
205    }
206    /// <p>The ARN of the Amazon Braket hybrid job.</p>
207    pub fn set_job_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
208        self.job_arn = input;
209        self
210    }
211    /// <p>The ARN of the Amazon Braket hybrid job.</p>
212    pub fn get_job_arn(&self) -> &::std::option::Option<::std::string::String> {
213        &self.job_arn
214    }
215    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume to perform tasks on behalf of a user. It can access user resources, run an Amazon Braket job container on behalf of user, and output results and other hybrid job details to the s3 buckets of a user.</p>
216    /// This field is required.
217    pub fn role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
218        self.role_arn = ::std::option::Option::Some(input.into());
219        self
220    }
221    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume to perform tasks on behalf of a user. It can access user resources, run an Amazon Braket job container on behalf of user, and output results and other hybrid job details to the s3 buckets of a user.</p>
222    pub fn set_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
223        self.role_arn = input;
224        self
225    }
226    /// <p>The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume to perform tasks on behalf of a user. It can access user resources, run an Amazon Braket job container on behalf of user, and output results and other hybrid job details to the s3 buckets of a user.</p>
227    pub fn get_role_arn(&self) -> &::std::option::Option<::std::string::String> {
228        &self.role_arn
229    }
230    /// <p>A description of the reason why an Amazon Braket hybrid job failed, if it failed.</p>
231    pub fn failure_reason(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
232        self.failure_reason = ::std::option::Option::Some(input.into());
233        self
234    }
235    /// <p>A description of the reason why an Amazon Braket hybrid job failed, if it failed.</p>
236    pub fn set_failure_reason(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
237        self.failure_reason = input;
238        self
239    }
240    /// <p>A description of the reason why an Amazon Braket hybrid job failed, if it failed.</p>
241    pub fn get_failure_reason(&self) -> &::std::option::Option<::std::string::String> {
242        &self.failure_reason
243    }
244    /// <p>The name of the Amazon Braket hybrid job.</p>
245    /// This field is required.
246    pub fn job_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
247        self.job_name = ::std::option::Option::Some(input.into());
248        self
249    }
250    /// <p>The name of the Amazon Braket hybrid job.</p>
251    pub fn set_job_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
252        self.job_name = input;
253        self
254    }
255    /// <p>The name of the Amazon Braket hybrid job.</p>
256    pub fn get_job_name(&self) -> &::std::option::Option<::std::string::String> {
257        &self.job_name
258    }
259    /// Adds a key-value pair to `hyper_parameters`.
260    ///
261    /// To override the contents of this collection use [`set_hyper_parameters`](Self::set_hyper_parameters).
262    ///
263    /// <p>Algorithm-specific parameters used by an Amazon Braket hybrid job that influence the quality of the traiing job. The values are set with a map of JSON key:value pairs, where the key is the name of the hyperparameter and the value is the value of th hyperparameter.</p>
264    pub fn hyper_parameters(
265        mut self,
266        k: impl ::std::convert::Into<::std::string::String>,
267        v: impl ::std::convert::Into<::std::string::String>,
268    ) -> Self {
269        let mut hash_map = self.hyper_parameters.unwrap_or_default();
270        hash_map.insert(k.into(), v.into());
271        self.hyper_parameters = ::std::option::Option::Some(hash_map);
272        self
273    }
274    /// <p>Algorithm-specific parameters used by an Amazon Braket hybrid job that influence the quality of the traiing job. The values are set with a map of JSON key:value pairs, where the key is the name of the hyperparameter and the value is the value of th hyperparameter.</p>
275    pub fn set_hyper_parameters(
276        mut self,
277        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
278    ) -> Self {
279        self.hyper_parameters = input;
280        self
281    }
282    /// <p>Algorithm-specific parameters used by an Amazon Braket hybrid job that influence the quality of the traiing job. The values are set with a map of JSON key:value pairs, where the key is the name of the hyperparameter and the value is the value of th hyperparameter.</p>
283    pub fn get_hyper_parameters(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
284        &self.hyper_parameters
285    }
286    /// Appends an item to `input_data_config`.
287    ///
288    /// To override the contents of this collection use [`set_input_data_config`](Self::set_input_data_config).
289    ///
290    /// <p>A list of parameters that specify the name and type of input data and where it is located.</p>
291    pub fn input_data_config(mut self, input: crate::types::InputFileConfig) -> Self {
292        let mut v = self.input_data_config.unwrap_or_default();
293        v.push(input);
294        self.input_data_config = ::std::option::Option::Some(v);
295        self
296    }
297    /// <p>A list of parameters that specify the name and type of input data and where it is located.</p>
298    pub fn set_input_data_config(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InputFileConfig>>) -> Self {
299        self.input_data_config = input;
300        self
301    }
302    /// <p>A list of parameters that specify the name and type of input data and where it is located.</p>
303    pub fn get_input_data_config(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InputFileConfig>> {
304        &self.input_data_config
305    }
306    /// <p>The path to the S3 location where hybrid job artifacts are stored and the encryption key used to store them there.</p>
307    /// This field is required.
308    pub fn output_data_config(mut self, input: crate::types::JobOutputDataConfig) -> Self {
309        self.output_data_config = ::std::option::Option::Some(input);
310        self
311    }
312    /// <p>The path to the S3 location where hybrid job artifacts are stored and the encryption key used to store them there.</p>
313    pub fn set_output_data_config(mut self, input: ::std::option::Option<crate::types::JobOutputDataConfig>) -> Self {
314        self.output_data_config = input;
315        self
316    }
317    /// <p>The path to the S3 location where hybrid job artifacts are stored and the encryption key used to store them there.</p>
318    pub fn get_output_data_config(&self) -> &::std::option::Option<crate::types::JobOutputDataConfig> {
319        &self.output_data_config
320    }
321    /// <p>The user-defined criteria that specifies when to stop a running hybrid job.</p>
322    pub fn stopping_condition(mut self, input: crate::types::JobStoppingCondition) -> Self {
323        self.stopping_condition = ::std::option::Option::Some(input);
324        self
325    }
326    /// <p>The user-defined criteria that specifies when to stop a running hybrid job.</p>
327    pub fn set_stopping_condition(mut self, input: ::std::option::Option<crate::types::JobStoppingCondition>) -> Self {
328        self.stopping_condition = input;
329        self
330    }
331    /// <p>The user-defined criteria that specifies when to stop a running hybrid job.</p>
332    pub fn get_stopping_condition(&self) -> &::std::option::Option<crate::types::JobStoppingCondition> {
333        &self.stopping_condition
334    }
335    /// <p>Information about the output locations for hybrid job checkpoint data.</p>
336    pub fn checkpoint_config(mut self, input: crate::types::JobCheckpointConfig) -> Self {
337        self.checkpoint_config = ::std::option::Option::Some(input);
338        self
339    }
340    /// <p>Information about the output locations for hybrid job checkpoint data.</p>
341    pub fn set_checkpoint_config(mut self, input: ::std::option::Option<crate::types::JobCheckpointConfig>) -> Self {
342        self.checkpoint_config = input;
343        self
344    }
345    /// <p>Information about the output locations for hybrid job checkpoint data.</p>
346    pub fn get_checkpoint_config(&self) -> &::std::option::Option<crate::types::JobCheckpointConfig> {
347        &self.checkpoint_config
348    }
349    /// <p>Definition of the Amazon Braket hybrid job created. Provides information about the container image used, and the Python scripts used for training.</p>
350    /// This field is required.
351    pub fn algorithm_specification(mut self, input: crate::types::AlgorithmSpecification) -> Self {
352        self.algorithm_specification = ::std::option::Option::Some(input);
353        self
354    }
355    /// <p>Definition of the Amazon Braket hybrid job created. Provides information about the container image used, and the Python scripts used for training.</p>
356    pub fn set_algorithm_specification(mut self, input: ::std::option::Option<crate::types::AlgorithmSpecification>) -> Self {
357        self.algorithm_specification = input;
358        self
359    }
360    /// <p>Definition of the Amazon Braket hybrid job created. Provides information about the container image used, and the Python scripts used for training.</p>
361    pub fn get_algorithm_specification(&self) -> &::std::option::Option<crate::types::AlgorithmSpecification> {
362        &self.algorithm_specification
363    }
364    /// <p>The resource instances to use while running the hybrid job on Amazon Braket.</p>
365    /// This field is required.
366    pub fn instance_config(mut self, input: crate::types::InstanceConfig) -> Self {
367        self.instance_config = ::std::option::Option::Some(input);
368        self
369    }
370    /// <p>The resource instances to use while running the hybrid job on Amazon Braket.</p>
371    pub fn set_instance_config(mut self, input: ::std::option::Option<crate::types::InstanceConfig>) -> Self {
372        self.instance_config = input;
373        self
374    }
375    /// <p>The resource instances to use while running the hybrid job on Amazon Braket.</p>
376    pub fn get_instance_config(&self) -> &::std::option::Option<crate::types::InstanceConfig> {
377        &self.instance_config
378    }
379    /// <p>The time at which the Amazon Braket hybrid job was created.</p>
380    /// This field is required.
381    pub fn created_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
382        self.created_at = ::std::option::Option::Some(input);
383        self
384    }
385    /// <p>The time at which the Amazon Braket hybrid job was created.</p>
386    pub fn set_created_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
387        self.created_at = input;
388        self
389    }
390    /// <p>The time at which the Amazon Braket hybrid job was created.</p>
391    pub fn get_created_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
392        &self.created_at
393    }
394    /// <p>The time at which the Amazon Braket hybrid job was started.</p>
395    pub fn started_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
396        self.started_at = ::std::option::Option::Some(input);
397        self
398    }
399    /// <p>The time at which the Amazon Braket hybrid job was started.</p>
400    pub fn set_started_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
401        self.started_at = input;
402        self
403    }
404    /// <p>The time at which the Amazon Braket hybrid job was started.</p>
405    pub fn get_started_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
406        &self.started_at
407    }
408    /// <p>The time at which the Amazon Braket hybrid job ended.</p>
409    pub fn ended_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
410        self.ended_at = ::std::option::Option::Some(input);
411        self
412    }
413    /// <p>The time at which the Amazon Braket hybrid job ended.</p>
414    pub fn set_ended_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
415        self.ended_at = input;
416        self
417    }
418    /// <p>The time at which the Amazon Braket hybrid job ended.</p>
419    pub fn get_ended_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
420        &self.ended_at
421    }
422    /// <p>The billable time for which the Amazon Braket hybrid job used to complete.</p>
423    pub fn billable_duration(mut self, input: i32) -> Self {
424        self.billable_duration = ::std::option::Option::Some(input);
425        self
426    }
427    /// <p>The billable time for which the Amazon Braket hybrid job used to complete.</p>
428    pub fn set_billable_duration(mut self, input: ::std::option::Option<i32>) -> Self {
429        self.billable_duration = input;
430        self
431    }
432    /// <p>The billable time for which the Amazon Braket hybrid job used to complete.</p>
433    pub fn get_billable_duration(&self) -> &::std::option::Option<i32> {
434        &self.billable_duration
435    }
436    /// <p>The primary device used by the Amazon Braket hybrid job.</p>
437    pub fn device_config(mut self, input: crate::types::DeviceConfig) -> Self {
438        self.device_config = ::std::option::Option::Some(input);
439        self
440    }
441    /// <p>The primary device used by the Amazon Braket hybrid job.</p>
442    pub fn set_device_config(mut self, input: ::std::option::Option<crate::types::DeviceConfig>) -> Self {
443        self.device_config = input;
444        self
445    }
446    /// <p>The primary device used by the Amazon Braket hybrid job.</p>
447    pub fn get_device_config(&self) -> &::std::option::Option<crate::types::DeviceConfig> {
448        &self.device_config
449    }
450    /// Appends an item to `events`.
451    ///
452    /// To override the contents of this collection use [`set_events`](Self::set_events).
453    ///
454    /// <p>Details about the time and type of events occurred related to the Amazon Braket hybrid job.</p>
455    pub fn events(mut self, input: crate::types::JobEventDetails) -> Self {
456        let mut v = self.events.unwrap_or_default();
457        v.push(input);
458        self.events = ::std::option::Option::Some(v);
459        self
460    }
461    /// <p>Details about the time and type of events occurred related to the Amazon Braket hybrid job.</p>
462    pub fn set_events(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::JobEventDetails>>) -> Self {
463        self.events = input;
464        self
465    }
466    /// <p>Details about the time and type of events occurred related to the Amazon Braket hybrid job.</p>
467    pub fn get_events(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::JobEventDetails>> {
468        &self.events
469    }
470    /// Adds a key-value pair to `tags`.
471    ///
472    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
473    ///
474    /// <p>The tags associated with this hybrid job.</p>
475    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
476        let mut hash_map = self.tags.unwrap_or_default();
477        hash_map.insert(k.into(), v.into());
478        self.tags = ::std::option::Option::Some(hash_map);
479        self
480    }
481    /// <p>The tags associated with this hybrid job.</p>
482    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
483        self.tags = input;
484        self
485    }
486    /// <p>The tags associated with this hybrid job.</p>
487    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
488        &self.tags
489    }
490    /// <p>Queue information for the requested hybrid job. Only returned if <code>QueueInfo</code> is specified in the <code>additionalAttributeNames"</code> field in the <code>GetJob</code> API request.</p>
491    pub fn queue_info(mut self, input: crate::types::HybridJobQueueInfo) -> Self {
492        self.queue_info = ::std::option::Option::Some(input);
493        self
494    }
495    /// <p>Queue information for the requested hybrid job. Only returned if <code>QueueInfo</code> is specified in the <code>additionalAttributeNames"</code> field in the <code>GetJob</code> API request.</p>
496    pub fn set_queue_info(mut self, input: ::std::option::Option<crate::types::HybridJobQueueInfo>) -> Self {
497        self.queue_info = input;
498        self
499    }
500    /// <p>Queue information for the requested hybrid job. Only returned if <code>QueueInfo</code> is specified in the <code>additionalAttributeNames"</code> field in the <code>GetJob</code> API request.</p>
501    pub fn get_queue_info(&self) -> &::std::option::Option<crate::types::HybridJobQueueInfo> {
502        &self.queue_info
503    }
504    /// Appends an item to `associations`.
505    ///
506    /// To override the contents of this collection use [`set_associations`](Self::set_associations).
507    ///
508    /// <p>The list of Amazon Braket resources associated with the hybrid job.</p>
509    pub fn associations(mut self, input: crate::types::Association) -> Self {
510        let mut v = self.associations.unwrap_or_default();
511        v.push(input);
512        self.associations = ::std::option::Option::Some(v);
513        self
514    }
515    /// <p>The list of Amazon Braket resources associated with the hybrid job.</p>
516    pub fn set_associations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Association>>) -> Self {
517        self.associations = input;
518        self
519    }
520    /// <p>The list of Amazon Braket resources associated with the hybrid job.</p>
521    pub fn get_associations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Association>> {
522        &self.associations
523    }
524    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
525        self._request_id = Some(request_id.into());
526        self
527    }
528
529    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
530        self._request_id = request_id;
531        self
532    }
533    /// Consumes the builder and constructs a [`GetJobOutput`](crate::operation::get_job::GetJobOutput).
534    /// This method will fail if any of the following fields are not set:
535    /// - [`status`](crate::operation::get_job::builders::GetJobOutputBuilder::status)
536    /// - [`job_arn`](crate::operation::get_job::builders::GetJobOutputBuilder::job_arn)
537    /// - [`role_arn`](crate::operation::get_job::builders::GetJobOutputBuilder::role_arn)
538    /// - [`job_name`](crate::operation::get_job::builders::GetJobOutputBuilder::job_name)
539    /// - [`created_at`](crate::operation::get_job::builders::GetJobOutputBuilder::created_at)
540    pub fn build(self) -> ::std::result::Result<crate::operation::get_job::GetJobOutput, ::aws_smithy_types::error::operation::BuildError> {
541        ::std::result::Result::Ok(crate::operation::get_job::GetJobOutput {
542            status: self.status.ok_or_else(|| {
543                ::aws_smithy_types::error::operation::BuildError::missing_field(
544                    "status",
545                    "status was not specified but it is required when building GetJobOutput",
546                )
547            })?,
548            job_arn: self.job_arn.ok_or_else(|| {
549                ::aws_smithy_types::error::operation::BuildError::missing_field(
550                    "job_arn",
551                    "job_arn was not specified but it is required when building GetJobOutput",
552                )
553            })?,
554            role_arn: self.role_arn.ok_or_else(|| {
555                ::aws_smithy_types::error::operation::BuildError::missing_field(
556                    "role_arn",
557                    "role_arn was not specified but it is required when building GetJobOutput",
558                )
559            })?,
560            failure_reason: self.failure_reason,
561            job_name: self.job_name.ok_or_else(|| {
562                ::aws_smithy_types::error::operation::BuildError::missing_field(
563                    "job_name",
564                    "job_name was not specified but it is required when building GetJobOutput",
565                )
566            })?,
567            hyper_parameters: self.hyper_parameters,
568            input_data_config: self.input_data_config,
569            output_data_config: self.output_data_config,
570            stopping_condition: self.stopping_condition,
571            checkpoint_config: self.checkpoint_config,
572            algorithm_specification: self.algorithm_specification,
573            instance_config: self.instance_config,
574            created_at: self.created_at.ok_or_else(|| {
575                ::aws_smithy_types::error::operation::BuildError::missing_field(
576                    "created_at",
577                    "created_at was not specified but it is required when building GetJobOutput",
578                )
579            })?,
580            started_at: self.started_at,
581            ended_at: self.ended_at,
582            billable_duration: self.billable_duration,
583            device_config: self.device_config,
584            events: self.events,
585            tags: self.tags,
586            queue_info: self.queue_info,
587            associations: self.associations,
588            _request_id: self._request_id,
589        })
590    }
591}