aws_sdk_robomaker/types/
_simulation_job.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>Information about a simulation job.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct SimulationJob {
7    /// <p>The Amazon Resource Name (ARN) of the simulation job.</p>
8    pub arn: ::std::option::Option<::std::string::String>,
9    /// <p>The name of the simulation job.</p>
10    pub name: ::std::option::Option<::std::string::String>,
11    /// <p>Status of the simulation job.</p>
12    pub status: ::std::option::Option<crate::types::SimulationJobStatus>,
13    /// <p>The time, in milliseconds since the epoch, when the simulation job was last started.</p>
14    pub last_started_at: ::std::option::Option<::aws_smithy_types::DateTime>,
15    /// <p>The time, in milliseconds since the epoch, when the simulation job was last updated.</p>
16    pub last_updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
17    /// <p>The failure behavior the simulation job.</p>
18    /// <dl>
19    /// <dt>
20    /// Continue
21    /// </dt>
22    /// <dd>
23    /// <p>Leaves the host running for its maximum timeout duration after a <code>4XX</code> error code.</p>
24    /// </dd>
25    /// <dt>
26    /// Fail
27    /// </dt>
28    /// <dd>
29    /// <p>Stop the simulation job and terminate the instance.</p>
30    /// </dd>
31    /// </dl>
32    pub failure_behavior: ::std::option::Option<crate::types::FailureBehavior>,
33    /// <p>The failure code of the simulation job if it failed.</p>
34    pub failure_code: ::std::option::Option<crate::types::SimulationJobErrorCode>,
35    /// <p>The reason why the simulation job failed.</p>
36    pub failure_reason: ::std::option::Option<::std::string::String>,
37    /// <p>A unique identifier for this <code>SimulationJob</code> request.</p>
38    pub client_request_token: ::std::option::Option<::std::string::String>,
39    /// <p>Location for output files generated by the simulation job.</p>
40    pub output_location: ::std::option::Option<crate::types::OutputLocation>,
41    /// <p>The logging configuration.</p>
42    pub logging_config: ::std::option::Option<crate::types::LoggingConfig>,
43    /// <p>The maximum simulation job duration in seconds. The value must be 8 days (691,200 seconds) or less.</p>
44    pub max_job_duration_in_seconds: i64,
45    /// <p>The simulation job execution duration in milliseconds.</p>
46    pub simulation_time_millis: i64,
47    /// <p>The IAM role that allows the simulation instance to call the AWS APIs that are specified in its associated policies on your behalf. This is how credentials are passed in to your simulation job.</p>
48    pub iam_role: ::std::option::Option<::std::string::String>,
49    /// <p>A list of robot applications.</p>
50    pub robot_applications: ::std::option::Option<::std::vec::Vec<crate::types::RobotApplicationConfig>>,
51    /// <p>A list of simulation applications.</p>
52    pub simulation_applications: ::std::option::Option<::std::vec::Vec<crate::types::SimulationApplicationConfig>>,
53    /// <p>The data sources for the simulation job.</p>
54    pub data_sources: ::std::option::Option<::std::vec::Vec<crate::types::DataSource>>,
55    /// <p>A map that contains tag keys and tag values that are attached to the simulation job.</p>
56    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
57    /// <p>VPC configuration information.</p>
58    pub vpc_config: ::std::option::Option<crate::types::VpcConfigResponse>,
59    /// <p>Information about a network interface.</p>
60    pub network_interface: ::std::option::Option<crate::types::NetworkInterface>,
61    /// <p>Compute information for the simulation job</p>
62    pub compute: ::std::option::Option<crate::types::ComputeResponse>,
63}
64impl SimulationJob {
65    /// <p>The Amazon Resource Name (ARN) of the simulation job.</p>
66    pub fn arn(&self) -> ::std::option::Option<&str> {
67        self.arn.as_deref()
68    }
69    /// <p>The name of the simulation job.</p>
70    pub fn name(&self) -> ::std::option::Option<&str> {
71        self.name.as_deref()
72    }
73    /// <p>Status of the simulation job.</p>
74    pub fn status(&self) -> ::std::option::Option<&crate::types::SimulationJobStatus> {
75        self.status.as_ref()
76    }
77    /// <p>The time, in milliseconds since the epoch, when the simulation job was last started.</p>
78    pub fn last_started_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
79        self.last_started_at.as_ref()
80    }
81    /// <p>The time, in milliseconds since the epoch, when the simulation job was last updated.</p>
82    pub fn last_updated_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
83        self.last_updated_at.as_ref()
84    }
85    /// <p>The failure behavior the simulation job.</p>
86    /// <dl>
87    /// <dt>
88    /// Continue
89    /// </dt>
90    /// <dd>
91    /// <p>Leaves the host running for its maximum timeout duration after a <code>4XX</code> error code.</p>
92    /// </dd>
93    /// <dt>
94    /// Fail
95    /// </dt>
96    /// <dd>
97    /// <p>Stop the simulation job and terminate the instance.</p>
98    /// </dd>
99    /// </dl>
100    pub fn failure_behavior(&self) -> ::std::option::Option<&crate::types::FailureBehavior> {
101        self.failure_behavior.as_ref()
102    }
103    /// <p>The failure code of the simulation job if it failed.</p>
104    pub fn failure_code(&self) -> ::std::option::Option<&crate::types::SimulationJobErrorCode> {
105        self.failure_code.as_ref()
106    }
107    /// <p>The reason why the simulation job failed.</p>
108    pub fn failure_reason(&self) -> ::std::option::Option<&str> {
109        self.failure_reason.as_deref()
110    }
111    /// <p>A unique identifier for this <code>SimulationJob</code> request.</p>
112    pub fn client_request_token(&self) -> ::std::option::Option<&str> {
113        self.client_request_token.as_deref()
114    }
115    /// <p>Location for output files generated by the simulation job.</p>
116    pub fn output_location(&self) -> ::std::option::Option<&crate::types::OutputLocation> {
117        self.output_location.as_ref()
118    }
119    /// <p>The logging configuration.</p>
120    pub fn logging_config(&self) -> ::std::option::Option<&crate::types::LoggingConfig> {
121        self.logging_config.as_ref()
122    }
123    /// <p>The maximum simulation job duration in seconds. The value must be 8 days (691,200 seconds) or less.</p>
124    pub fn max_job_duration_in_seconds(&self) -> i64 {
125        self.max_job_duration_in_seconds
126    }
127    /// <p>The simulation job execution duration in milliseconds.</p>
128    pub fn simulation_time_millis(&self) -> i64 {
129        self.simulation_time_millis
130    }
131    /// <p>The IAM role that allows the simulation instance to call the AWS APIs that are specified in its associated policies on your behalf. This is how credentials are passed in to your simulation job.</p>
132    pub fn iam_role(&self) -> ::std::option::Option<&str> {
133        self.iam_role.as_deref()
134    }
135    /// <p>A list of robot applications.</p>
136    ///
137    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.robot_applications.is_none()`.
138    pub fn robot_applications(&self) -> &[crate::types::RobotApplicationConfig] {
139        self.robot_applications.as_deref().unwrap_or_default()
140    }
141    /// <p>A list of simulation applications.</p>
142    ///
143    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.simulation_applications.is_none()`.
144    pub fn simulation_applications(&self) -> &[crate::types::SimulationApplicationConfig] {
145        self.simulation_applications.as_deref().unwrap_or_default()
146    }
147    /// <p>The data sources for the simulation job.</p>
148    ///
149    /// 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_sources.is_none()`.
150    pub fn data_sources(&self) -> &[crate::types::DataSource] {
151        self.data_sources.as_deref().unwrap_or_default()
152    }
153    /// <p>A map that contains tag keys and tag values that are attached to the simulation job.</p>
154    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
155        self.tags.as_ref()
156    }
157    /// <p>VPC configuration information.</p>
158    pub fn vpc_config(&self) -> ::std::option::Option<&crate::types::VpcConfigResponse> {
159        self.vpc_config.as_ref()
160    }
161    /// <p>Information about a network interface.</p>
162    pub fn network_interface(&self) -> ::std::option::Option<&crate::types::NetworkInterface> {
163        self.network_interface.as_ref()
164    }
165    /// <p>Compute information for the simulation job</p>
166    pub fn compute(&self) -> ::std::option::Option<&crate::types::ComputeResponse> {
167        self.compute.as_ref()
168    }
169}
170impl SimulationJob {
171    /// Creates a new builder-style object to manufacture [`SimulationJob`](crate::types::SimulationJob).
172    pub fn builder() -> crate::types::builders::SimulationJobBuilder {
173        crate::types::builders::SimulationJobBuilder::default()
174    }
175}
176
177/// A builder for [`SimulationJob`](crate::types::SimulationJob).
178#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
179#[non_exhaustive]
180pub struct SimulationJobBuilder {
181    pub(crate) arn: ::std::option::Option<::std::string::String>,
182    pub(crate) name: ::std::option::Option<::std::string::String>,
183    pub(crate) status: ::std::option::Option<crate::types::SimulationJobStatus>,
184    pub(crate) last_started_at: ::std::option::Option<::aws_smithy_types::DateTime>,
185    pub(crate) last_updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
186    pub(crate) failure_behavior: ::std::option::Option<crate::types::FailureBehavior>,
187    pub(crate) failure_code: ::std::option::Option<crate::types::SimulationJobErrorCode>,
188    pub(crate) failure_reason: ::std::option::Option<::std::string::String>,
189    pub(crate) client_request_token: ::std::option::Option<::std::string::String>,
190    pub(crate) output_location: ::std::option::Option<crate::types::OutputLocation>,
191    pub(crate) logging_config: ::std::option::Option<crate::types::LoggingConfig>,
192    pub(crate) max_job_duration_in_seconds: ::std::option::Option<i64>,
193    pub(crate) simulation_time_millis: ::std::option::Option<i64>,
194    pub(crate) iam_role: ::std::option::Option<::std::string::String>,
195    pub(crate) robot_applications: ::std::option::Option<::std::vec::Vec<crate::types::RobotApplicationConfig>>,
196    pub(crate) simulation_applications: ::std::option::Option<::std::vec::Vec<crate::types::SimulationApplicationConfig>>,
197    pub(crate) data_sources: ::std::option::Option<::std::vec::Vec<crate::types::DataSource>>,
198    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
199    pub(crate) vpc_config: ::std::option::Option<crate::types::VpcConfigResponse>,
200    pub(crate) network_interface: ::std::option::Option<crate::types::NetworkInterface>,
201    pub(crate) compute: ::std::option::Option<crate::types::ComputeResponse>,
202}
203impl SimulationJobBuilder {
204    /// <p>The Amazon Resource Name (ARN) of the simulation job.</p>
205    pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
206        self.arn = ::std::option::Option::Some(input.into());
207        self
208    }
209    /// <p>The Amazon Resource Name (ARN) of the simulation job.</p>
210    pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
211        self.arn = input;
212        self
213    }
214    /// <p>The Amazon Resource Name (ARN) of the simulation job.</p>
215    pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
216        &self.arn
217    }
218    /// <p>The name of the simulation job.</p>
219    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
220        self.name = ::std::option::Option::Some(input.into());
221        self
222    }
223    /// <p>The name of the simulation job.</p>
224    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
225        self.name = input;
226        self
227    }
228    /// <p>The name of the simulation job.</p>
229    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
230        &self.name
231    }
232    /// <p>Status of the simulation job.</p>
233    pub fn status(mut self, input: crate::types::SimulationJobStatus) -> Self {
234        self.status = ::std::option::Option::Some(input);
235        self
236    }
237    /// <p>Status of the simulation job.</p>
238    pub fn set_status(mut self, input: ::std::option::Option<crate::types::SimulationJobStatus>) -> Self {
239        self.status = input;
240        self
241    }
242    /// <p>Status of the simulation job.</p>
243    pub fn get_status(&self) -> &::std::option::Option<crate::types::SimulationJobStatus> {
244        &self.status
245    }
246    /// <p>The time, in milliseconds since the epoch, when the simulation job was last started.</p>
247    pub fn last_started_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
248        self.last_started_at = ::std::option::Option::Some(input);
249        self
250    }
251    /// <p>The time, in milliseconds since the epoch, when the simulation job was last started.</p>
252    pub fn set_last_started_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
253        self.last_started_at = input;
254        self
255    }
256    /// <p>The time, in milliseconds since the epoch, when the simulation job was last started.</p>
257    pub fn get_last_started_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
258        &self.last_started_at
259    }
260    /// <p>The time, in milliseconds since the epoch, when the simulation job was last updated.</p>
261    pub fn last_updated_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
262        self.last_updated_at = ::std::option::Option::Some(input);
263        self
264    }
265    /// <p>The time, in milliseconds since the epoch, when the simulation job was last updated.</p>
266    pub fn set_last_updated_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
267        self.last_updated_at = input;
268        self
269    }
270    /// <p>The time, in milliseconds since the epoch, when the simulation job was last updated.</p>
271    pub fn get_last_updated_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
272        &self.last_updated_at
273    }
274    /// <p>The failure behavior the simulation job.</p>
275    /// <dl>
276    /// <dt>
277    /// Continue
278    /// </dt>
279    /// <dd>
280    /// <p>Leaves the host running for its maximum timeout duration after a <code>4XX</code> error code.</p>
281    /// </dd>
282    /// <dt>
283    /// Fail
284    /// </dt>
285    /// <dd>
286    /// <p>Stop the simulation job and terminate the instance.</p>
287    /// </dd>
288    /// </dl>
289    pub fn failure_behavior(mut self, input: crate::types::FailureBehavior) -> Self {
290        self.failure_behavior = ::std::option::Option::Some(input);
291        self
292    }
293    /// <p>The failure behavior the simulation job.</p>
294    /// <dl>
295    /// <dt>
296    /// Continue
297    /// </dt>
298    /// <dd>
299    /// <p>Leaves the host running for its maximum timeout duration after a <code>4XX</code> error code.</p>
300    /// </dd>
301    /// <dt>
302    /// Fail
303    /// </dt>
304    /// <dd>
305    /// <p>Stop the simulation job and terminate the instance.</p>
306    /// </dd>
307    /// </dl>
308    pub fn set_failure_behavior(mut self, input: ::std::option::Option<crate::types::FailureBehavior>) -> Self {
309        self.failure_behavior = input;
310        self
311    }
312    /// <p>The failure behavior the simulation job.</p>
313    /// <dl>
314    /// <dt>
315    /// Continue
316    /// </dt>
317    /// <dd>
318    /// <p>Leaves the host running for its maximum timeout duration after a <code>4XX</code> error code.</p>
319    /// </dd>
320    /// <dt>
321    /// Fail
322    /// </dt>
323    /// <dd>
324    /// <p>Stop the simulation job and terminate the instance.</p>
325    /// </dd>
326    /// </dl>
327    pub fn get_failure_behavior(&self) -> &::std::option::Option<crate::types::FailureBehavior> {
328        &self.failure_behavior
329    }
330    /// <p>The failure code of the simulation job if it failed.</p>
331    pub fn failure_code(mut self, input: crate::types::SimulationJobErrorCode) -> Self {
332        self.failure_code = ::std::option::Option::Some(input);
333        self
334    }
335    /// <p>The failure code of the simulation job if it failed.</p>
336    pub fn set_failure_code(mut self, input: ::std::option::Option<crate::types::SimulationJobErrorCode>) -> Self {
337        self.failure_code = input;
338        self
339    }
340    /// <p>The failure code of the simulation job if it failed.</p>
341    pub fn get_failure_code(&self) -> &::std::option::Option<crate::types::SimulationJobErrorCode> {
342        &self.failure_code
343    }
344    /// <p>The reason why the simulation job failed.</p>
345    pub fn failure_reason(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
346        self.failure_reason = ::std::option::Option::Some(input.into());
347        self
348    }
349    /// <p>The reason why the simulation job failed.</p>
350    pub fn set_failure_reason(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
351        self.failure_reason = input;
352        self
353    }
354    /// <p>The reason why the simulation job failed.</p>
355    pub fn get_failure_reason(&self) -> &::std::option::Option<::std::string::String> {
356        &self.failure_reason
357    }
358    /// <p>A unique identifier for this <code>SimulationJob</code> request.</p>
359    pub fn client_request_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
360        self.client_request_token = ::std::option::Option::Some(input.into());
361        self
362    }
363    /// <p>A unique identifier for this <code>SimulationJob</code> request.</p>
364    pub fn set_client_request_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
365        self.client_request_token = input;
366        self
367    }
368    /// <p>A unique identifier for this <code>SimulationJob</code> request.</p>
369    pub fn get_client_request_token(&self) -> &::std::option::Option<::std::string::String> {
370        &self.client_request_token
371    }
372    /// <p>Location for output files generated by the simulation job.</p>
373    pub fn output_location(mut self, input: crate::types::OutputLocation) -> Self {
374        self.output_location = ::std::option::Option::Some(input);
375        self
376    }
377    /// <p>Location for output files generated by the simulation job.</p>
378    pub fn set_output_location(mut self, input: ::std::option::Option<crate::types::OutputLocation>) -> Self {
379        self.output_location = input;
380        self
381    }
382    /// <p>Location for output files generated by the simulation job.</p>
383    pub fn get_output_location(&self) -> &::std::option::Option<crate::types::OutputLocation> {
384        &self.output_location
385    }
386    /// <p>The logging configuration.</p>
387    pub fn logging_config(mut self, input: crate::types::LoggingConfig) -> Self {
388        self.logging_config = ::std::option::Option::Some(input);
389        self
390    }
391    /// <p>The logging configuration.</p>
392    pub fn set_logging_config(mut self, input: ::std::option::Option<crate::types::LoggingConfig>) -> Self {
393        self.logging_config = input;
394        self
395    }
396    /// <p>The logging configuration.</p>
397    pub fn get_logging_config(&self) -> &::std::option::Option<crate::types::LoggingConfig> {
398        &self.logging_config
399    }
400    /// <p>The maximum simulation job duration in seconds. The value must be 8 days (691,200 seconds) or less.</p>
401    pub fn max_job_duration_in_seconds(mut self, input: i64) -> Self {
402        self.max_job_duration_in_seconds = ::std::option::Option::Some(input);
403        self
404    }
405    /// <p>The maximum simulation job duration in seconds. The value must be 8 days (691,200 seconds) or less.</p>
406    pub fn set_max_job_duration_in_seconds(mut self, input: ::std::option::Option<i64>) -> Self {
407        self.max_job_duration_in_seconds = input;
408        self
409    }
410    /// <p>The maximum simulation job duration in seconds. The value must be 8 days (691,200 seconds) or less.</p>
411    pub fn get_max_job_duration_in_seconds(&self) -> &::std::option::Option<i64> {
412        &self.max_job_duration_in_seconds
413    }
414    /// <p>The simulation job execution duration in milliseconds.</p>
415    pub fn simulation_time_millis(mut self, input: i64) -> Self {
416        self.simulation_time_millis = ::std::option::Option::Some(input);
417        self
418    }
419    /// <p>The simulation job execution duration in milliseconds.</p>
420    pub fn set_simulation_time_millis(mut self, input: ::std::option::Option<i64>) -> Self {
421        self.simulation_time_millis = input;
422        self
423    }
424    /// <p>The simulation job execution duration in milliseconds.</p>
425    pub fn get_simulation_time_millis(&self) -> &::std::option::Option<i64> {
426        &self.simulation_time_millis
427    }
428    /// <p>The IAM role that allows the simulation instance to call the AWS APIs that are specified in its associated policies on your behalf. This is how credentials are passed in to your simulation job.</p>
429    pub fn iam_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
430        self.iam_role = ::std::option::Option::Some(input.into());
431        self
432    }
433    /// <p>The IAM role that allows the simulation instance to call the AWS APIs that are specified in its associated policies on your behalf. This is how credentials are passed in to your simulation job.</p>
434    pub fn set_iam_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
435        self.iam_role = input;
436        self
437    }
438    /// <p>The IAM role that allows the simulation instance to call the AWS APIs that are specified in its associated policies on your behalf. This is how credentials are passed in to your simulation job.</p>
439    pub fn get_iam_role(&self) -> &::std::option::Option<::std::string::String> {
440        &self.iam_role
441    }
442    /// Appends an item to `robot_applications`.
443    ///
444    /// To override the contents of this collection use [`set_robot_applications`](Self::set_robot_applications).
445    ///
446    /// <p>A list of robot applications.</p>
447    pub fn robot_applications(mut self, input: crate::types::RobotApplicationConfig) -> Self {
448        let mut v = self.robot_applications.unwrap_or_default();
449        v.push(input);
450        self.robot_applications = ::std::option::Option::Some(v);
451        self
452    }
453    /// <p>A list of robot applications.</p>
454    pub fn set_robot_applications(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::RobotApplicationConfig>>) -> Self {
455        self.robot_applications = input;
456        self
457    }
458    /// <p>A list of robot applications.</p>
459    pub fn get_robot_applications(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::RobotApplicationConfig>> {
460        &self.robot_applications
461    }
462    /// Appends an item to `simulation_applications`.
463    ///
464    /// To override the contents of this collection use [`set_simulation_applications`](Self::set_simulation_applications).
465    ///
466    /// <p>A list of simulation applications.</p>
467    pub fn simulation_applications(mut self, input: crate::types::SimulationApplicationConfig) -> Self {
468        let mut v = self.simulation_applications.unwrap_or_default();
469        v.push(input);
470        self.simulation_applications = ::std::option::Option::Some(v);
471        self
472    }
473    /// <p>A list of simulation applications.</p>
474    pub fn set_simulation_applications(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::SimulationApplicationConfig>>) -> Self {
475        self.simulation_applications = input;
476        self
477    }
478    /// <p>A list of simulation applications.</p>
479    pub fn get_simulation_applications(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::SimulationApplicationConfig>> {
480        &self.simulation_applications
481    }
482    /// Appends an item to `data_sources`.
483    ///
484    /// To override the contents of this collection use [`set_data_sources`](Self::set_data_sources).
485    ///
486    /// <p>The data sources for the simulation job.</p>
487    pub fn data_sources(mut self, input: crate::types::DataSource) -> Self {
488        let mut v = self.data_sources.unwrap_or_default();
489        v.push(input);
490        self.data_sources = ::std::option::Option::Some(v);
491        self
492    }
493    /// <p>The data sources for the simulation job.</p>
494    pub fn set_data_sources(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DataSource>>) -> Self {
495        self.data_sources = input;
496        self
497    }
498    /// <p>The data sources for the simulation job.</p>
499    pub fn get_data_sources(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DataSource>> {
500        &self.data_sources
501    }
502    /// Adds a key-value pair to `tags`.
503    ///
504    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
505    ///
506    /// <p>A map that contains tag keys and tag values that are attached to the simulation job.</p>
507    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
508        let mut hash_map = self.tags.unwrap_or_default();
509        hash_map.insert(k.into(), v.into());
510        self.tags = ::std::option::Option::Some(hash_map);
511        self
512    }
513    /// <p>A map that contains tag keys and tag values that are attached to the simulation job.</p>
514    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
515        self.tags = input;
516        self
517    }
518    /// <p>A map that contains tag keys and tag values that are attached to the simulation job.</p>
519    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
520        &self.tags
521    }
522    /// <p>VPC configuration information.</p>
523    pub fn vpc_config(mut self, input: crate::types::VpcConfigResponse) -> Self {
524        self.vpc_config = ::std::option::Option::Some(input);
525        self
526    }
527    /// <p>VPC configuration information.</p>
528    pub fn set_vpc_config(mut self, input: ::std::option::Option<crate::types::VpcConfigResponse>) -> Self {
529        self.vpc_config = input;
530        self
531    }
532    /// <p>VPC configuration information.</p>
533    pub fn get_vpc_config(&self) -> &::std::option::Option<crate::types::VpcConfigResponse> {
534        &self.vpc_config
535    }
536    /// <p>Information about a network interface.</p>
537    pub fn network_interface(mut self, input: crate::types::NetworkInterface) -> Self {
538        self.network_interface = ::std::option::Option::Some(input);
539        self
540    }
541    /// <p>Information about a network interface.</p>
542    pub fn set_network_interface(mut self, input: ::std::option::Option<crate::types::NetworkInterface>) -> Self {
543        self.network_interface = input;
544        self
545    }
546    /// <p>Information about a network interface.</p>
547    pub fn get_network_interface(&self) -> &::std::option::Option<crate::types::NetworkInterface> {
548        &self.network_interface
549    }
550    /// <p>Compute information for the simulation job</p>
551    pub fn compute(mut self, input: crate::types::ComputeResponse) -> Self {
552        self.compute = ::std::option::Option::Some(input);
553        self
554    }
555    /// <p>Compute information for the simulation job</p>
556    pub fn set_compute(mut self, input: ::std::option::Option<crate::types::ComputeResponse>) -> Self {
557        self.compute = input;
558        self
559    }
560    /// <p>Compute information for the simulation job</p>
561    pub fn get_compute(&self) -> &::std::option::Option<crate::types::ComputeResponse> {
562        &self.compute
563    }
564    /// Consumes the builder and constructs a [`SimulationJob`](crate::types::SimulationJob).
565    pub fn build(self) -> crate::types::SimulationJob {
566        crate::types::SimulationJob {
567            arn: self.arn,
568            name: self.name,
569            status: self.status,
570            last_started_at: self.last_started_at,
571            last_updated_at: self.last_updated_at,
572            failure_behavior: self.failure_behavior,
573            failure_code: self.failure_code,
574            failure_reason: self.failure_reason,
575            client_request_token: self.client_request_token,
576            output_location: self.output_location,
577            logging_config: self.logging_config,
578            max_job_duration_in_seconds: self.max_job_duration_in_seconds.unwrap_or_default(),
579            simulation_time_millis: self.simulation_time_millis.unwrap_or_default(),
580            iam_role: self.iam_role,
581            robot_applications: self.robot_applications,
582            simulation_applications: self.simulation_applications,
583            data_sources: self.data_sources,
584            tags: self.tags,
585            vpc_config: self.vpc_config,
586            network_interface: self.network_interface,
587            compute: self.compute,
588        }
589    }
590}