Skip to main content

aws_sdk_personalize/types/
_solution_version.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>An object that provides information about a specific version of a <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_Solution.html">Solution</a> in a Custom dataset group.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct SolutionVersion {
7    /// <p>The name of the solution version.</p>
8    pub name: ::std::option::Option<::std::string::String>,
9    /// <p>The ARN of the solution version.</p>
10    pub solution_version_arn: ::std::option::Option<::std::string::String>,
11    /// <p>The ARN of the solution.</p>
12    pub solution_arn: ::std::option::Option<::std::string::String>,
13    /// <p>Whether to perform hyperparameter optimization (HPO) on the chosen recipe. The default is <code>false</code>.</p>
14    pub perform_hpo: bool,
15    /// <p>When true, Amazon Personalize searches for the most optimal recipe according to the solution configuration. When false (the default), Amazon Personalize uses <code>recipeArn</code>.</p>
16    pub perform_auto_ml: bool,
17    /// <p>Whether the solution version should perform an incremental update. When set to true, the training will process only the data that has changed since the latest training, similar to when trainingMode is set to UPDATE. This can only be used with solution versions that use the User-Personalization recipe.</p>
18    pub perform_incremental_update: ::std::option::Option<bool>,
19    /// <p>The ARN of the recipe used in the solution.</p>
20    pub recipe_arn: ::std::option::Option<::std::string::String>,
21    /// <p>The event type (for example, 'click' or 'like') that is used for training the model.</p>
22    pub event_type: ::std::option::Option<::std::string::String>,
23    /// <p>The Amazon Resource Name (ARN) of the dataset group providing the training data.</p>
24    pub dataset_group_arn: ::std::option::Option<::std::string::String>,
25    /// <p>Describes the configuration properties for the solution.</p>
26    pub solution_config: ::std::option::Option<crate::types::SolutionConfig>,
27    /// <p>The time used to train the model. You are billed for the time it takes to train a model. This field is visible only after Amazon Personalize successfully trains a model.</p>
28    pub training_hours: ::std::option::Option<f64>,
29    /// <p>The scope of training to be performed when creating the solution version. A <code>FULL</code> training considers all of the data in your dataset group. An <code>UPDATE</code> processes only the data that has changed since the latest training. Only solution versions created with the User-Personalization recipe can use <code>UPDATE</code>.</p>
30    pub training_mode: ::std::option::Option<crate::types::TrainingMode>,
31    /// <p>If hyperparameter optimization was performed, contains the hyperparameter values of the best performing model.</p>
32    pub tuned_hpo_params: ::std::option::Option<crate::types::TunedHpoParams>,
33    /// <p>The status of the solution version.</p>
34    /// <p>A solution version can be in one of the following states:</p>
35    /// <ul>
36    /// <li>
37    /// <p>CREATE PENDING</p></li>
38    /// <li>
39    /// <p>CREATE IN_PROGRESS</p></li>
40    /// <li>
41    /// <p>ACTIVE</p></li>
42    /// <li>
43    /// <p>CREATE FAILED</p></li>
44    /// <li>
45    /// <p>CREATE STOPPING</p></li>
46    /// <li>
47    /// <p>CREATE STOPPED</p></li>
48    /// </ul>
49    pub status: ::std::option::Option<::std::string::String>,
50    /// <p>If training a solution version fails, the reason for the failure.</p>
51    pub failure_reason: ::std::option::Option<::std::string::String>,
52    /// <p>The date and time (in Unix time) that this version of the solution was created.</p>
53    pub creation_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
54    /// <p>The date and time (in Unix time) that the solution was last updated.</p>
55    pub last_updated_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
56    /// <p>Whether the solution version was created automatically or manually.</p>
57    pub training_type: ::std::option::Option<crate::types::TrainingType>,
58}
59impl SolutionVersion {
60    /// <p>The name of the solution version.</p>
61    pub fn name(&self) -> ::std::option::Option<&str> {
62        self.name.as_deref()
63    }
64    /// <p>The ARN of the solution version.</p>
65    pub fn solution_version_arn(&self) -> ::std::option::Option<&str> {
66        self.solution_version_arn.as_deref()
67    }
68    /// <p>The ARN of the solution.</p>
69    pub fn solution_arn(&self) -> ::std::option::Option<&str> {
70        self.solution_arn.as_deref()
71    }
72    /// <p>Whether to perform hyperparameter optimization (HPO) on the chosen recipe. The default is <code>false</code>.</p>
73    pub fn perform_hpo(&self) -> bool {
74        self.perform_hpo
75    }
76    /// <p>When true, Amazon Personalize searches for the most optimal recipe according to the solution configuration. When false (the default), Amazon Personalize uses <code>recipeArn</code>.</p>
77    pub fn perform_auto_ml(&self) -> bool {
78        self.perform_auto_ml
79    }
80    /// <p>Whether the solution version should perform an incremental update. When set to true, the training will process only the data that has changed since the latest training, similar to when trainingMode is set to UPDATE. This can only be used with solution versions that use the User-Personalization recipe.</p>
81    pub fn perform_incremental_update(&self) -> ::std::option::Option<bool> {
82        self.perform_incremental_update
83    }
84    /// <p>The ARN of the recipe used in the solution.</p>
85    pub fn recipe_arn(&self) -> ::std::option::Option<&str> {
86        self.recipe_arn.as_deref()
87    }
88    /// <p>The event type (for example, 'click' or 'like') that is used for training the model.</p>
89    pub fn event_type(&self) -> ::std::option::Option<&str> {
90        self.event_type.as_deref()
91    }
92    /// <p>The Amazon Resource Name (ARN) of the dataset group providing the training data.</p>
93    pub fn dataset_group_arn(&self) -> ::std::option::Option<&str> {
94        self.dataset_group_arn.as_deref()
95    }
96    /// <p>Describes the configuration properties for the solution.</p>
97    pub fn solution_config(&self) -> ::std::option::Option<&crate::types::SolutionConfig> {
98        self.solution_config.as_ref()
99    }
100    /// <p>The time used to train the model. You are billed for the time it takes to train a model. This field is visible only after Amazon Personalize successfully trains a model.</p>
101    pub fn training_hours(&self) -> ::std::option::Option<f64> {
102        self.training_hours
103    }
104    /// <p>The scope of training to be performed when creating the solution version. A <code>FULL</code> training considers all of the data in your dataset group. An <code>UPDATE</code> processes only the data that has changed since the latest training. Only solution versions created with the User-Personalization recipe can use <code>UPDATE</code>.</p>
105    pub fn training_mode(&self) -> ::std::option::Option<&crate::types::TrainingMode> {
106        self.training_mode.as_ref()
107    }
108    /// <p>If hyperparameter optimization was performed, contains the hyperparameter values of the best performing model.</p>
109    pub fn tuned_hpo_params(&self) -> ::std::option::Option<&crate::types::TunedHpoParams> {
110        self.tuned_hpo_params.as_ref()
111    }
112    /// <p>The status of the solution version.</p>
113    /// <p>A solution version can be in one of the following states:</p>
114    /// <ul>
115    /// <li>
116    /// <p>CREATE PENDING</p></li>
117    /// <li>
118    /// <p>CREATE IN_PROGRESS</p></li>
119    /// <li>
120    /// <p>ACTIVE</p></li>
121    /// <li>
122    /// <p>CREATE FAILED</p></li>
123    /// <li>
124    /// <p>CREATE STOPPING</p></li>
125    /// <li>
126    /// <p>CREATE STOPPED</p></li>
127    /// </ul>
128    pub fn status(&self) -> ::std::option::Option<&str> {
129        self.status.as_deref()
130    }
131    /// <p>If training a solution version fails, the reason for the failure.</p>
132    pub fn failure_reason(&self) -> ::std::option::Option<&str> {
133        self.failure_reason.as_deref()
134    }
135    /// <p>The date and time (in Unix time) that this version of the solution was created.</p>
136    pub fn creation_date_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
137        self.creation_date_time.as_ref()
138    }
139    /// <p>The date and time (in Unix time) that the solution was last updated.</p>
140    pub fn last_updated_date_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
141        self.last_updated_date_time.as_ref()
142    }
143    /// <p>Whether the solution version was created automatically or manually.</p>
144    pub fn training_type(&self) -> ::std::option::Option<&crate::types::TrainingType> {
145        self.training_type.as_ref()
146    }
147}
148impl SolutionVersion {
149    /// Creates a new builder-style object to manufacture [`SolutionVersion`](crate::types::SolutionVersion).
150    pub fn builder() -> crate::types::builders::SolutionVersionBuilder {
151        crate::types::builders::SolutionVersionBuilder::default()
152    }
153}
154
155/// A builder for [`SolutionVersion`](crate::types::SolutionVersion).
156#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
157#[non_exhaustive]
158pub struct SolutionVersionBuilder {
159    pub(crate) name: ::std::option::Option<::std::string::String>,
160    pub(crate) solution_version_arn: ::std::option::Option<::std::string::String>,
161    pub(crate) solution_arn: ::std::option::Option<::std::string::String>,
162    pub(crate) perform_hpo: ::std::option::Option<bool>,
163    pub(crate) perform_auto_ml: ::std::option::Option<bool>,
164    pub(crate) perform_incremental_update: ::std::option::Option<bool>,
165    pub(crate) recipe_arn: ::std::option::Option<::std::string::String>,
166    pub(crate) event_type: ::std::option::Option<::std::string::String>,
167    pub(crate) dataset_group_arn: ::std::option::Option<::std::string::String>,
168    pub(crate) solution_config: ::std::option::Option<crate::types::SolutionConfig>,
169    pub(crate) training_hours: ::std::option::Option<f64>,
170    pub(crate) training_mode: ::std::option::Option<crate::types::TrainingMode>,
171    pub(crate) tuned_hpo_params: ::std::option::Option<crate::types::TunedHpoParams>,
172    pub(crate) status: ::std::option::Option<::std::string::String>,
173    pub(crate) failure_reason: ::std::option::Option<::std::string::String>,
174    pub(crate) creation_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
175    pub(crate) last_updated_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
176    pub(crate) training_type: ::std::option::Option<crate::types::TrainingType>,
177}
178impl SolutionVersionBuilder {
179    /// <p>The name of the solution version.</p>
180    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
181        self.name = ::std::option::Option::Some(input.into());
182        self
183    }
184    /// <p>The name of the solution version.</p>
185    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
186        self.name = input;
187        self
188    }
189    /// <p>The name of the solution version.</p>
190    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
191        &self.name
192    }
193    /// <p>The ARN of the solution version.</p>
194    pub fn solution_version_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
195        self.solution_version_arn = ::std::option::Option::Some(input.into());
196        self
197    }
198    /// <p>The ARN of the solution version.</p>
199    pub fn set_solution_version_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
200        self.solution_version_arn = input;
201        self
202    }
203    /// <p>The ARN of the solution version.</p>
204    pub fn get_solution_version_arn(&self) -> &::std::option::Option<::std::string::String> {
205        &self.solution_version_arn
206    }
207    /// <p>The ARN of the solution.</p>
208    pub fn solution_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
209        self.solution_arn = ::std::option::Option::Some(input.into());
210        self
211    }
212    /// <p>The ARN of the solution.</p>
213    pub fn set_solution_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
214        self.solution_arn = input;
215        self
216    }
217    /// <p>The ARN of the solution.</p>
218    pub fn get_solution_arn(&self) -> &::std::option::Option<::std::string::String> {
219        &self.solution_arn
220    }
221    /// <p>Whether to perform hyperparameter optimization (HPO) on the chosen recipe. The default is <code>false</code>.</p>
222    pub fn perform_hpo(mut self, input: bool) -> Self {
223        self.perform_hpo = ::std::option::Option::Some(input);
224        self
225    }
226    /// <p>Whether to perform hyperparameter optimization (HPO) on the chosen recipe. The default is <code>false</code>.</p>
227    pub fn set_perform_hpo(mut self, input: ::std::option::Option<bool>) -> Self {
228        self.perform_hpo = input;
229        self
230    }
231    /// <p>Whether to perform hyperparameter optimization (HPO) on the chosen recipe. The default is <code>false</code>.</p>
232    pub fn get_perform_hpo(&self) -> &::std::option::Option<bool> {
233        &self.perform_hpo
234    }
235    /// <p>When true, Amazon Personalize searches for the most optimal recipe according to the solution configuration. When false (the default), Amazon Personalize uses <code>recipeArn</code>.</p>
236    pub fn perform_auto_ml(mut self, input: bool) -> Self {
237        self.perform_auto_ml = ::std::option::Option::Some(input);
238        self
239    }
240    /// <p>When true, Amazon Personalize searches for the most optimal recipe according to the solution configuration. When false (the default), Amazon Personalize uses <code>recipeArn</code>.</p>
241    pub fn set_perform_auto_ml(mut self, input: ::std::option::Option<bool>) -> Self {
242        self.perform_auto_ml = input;
243        self
244    }
245    /// <p>When true, Amazon Personalize searches for the most optimal recipe according to the solution configuration. When false (the default), Amazon Personalize uses <code>recipeArn</code>.</p>
246    pub fn get_perform_auto_ml(&self) -> &::std::option::Option<bool> {
247        &self.perform_auto_ml
248    }
249    /// <p>Whether the solution version should perform an incremental update. When set to true, the training will process only the data that has changed since the latest training, similar to when trainingMode is set to UPDATE. This can only be used with solution versions that use the User-Personalization recipe.</p>
250    pub fn perform_incremental_update(mut self, input: bool) -> Self {
251        self.perform_incremental_update = ::std::option::Option::Some(input);
252        self
253    }
254    /// <p>Whether the solution version should perform an incremental update. When set to true, the training will process only the data that has changed since the latest training, similar to when trainingMode is set to UPDATE. This can only be used with solution versions that use the User-Personalization recipe.</p>
255    pub fn set_perform_incremental_update(mut self, input: ::std::option::Option<bool>) -> Self {
256        self.perform_incremental_update = input;
257        self
258    }
259    /// <p>Whether the solution version should perform an incremental update. When set to true, the training will process only the data that has changed since the latest training, similar to when trainingMode is set to UPDATE. This can only be used with solution versions that use the User-Personalization recipe.</p>
260    pub fn get_perform_incremental_update(&self) -> &::std::option::Option<bool> {
261        &self.perform_incremental_update
262    }
263    /// <p>The ARN of the recipe used in the solution.</p>
264    pub fn recipe_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
265        self.recipe_arn = ::std::option::Option::Some(input.into());
266        self
267    }
268    /// <p>The ARN of the recipe used in the solution.</p>
269    pub fn set_recipe_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
270        self.recipe_arn = input;
271        self
272    }
273    /// <p>The ARN of the recipe used in the solution.</p>
274    pub fn get_recipe_arn(&self) -> &::std::option::Option<::std::string::String> {
275        &self.recipe_arn
276    }
277    /// <p>The event type (for example, 'click' or 'like') that is used for training the model.</p>
278    pub fn event_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
279        self.event_type = ::std::option::Option::Some(input.into());
280        self
281    }
282    /// <p>The event type (for example, 'click' or 'like') that is used for training the model.</p>
283    pub fn set_event_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
284        self.event_type = input;
285        self
286    }
287    /// <p>The event type (for example, 'click' or 'like') that is used for training the model.</p>
288    pub fn get_event_type(&self) -> &::std::option::Option<::std::string::String> {
289        &self.event_type
290    }
291    /// <p>The Amazon Resource Name (ARN) of the dataset group providing the training data.</p>
292    pub fn dataset_group_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
293        self.dataset_group_arn = ::std::option::Option::Some(input.into());
294        self
295    }
296    /// <p>The Amazon Resource Name (ARN) of the dataset group providing the training data.</p>
297    pub fn set_dataset_group_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
298        self.dataset_group_arn = input;
299        self
300    }
301    /// <p>The Amazon Resource Name (ARN) of the dataset group providing the training data.</p>
302    pub fn get_dataset_group_arn(&self) -> &::std::option::Option<::std::string::String> {
303        &self.dataset_group_arn
304    }
305    /// <p>Describes the configuration properties for the solution.</p>
306    pub fn solution_config(mut self, input: crate::types::SolutionConfig) -> Self {
307        self.solution_config = ::std::option::Option::Some(input);
308        self
309    }
310    /// <p>Describes the configuration properties for the solution.</p>
311    pub fn set_solution_config(mut self, input: ::std::option::Option<crate::types::SolutionConfig>) -> Self {
312        self.solution_config = input;
313        self
314    }
315    /// <p>Describes the configuration properties for the solution.</p>
316    pub fn get_solution_config(&self) -> &::std::option::Option<crate::types::SolutionConfig> {
317        &self.solution_config
318    }
319    /// <p>The time used to train the model. You are billed for the time it takes to train a model. This field is visible only after Amazon Personalize successfully trains a model.</p>
320    pub fn training_hours(mut self, input: f64) -> Self {
321        self.training_hours = ::std::option::Option::Some(input);
322        self
323    }
324    /// <p>The time used to train the model. You are billed for the time it takes to train a model. This field is visible only after Amazon Personalize successfully trains a model.</p>
325    pub fn set_training_hours(mut self, input: ::std::option::Option<f64>) -> Self {
326        self.training_hours = input;
327        self
328    }
329    /// <p>The time used to train the model. You are billed for the time it takes to train a model. This field is visible only after Amazon Personalize successfully trains a model.</p>
330    pub fn get_training_hours(&self) -> &::std::option::Option<f64> {
331        &self.training_hours
332    }
333    /// <p>The scope of training to be performed when creating the solution version. A <code>FULL</code> training considers all of the data in your dataset group. An <code>UPDATE</code> processes only the data that has changed since the latest training. Only solution versions created with the User-Personalization recipe can use <code>UPDATE</code>.</p>
334    pub fn training_mode(mut self, input: crate::types::TrainingMode) -> Self {
335        self.training_mode = ::std::option::Option::Some(input);
336        self
337    }
338    /// <p>The scope of training to be performed when creating the solution version. A <code>FULL</code> training considers all of the data in your dataset group. An <code>UPDATE</code> processes only the data that has changed since the latest training. Only solution versions created with the User-Personalization recipe can use <code>UPDATE</code>.</p>
339    pub fn set_training_mode(mut self, input: ::std::option::Option<crate::types::TrainingMode>) -> Self {
340        self.training_mode = input;
341        self
342    }
343    /// <p>The scope of training to be performed when creating the solution version. A <code>FULL</code> training considers all of the data in your dataset group. An <code>UPDATE</code> processes only the data that has changed since the latest training. Only solution versions created with the User-Personalization recipe can use <code>UPDATE</code>.</p>
344    pub fn get_training_mode(&self) -> &::std::option::Option<crate::types::TrainingMode> {
345        &self.training_mode
346    }
347    /// <p>If hyperparameter optimization was performed, contains the hyperparameter values of the best performing model.</p>
348    pub fn tuned_hpo_params(mut self, input: crate::types::TunedHpoParams) -> Self {
349        self.tuned_hpo_params = ::std::option::Option::Some(input);
350        self
351    }
352    /// <p>If hyperparameter optimization was performed, contains the hyperparameter values of the best performing model.</p>
353    pub fn set_tuned_hpo_params(mut self, input: ::std::option::Option<crate::types::TunedHpoParams>) -> Self {
354        self.tuned_hpo_params = input;
355        self
356    }
357    /// <p>If hyperparameter optimization was performed, contains the hyperparameter values of the best performing model.</p>
358    pub fn get_tuned_hpo_params(&self) -> &::std::option::Option<crate::types::TunedHpoParams> {
359        &self.tuned_hpo_params
360    }
361    /// <p>The status of the solution version.</p>
362    /// <p>A solution version can be in one of the following states:</p>
363    /// <ul>
364    /// <li>
365    /// <p>CREATE PENDING</p></li>
366    /// <li>
367    /// <p>CREATE IN_PROGRESS</p></li>
368    /// <li>
369    /// <p>ACTIVE</p></li>
370    /// <li>
371    /// <p>CREATE FAILED</p></li>
372    /// <li>
373    /// <p>CREATE STOPPING</p></li>
374    /// <li>
375    /// <p>CREATE STOPPED</p></li>
376    /// </ul>
377    pub fn status(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
378        self.status = ::std::option::Option::Some(input.into());
379        self
380    }
381    /// <p>The status of the solution version.</p>
382    /// <p>A solution version can be in one of the following states:</p>
383    /// <ul>
384    /// <li>
385    /// <p>CREATE PENDING</p></li>
386    /// <li>
387    /// <p>CREATE IN_PROGRESS</p></li>
388    /// <li>
389    /// <p>ACTIVE</p></li>
390    /// <li>
391    /// <p>CREATE FAILED</p></li>
392    /// <li>
393    /// <p>CREATE STOPPING</p></li>
394    /// <li>
395    /// <p>CREATE STOPPED</p></li>
396    /// </ul>
397    pub fn set_status(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
398        self.status = input;
399        self
400    }
401    /// <p>The status of the solution version.</p>
402    /// <p>A solution version can be in one of the following states:</p>
403    /// <ul>
404    /// <li>
405    /// <p>CREATE PENDING</p></li>
406    /// <li>
407    /// <p>CREATE IN_PROGRESS</p></li>
408    /// <li>
409    /// <p>ACTIVE</p></li>
410    /// <li>
411    /// <p>CREATE FAILED</p></li>
412    /// <li>
413    /// <p>CREATE STOPPING</p></li>
414    /// <li>
415    /// <p>CREATE STOPPED</p></li>
416    /// </ul>
417    pub fn get_status(&self) -> &::std::option::Option<::std::string::String> {
418        &self.status
419    }
420    /// <p>If training a solution version fails, the reason for the failure.</p>
421    pub fn failure_reason(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
422        self.failure_reason = ::std::option::Option::Some(input.into());
423        self
424    }
425    /// <p>If training a solution version fails, the reason for the failure.</p>
426    pub fn set_failure_reason(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
427        self.failure_reason = input;
428        self
429    }
430    /// <p>If training a solution version fails, the reason for the failure.</p>
431    pub fn get_failure_reason(&self) -> &::std::option::Option<::std::string::String> {
432        &self.failure_reason
433    }
434    /// <p>The date and time (in Unix time) that this version of the solution was created.</p>
435    pub fn creation_date_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
436        self.creation_date_time = ::std::option::Option::Some(input);
437        self
438    }
439    /// <p>The date and time (in Unix time) that this version of the solution was created.</p>
440    pub fn set_creation_date_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
441        self.creation_date_time = input;
442        self
443    }
444    /// <p>The date and time (in Unix time) that this version of the solution was created.</p>
445    pub fn get_creation_date_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
446        &self.creation_date_time
447    }
448    /// <p>The date and time (in Unix time) that the solution was last updated.</p>
449    pub fn last_updated_date_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
450        self.last_updated_date_time = ::std::option::Option::Some(input);
451        self
452    }
453    /// <p>The date and time (in Unix time) that the solution was last updated.</p>
454    pub fn set_last_updated_date_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
455        self.last_updated_date_time = input;
456        self
457    }
458    /// <p>The date and time (in Unix time) that the solution was last updated.</p>
459    pub fn get_last_updated_date_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
460        &self.last_updated_date_time
461    }
462    /// <p>Whether the solution version was created automatically or manually.</p>
463    pub fn training_type(mut self, input: crate::types::TrainingType) -> Self {
464        self.training_type = ::std::option::Option::Some(input);
465        self
466    }
467    /// <p>Whether the solution version was created automatically or manually.</p>
468    pub fn set_training_type(mut self, input: ::std::option::Option<crate::types::TrainingType>) -> Self {
469        self.training_type = input;
470        self
471    }
472    /// <p>Whether the solution version was created automatically or manually.</p>
473    pub fn get_training_type(&self) -> &::std::option::Option<crate::types::TrainingType> {
474        &self.training_type
475    }
476    /// Consumes the builder and constructs a [`SolutionVersion`](crate::types::SolutionVersion).
477    pub fn build(self) -> crate::types::SolutionVersion {
478        crate::types::SolutionVersion {
479            name: self.name,
480            solution_version_arn: self.solution_version_arn,
481            solution_arn: self.solution_arn,
482            perform_hpo: self.perform_hpo.unwrap_or_default(),
483            perform_auto_ml: self.perform_auto_ml.unwrap_or_default(),
484            perform_incremental_update: self.perform_incremental_update,
485            recipe_arn: self.recipe_arn,
486            event_type: self.event_type,
487            dataset_group_arn: self.dataset_group_arn,
488            solution_config: self.solution_config,
489            training_hours: self.training_hours,
490            training_mode: self.training_mode,
491            tuned_hpo_params: self.tuned_hpo_params,
492            status: self.status,
493            failure_reason: self.failure_reason,
494            creation_date_time: self.creation_date_time,
495            last_updated_date_time: self.last_updated_date_time,
496            training_type: self.training_type,
497        }
498    }
499}