1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/personalize/Personalize_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/personalize/model/SolutionConfig.h>
10 #include <aws/personalize/model/TrainingMode.h>
11 #include <aws/personalize/model/TunedHPOParams.h>
12 #include <aws/core/utils/DateTime.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace Personalize
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p>An object that provides information about a specific version of a
32    * <a>Solution</a>.</p><p><h3>See Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/personalize-2018-05-22/SolutionVersion">AWS
34    * API Reference</a></p>
35    */
36   class AWS_PERSONALIZE_API SolutionVersion
37   {
38   public:
39     SolutionVersion();
40     SolutionVersion(Aws::Utils::Json::JsonView jsonValue);
41     SolutionVersion& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p>The ARN of the solution version.</p>
47      */
GetSolutionVersionArn()48     inline const Aws::String& GetSolutionVersionArn() const{ return m_solutionVersionArn; }
49 
50     /**
51      * <p>The ARN of the solution version.</p>
52      */
SolutionVersionArnHasBeenSet()53     inline bool SolutionVersionArnHasBeenSet() const { return m_solutionVersionArnHasBeenSet; }
54 
55     /**
56      * <p>The ARN of the solution version.</p>
57      */
SetSolutionVersionArn(const Aws::String & value)58     inline void SetSolutionVersionArn(const Aws::String& value) { m_solutionVersionArnHasBeenSet = true; m_solutionVersionArn = value; }
59 
60     /**
61      * <p>The ARN of the solution version.</p>
62      */
SetSolutionVersionArn(Aws::String && value)63     inline void SetSolutionVersionArn(Aws::String&& value) { m_solutionVersionArnHasBeenSet = true; m_solutionVersionArn = std::move(value); }
64 
65     /**
66      * <p>The ARN of the solution version.</p>
67      */
SetSolutionVersionArn(const char * value)68     inline void SetSolutionVersionArn(const char* value) { m_solutionVersionArnHasBeenSet = true; m_solutionVersionArn.assign(value); }
69 
70     /**
71      * <p>The ARN of the solution version.</p>
72      */
WithSolutionVersionArn(const Aws::String & value)73     inline SolutionVersion& WithSolutionVersionArn(const Aws::String& value) { SetSolutionVersionArn(value); return *this;}
74 
75     /**
76      * <p>The ARN of the solution version.</p>
77      */
WithSolutionVersionArn(Aws::String && value)78     inline SolutionVersion& WithSolutionVersionArn(Aws::String&& value) { SetSolutionVersionArn(std::move(value)); return *this;}
79 
80     /**
81      * <p>The ARN of the solution version.</p>
82      */
WithSolutionVersionArn(const char * value)83     inline SolutionVersion& WithSolutionVersionArn(const char* value) { SetSolutionVersionArn(value); return *this;}
84 
85 
86     /**
87      * <p>The ARN of the solution.</p>
88      */
GetSolutionArn()89     inline const Aws::String& GetSolutionArn() const{ return m_solutionArn; }
90 
91     /**
92      * <p>The ARN of the solution.</p>
93      */
SolutionArnHasBeenSet()94     inline bool SolutionArnHasBeenSet() const { return m_solutionArnHasBeenSet; }
95 
96     /**
97      * <p>The ARN of the solution.</p>
98      */
SetSolutionArn(const Aws::String & value)99     inline void SetSolutionArn(const Aws::String& value) { m_solutionArnHasBeenSet = true; m_solutionArn = value; }
100 
101     /**
102      * <p>The ARN of the solution.</p>
103      */
SetSolutionArn(Aws::String && value)104     inline void SetSolutionArn(Aws::String&& value) { m_solutionArnHasBeenSet = true; m_solutionArn = std::move(value); }
105 
106     /**
107      * <p>The ARN of the solution.</p>
108      */
SetSolutionArn(const char * value)109     inline void SetSolutionArn(const char* value) { m_solutionArnHasBeenSet = true; m_solutionArn.assign(value); }
110 
111     /**
112      * <p>The ARN of the solution.</p>
113      */
WithSolutionArn(const Aws::String & value)114     inline SolutionVersion& WithSolutionArn(const Aws::String& value) { SetSolutionArn(value); return *this;}
115 
116     /**
117      * <p>The ARN of the solution.</p>
118      */
WithSolutionArn(Aws::String && value)119     inline SolutionVersion& WithSolutionArn(Aws::String&& value) { SetSolutionArn(std::move(value)); return *this;}
120 
121     /**
122      * <p>The ARN of the solution.</p>
123      */
WithSolutionArn(const char * value)124     inline SolutionVersion& WithSolutionArn(const char* value) { SetSolutionArn(value); return *this;}
125 
126 
127     /**
128      * <p>Whether to perform hyperparameter optimization (HPO) on the chosen recipe.
129      * The default is <code>false</code>.</p>
130      */
GetPerformHPO()131     inline bool GetPerformHPO() const{ return m_performHPO; }
132 
133     /**
134      * <p>Whether to perform hyperparameter optimization (HPO) on the chosen recipe.
135      * The default is <code>false</code>.</p>
136      */
PerformHPOHasBeenSet()137     inline bool PerformHPOHasBeenSet() const { return m_performHPOHasBeenSet; }
138 
139     /**
140      * <p>Whether to perform hyperparameter optimization (HPO) on the chosen recipe.
141      * The default is <code>false</code>.</p>
142      */
SetPerformHPO(bool value)143     inline void SetPerformHPO(bool value) { m_performHPOHasBeenSet = true; m_performHPO = value; }
144 
145     /**
146      * <p>Whether to perform hyperparameter optimization (HPO) on the chosen recipe.
147      * The default is <code>false</code>.</p>
148      */
WithPerformHPO(bool value)149     inline SolutionVersion& WithPerformHPO(bool value) { SetPerformHPO(value); return *this;}
150 
151 
152     /**
153      * <p>When true, Amazon Personalize searches for the most optimal recipe according
154      * to the solution configuration. When false (the default), Amazon Personalize uses
155      * <code>recipeArn</code>.</p>
156      */
GetPerformAutoML()157     inline bool GetPerformAutoML() const{ return m_performAutoML; }
158 
159     /**
160      * <p>When true, Amazon Personalize searches for the most optimal recipe according
161      * to the solution configuration. When false (the default), Amazon Personalize uses
162      * <code>recipeArn</code>.</p>
163      */
PerformAutoMLHasBeenSet()164     inline bool PerformAutoMLHasBeenSet() const { return m_performAutoMLHasBeenSet; }
165 
166     /**
167      * <p>When true, Amazon Personalize searches for the most optimal recipe according
168      * to the solution configuration. When false (the default), Amazon Personalize uses
169      * <code>recipeArn</code>.</p>
170      */
SetPerformAutoML(bool value)171     inline void SetPerformAutoML(bool value) { m_performAutoMLHasBeenSet = true; m_performAutoML = value; }
172 
173     /**
174      * <p>When true, Amazon Personalize searches for the most optimal recipe according
175      * to the solution configuration. When false (the default), Amazon Personalize uses
176      * <code>recipeArn</code>.</p>
177      */
WithPerformAutoML(bool value)178     inline SolutionVersion& WithPerformAutoML(bool value) { SetPerformAutoML(value); return *this;}
179 
180 
181     /**
182      * <p>The ARN of the recipe used in the solution.</p>
183      */
GetRecipeArn()184     inline const Aws::String& GetRecipeArn() const{ return m_recipeArn; }
185 
186     /**
187      * <p>The ARN of the recipe used in the solution.</p>
188      */
RecipeArnHasBeenSet()189     inline bool RecipeArnHasBeenSet() const { return m_recipeArnHasBeenSet; }
190 
191     /**
192      * <p>The ARN of the recipe used in the solution.</p>
193      */
SetRecipeArn(const Aws::String & value)194     inline void SetRecipeArn(const Aws::String& value) { m_recipeArnHasBeenSet = true; m_recipeArn = value; }
195 
196     /**
197      * <p>The ARN of the recipe used in the solution.</p>
198      */
SetRecipeArn(Aws::String && value)199     inline void SetRecipeArn(Aws::String&& value) { m_recipeArnHasBeenSet = true; m_recipeArn = std::move(value); }
200 
201     /**
202      * <p>The ARN of the recipe used in the solution.</p>
203      */
SetRecipeArn(const char * value)204     inline void SetRecipeArn(const char* value) { m_recipeArnHasBeenSet = true; m_recipeArn.assign(value); }
205 
206     /**
207      * <p>The ARN of the recipe used in the solution.</p>
208      */
WithRecipeArn(const Aws::String & value)209     inline SolutionVersion& WithRecipeArn(const Aws::String& value) { SetRecipeArn(value); return *this;}
210 
211     /**
212      * <p>The ARN of the recipe used in the solution.</p>
213      */
WithRecipeArn(Aws::String && value)214     inline SolutionVersion& WithRecipeArn(Aws::String&& value) { SetRecipeArn(std::move(value)); return *this;}
215 
216     /**
217      * <p>The ARN of the recipe used in the solution.</p>
218      */
WithRecipeArn(const char * value)219     inline SolutionVersion& WithRecipeArn(const char* value) { SetRecipeArn(value); return *this;}
220 
221 
222     /**
223      * <p>The event type (for example, 'click' or 'like') that is used for training the
224      * model.</p>
225      */
GetEventType()226     inline const Aws::String& GetEventType() const{ return m_eventType; }
227 
228     /**
229      * <p>The event type (for example, 'click' or 'like') that is used for training the
230      * model.</p>
231      */
EventTypeHasBeenSet()232     inline bool EventTypeHasBeenSet() const { return m_eventTypeHasBeenSet; }
233 
234     /**
235      * <p>The event type (for example, 'click' or 'like') that is used for training the
236      * model.</p>
237      */
SetEventType(const Aws::String & value)238     inline void SetEventType(const Aws::String& value) { m_eventTypeHasBeenSet = true; m_eventType = value; }
239 
240     /**
241      * <p>The event type (for example, 'click' or 'like') that is used for training the
242      * model.</p>
243      */
SetEventType(Aws::String && value)244     inline void SetEventType(Aws::String&& value) { m_eventTypeHasBeenSet = true; m_eventType = std::move(value); }
245 
246     /**
247      * <p>The event type (for example, 'click' or 'like') that is used for training the
248      * model.</p>
249      */
SetEventType(const char * value)250     inline void SetEventType(const char* value) { m_eventTypeHasBeenSet = true; m_eventType.assign(value); }
251 
252     /**
253      * <p>The event type (for example, 'click' or 'like') that is used for training the
254      * model.</p>
255      */
WithEventType(const Aws::String & value)256     inline SolutionVersion& WithEventType(const Aws::String& value) { SetEventType(value); return *this;}
257 
258     /**
259      * <p>The event type (for example, 'click' or 'like') that is used for training the
260      * model.</p>
261      */
WithEventType(Aws::String && value)262     inline SolutionVersion& WithEventType(Aws::String&& value) { SetEventType(std::move(value)); return *this;}
263 
264     /**
265      * <p>The event type (for example, 'click' or 'like') that is used for training the
266      * model.</p>
267      */
WithEventType(const char * value)268     inline SolutionVersion& WithEventType(const char* value) { SetEventType(value); return *this;}
269 
270 
271     /**
272      * <p>The Amazon Resource Name (ARN) of the dataset group providing the training
273      * data.</p>
274      */
GetDatasetGroupArn()275     inline const Aws::String& GetDatasetGroupArn() const{ return m_datasetGroupArn; }
276 
277     /**
278      * <p>The Amazon Resource Name (ARN) of the dataset group providing the training
279      * data.</p>
280      */
DatasetGroupArnHasBeenSet()281     inline bool DatasetGroupArnHasBeenSet() const { return m_datasetGroupArnHasBeenSet; }
282 
283     /**
284      * <p>The Amazon Resource Name (ARN) of the dataset group providing the training
285      * data.</p>
286      */
SetDatasetGroupArn(const Aws::String & value)287     inline void SetDatasetGroupArn(const Aws::String& value) { m_datasetGroupArnHasBeenSet = true; m_datasetGroupArn = value; }
288 
289     /**
290      * <p>The Amazon Resource Name (ARN) of the dataset group providing the training
291      * data.</p>
292      */
SetDatasetGroupArn(Aws::String && value)293     inline void SetDatasetGroupArn(Aws::String&& value) { m_datasetGroupArnHasBeenSet = true; m_datasetGroupArn = std::move(value); }
294 
295     /**
296      * <p>The Amazon Resource Name (ARN) of the dataset group providing the training
297      * data.</p>
298      */
SetDatasetGroupArn(const char * value)299     inline void SetDatasetGroupArn(const char* value) { m_datasetGroupArnHasBeenSet = true; m_datasetGroupArn.assign(value); }
300 
301     /**
302      * <p>The Amazon Resource Name (ARN) of the dataset group providing the training
303      * data.</p>
304      */
WithDatasetGroupArn(const Aws::String & value)305     inline SolutionVersion& WithDatasetGroupArn(const Aws::String& value) { SetDatasetGroupArn(value); return *this;}
306 
307     /**
308      * <p>The Amazon Resource Name (ARN) of the dataset group providing the training
309      * data.</p>
310      */
WithDatasetGroupArn(Aws::String && value)311     inline SolutionVersion& WithDatasetGroupArn(Aws::String&& value) { SetDatasetGroupArn(std::move(value)); return *this;}
312 
313     /**
314      * <p>The Amazon Resource Name (ARN) of the dataset group providing the training
315      * data.</p>
316      */
WithDatasetGroupArn(const char * value)317     inline SolutionVersion& WithDatasetGroupArn(const char* value) { SetDatasetGroupArn(value); return *this;}
318 
319 
320     /**
321      * <p>Describes the configuration properties for the solution.</p>
322      */
GetSolutionConfig()323     inline const SolutionConfig& GetSolutionConfig() const{ return m_solutionConfig; }
324 
325     /**
326      * <p>Describes the configuration properties for the solution.</p>
327      */
SolutionConfigHasBeenSet()328     inline bool SolutionConfigHasBeenSet() const { return m_solutionConfigHasBeenSet; }
329 
330     /**
331      * <p>Describes the configuration properties for the solution.</p>
332      */
SetSolutionConfig(const SolutionConfig & value)333     inline void SetSolutionConfig(const SolutionConfig& value) { m_solutionConfigHasBeenSet = true; m_solutionConfig = value; }
334 
335     /**
336      * <p>Describes the configuration properties for the solution.</p>
337      */
SetSolutionConfig(SolutionConfig && value)338     inline void SetSolutionConfig(SolutionConfig&& value) { m_solutionConfigHasBeenSet = true; m_solutionConfig = std::move(value); }
339 
340     /**
341      * <p>Describes the configuration properties for the solution.</p>
342      */
WithSolutionConfig(const SolutionConfig & value)343     inline SolutionVersion& WithSolutionConfig(const SolutionConfig& value) { SetSolutionConfig(value); return *this;}
344 
345     /**
346      * <p>Describes the configuration properties for the solution.</p>
347      */
WithSolutionConfig(SolutionConfig && value)348     inline SolutionVersion& WithSolutionConfig(SolutionConfig&& value) { SetSolutionConfig(std::move(value)); return *this;}
349 
350 
351     /**
352      * <p>The time used to train the model. You are billed for the time it takes to
353      * train a model. This field is visible only after Amazon Personalize successfully
354      * trains a model.</p>
355      */
GetTrainingHours()356     inline double GetTrainingHours() const{ return m_trainingHours; }
357 
358     /**
359      * <p>The time used to train the model. You are billed for the time it takes to
360      * train a model. This field is visible only after Amazon Personalize successfully
361      * trains a model.</p>
362      */
TrainingHoursHasBeenSet()363     inline bool TrainingHoursHasBeenSet() const { return m_trainingHoursHasBeenSet; }
364 
365     /**
366      * <p>The time used to train the model. You are billed for the time it takes to
367      * train a model. This field is visible only after Amazon Personalize successfully
368      * trains a model.</p>
369      */
SetTrainingHours(double value)370     inline void SetTrainingHours(double value) { m_trainingHoursHasBeenSet = true; m_trainingHours = value; }
371 
372     /**
373      * <p>The time used to train the model. You are billed for the time it takes to
374      * train a model. This field is visible only after Amazon Personalize successfully
375      * trains a model.</p>
376      */
WithTrainingHours(double value)377     inline SolutionVersion& WithTrainingHours(double value) { SetTrainingHours(value); return *this;}
378 
379 
380     /**
381      * <p>The scope of training to be performed when creating the solution version. The
382      * <code>FULL</code> option trains the solution version based on the entirety of
383      * the input solution's training data, while the <code>UPDATE</code> option
384      * processes only the data that has changed in comparison to the input solution.
385      * Choose <code>UPDATE</code> when you want to incrementally update your solution
386      * version instead of creating an entirely new one.</p>  <p>The
387      * <code>UPDATE</code> option can only be used when you already have an active
388      * solution version created from the input solution using the <code>FULL</code>
389      * option and the input solution was trained with the <a
390      * href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a>
391      * recipe or the <a
392      * href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html">HRNN-Coldstart</a>
393      * recipe.</p>
394      */
GetTrainingMode()395     inline const TrainingMode& GetTrainingMode() const{ return m_trainingMode; }
396 
397     /**
398      * <p>The scope of training to be performed when creating the solution version. The
399      * <code>FULL</code> option trains the solution version based on the entirety of
400      * the input solution's training data, while the <code>UPDATE</code> option
401      * processes only the data that has changed in comparison to the input solution.
402      * Choose <code>UPDATE</code> when you want to incrementally update your solution
403      * version instead of creating an entirely new one.</p>  <p>The
404      * <code>UPDATE</code> option can only be used when you already have an active
405      * solution version created from the input solution using the <code>FULL</code>
406      * option and the input solution was trained with the <a
407      * href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a>
408      * recipe or the <a
409      * href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html">HRNN-Coldstart</a>
410      * recipe.</p>
411      */
TrainingModeHasBeenSet()412     inline bool TrainingModeHasBeenSet() const { return m_trainingModeHasBeenSet; }
413 
414     /**
415      * <p>The scope of training to be performed when creating the solution version. The
416      * <code>FULL</code> option trains the solution version based on the entirety of
417      * the input solution's training data, while the <code>UPDATE</code> option
418      * processes only the data that has changed in comparison to the input solution.
419      * Choose <code>UPDATE</code> when you want to incrementally update your solution
420      * version instead of creating an entirely new one.</p>  <p>The
421      * <code>UPDATE</code> option can only be used when you already have an active
422      * solution version created from the input solution using the <code>FULL</code>
423      * option and the input solution was trained with the <a
424      * href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a>
425      * recipe or the <a
426      * href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html">HRNN-Coldstart</a>
427      * recipe.</p>
428      */
SetTrainingMode(const TrainingMode & value)429     inline void SetTrainingMode(const TrainingMode& value) { m_trainingModeHasBeenSet = true; m_trainingMode = value; }
430 
431     /**
432      * <p>The scope of training to be performed when creating the solution version. The
433      * <code>FULL</code> option trains the solution version based on the entirety of
434      * the input solution's training data, while the <code>UPDATE</code> option
435      * processes only the data that has changed in comparison to the input solution.
436      * Choose <code>UPDATE</code> when you want to incrementally update your solution
437      * version instead of creating an entirely new one.</p>  <p>The
438      * <code>UPDATE</code> option can only be used when you already have an active
439      * solution version created from the input solution using the <code>FULL</code>
440      * option and the input solution was trained with the <a
441      * href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a>
442      * recipe or the <a
443      * href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html">HRNN-Coldstart</a>
444      * recipe.</p>
445      */
SetTrainingMode(TrainingMode && value)446     inline void SetTrainingMode(TrainingMode&& value) { m_trainingModeHasBeenSet = true; m_trainingMode = std::move(value); }
447 
448     /**
449      * <p>The scope of training to be performed when creating the solution version. The
450      * <code>FULL</code> option trains the solution version based on the entirety of
451      * the input solution's training data, while the <code>UPDATE</code> option
452      * processes only the data that has changed in comparison to the input solution.
453      * Choose <code>UPDATE</code> when you want to incrementally update your solution
454      * version instead of creating an entirely new one.</p>  <p>The
455      * <code>UPDATE</code> option can only be used when you already have an active
456      * solution version created from the input solution using the <code>FULL</code>
457      * option and the input solution was trained with the <a
458      * href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a>
459      * recipe or the <a
460      * href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html">HRNN-Coldstart</a>
461      * recipe.</p>
462      */
WithTrainingMode(const TrainingMode & value)463     inline SolutionVersion& WithTrainingMode(const TrainingMode& value) { SetTrainingMode(value); return *this;}
464 
465     /**
466      * <p>The scope of training to be performed when creating the solution version. The
467      * <code>FULL</code> option trains the solution version based on the entirety of
468      * the input solution's training data, while the <code>UPDATE</code> option
469      * processes only the data that has changed in comparison to the input solution.
470      * Choose <code>UPDATE</code> when you want to incrementally update your solution
471      * version instead of creating an entirely new one.</p>  <p>The
472      * <code>UPDATE</code> option can only be used when you already have an active
473      * solution version created from the input solution using the <code>FULL</code>
474      * option and the input solution was trained with the <a
475      * href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a>
476      * recipe or the <a
477      * href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html">HRNN-Coldstart</a>
478      * recipe.</p>
479      */
WithTrainingMode(TrainingMode && value)480     inline SolutionVersion& WithTrainingMode(TrainingMode&& value) { SetTrainingMode(std::move(value)); return *this;}
481 
482 
483     /**
484      * <p>If hyperparameter optimization was performed, contains the hyperparameter
485      * values of the best performing model.</p>
486      */
GetTunedHPOParams()487     inline const TunedHPOParams& GetTunedHPOParams() const{ return m_tunedHPOParams; }
488 
489     /**
490      * <p>If hyperparameter optimization was performed, contains the hyperparameter
491      * values of the best performing model.</p>
492      */
TunedHPOParamsHasBeenSet()493     inline bool TunedHPOParamsHasBeenSet() const { return m_tunedHPOParamsHasBeenSet; }
494 
495     /**
496      * <p>If hyperparameter optimization was performed, contains the hyperparameter
497      * values of the best performing model.</p>
498      */
SetTunedHPOParams(const TunedHPOParams & value)499     inline void SetTunedHPOParams(const TunedHPOParams& value) { m_tunedHPOParamsHasBeenSet = true; m_tunedHPOParams = value; }
500 
501     /**
502      * <p>If hyperparameter optimization was performed, contains the hyperparameter
503      * values of the best performing model.</p>
504      */
SetTunedHPOParams(TunedHPOParams && value)505     inline void SetTunedHPOParams(TunedHPOParams&& value) { m_tunedHPOParamsHasBeenSet = true; m_tunedHPOParams = std::move(value); }
506 
507     /**
508      * <p>If hyperparameter optimization was performed, contains the hyperparameter
509      * values of the best performing model.</p>
510      */
WithTunedHPOParams(const TunedHPOParams & value)511     inline SolutionVersion& WithTunedHPOParams(const TunedHPOParams& value) { SetTunedHPOParams(value); return *this;}
512 
513     /**
514      * <p>If hyperparameter optimization was performed, contains the hyperparameter
515      * values of the best performing model.</p>
516      */
WithTunedHPOParams(TunedHPOParams && value)517     inline SolutionVersion& WithTunedHPOParams(TunedHPOParams&& value) { SetTunedHPOParams(std::move(value)); return *this;}
518 
519 
520     /**
521      * <p>The status of the solution version.</p> <p>A solution version can be in one
522      * of the following states:</p> <ul> <li> <p>CREATE PENDING</p> </li> <li>
523      * <p>CREATE IN_PROGRESS</p> </li> <li> <p>ACTIVE</p> </li> <li> <p>CREATE
524      * FAILED</p> </li> <li> <p>CREATE STOPPING</p> </li> <li> <p>CREATE STOPPED</p>
525      * </li> </ul>
526      */
GetStatus()527     inline const Aws::String& GetStatus() const{ return m_status; }
528 
529     /**
530      * <p>The status of the solution version.</p> <p>A solution version can be in one
531      * of the following states:</p> <ul> <li> <p>CREATE PENDING</p> </li> <li>
532      * <p>CREATE IN_PROGRESS</p> </li> <li> <p>ACTIVE</p> </li> <li> <p>CREATE
533      * FAILED</p> </li> <li> <p>CREATE STOPPING</p> </li> <li> <p>CREATE STOPPED</p>
534      * </li> </ul>
535      */
StatusHasBeenSet()536     inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
537 
538     /**
539      * <p>The status of the solution version.</p> <p>A solution version can be in one
540      * of the following states:</p> <ul> <li> <p>CREATE PENDING</p> </li> <li>
541      * <p>CREATE IN_PROGRESS</p> </li> <li> <p>ACTIVE</p> </li> <li> <p>CREATE
542      * FAILED</p> </li> <li> <p>CREATE STOPPING</p> </li> <li> <p>CREATE STOPPED</p>
543      * </li> </ul>
544      */
SetStatus(const Aws::String & value)545     inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; }
546 
547     /**
548      * <p>The status of the solution version.</p> <p>A solution version can be in one
549      * of the following states:</p> <ul> <li> <p>CREATE PENDING</p> </li> <li>
550      * <p>CREATE IN_PROGRESS</p> </li> <li> <p>ACTIVE</p> </li> <li> <p>CREATE
551      * FAILED</p> </li> <li> <p>CREATE STOPPING</p> </li> <li> <p>CREATE STOPPED</p>
552      * </li> </ul>
553      */
SetStatus(Aws::String && value)554     inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
555 
556     /**
557      * <p>The status of the solution version.</p> <p>A solution version can be in one
558      * of the following states:</p> <ul> <li> <p>CREATE PENDING</p> </li> <li>
559      * <p>CREATE IN_PROGRESS</p> </li> <li> <p>ACTIVE</p> </li> <li> <p>CREATE
560      * FAILED</p> </li> <li> <p>CREATE STOPPING</p> </li> <li> <p>CREATE STOPPED</p>
561      * </li> </ul>
562      */
SetStatus(const char * value)563     inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); }
564 
565     /**
566      * <p>The status of the solution version.</p> <p>A solution version can be in one
567      * of the following states:</p> <ul> <li> <p>CREATE PENDING</p> </li> <li>
568      * <p>CREATE IN_PROGRESS</p> </li> <li> <p>ACTIVE</p> </li> <li> <p>CREATE
569      * FAILED</p> </li> <li> <p>CREATE STOPPING</p> </li> <li> <p>CREATE STOPPED</p>
570      * </li> </ul>
571      */
WithStatus(const Aws::String & value)572     inline SolutionVersion& WithStatus(const Aws::String& value) { SetStatus(value); return *this;}
573 
574     /**
575      * <p>The status of the solution version.</p> <p>A solution version can be in one
576      * of the following states:</p> <ul> <li> <p>CREATE PENDING</p> </li> <li>
577      * <p>CREATE IN_PROGRESS</p> </li> <li> <p>ACTIVE</p> </li> <li> <p>CREATE
578      * FAILED</p> </li> <li> <p>CREATE STOPPING</p> </li> <li> <p>CREATE STOPPED</p>
579      * </li> </ul>
580      */
WithStatus(Aws::String && value)581     inline SolutionVersion& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;}
582 
583     /**
584      * <p>The status of the solution version.</p> <p>A solution version can be in one
585      * of the following states:</p> <ul> <li> <p>CREATE PENDING</p> </li> <li>
586      * <p>CREATE IN_PROGRESS</p> </li> <li> <p>ACTIVE</p> </li> <li> <p>CREATE
587      * FAILED</p> </li> <li> <p>CREATE STOPPING</p> </li> <li> <p>CREATE STOPPED</p>
588      * </li> </ul>
589      */
WithStatus(const char * value)590     inline SolutionVersion& WithStatus(const char* value) { SetStatus(value); return *this;}
591 
592 
593     /**
594      * <p>If training a solution version fails, the reason for the failure.</p>
595      */
GetFailureReason()596     inline const Aws::String& GetFailureReason() const{ return m_failureReason; }
597 
598     /**
599      * <p>If training a solution version fails, the reason for the failure.</p>
600      */
FailureReasonHasBeenSet()601     inline bool FailureReasonHasBeenSet() const { return m_failureReasonHasBeenSet; }
602 
603     /**
604      * <p>If training a solution version fails, the reason for the failure.</p>
605      */
SetFailureReason(const Aws::String & value)606     inline void SetFailureReason(const Aws::String& value) { m_failureReasonHasBeenSet = true; m_failureReason = value; }
607 
608     /**
609      * <p>If training a solution version fails, the reason for the failure.</p>
610      */
SetFailureReason(Aws::String && value)611     inline void SetFailureReason(Aws::String&& value) { m_failureReasonHasBeenSet = true; m_failureReason = std::move(value); }
612 
613     /**
614      * <p>If training a solution version fails, the reason for the failure.</p>
615      */
SetFailureReason(const char * value)616     inline void SetFailureReason(const char* value) { m_failureReasonHasBeenSet = true; m_failureReason.assign(value); }
617 
618     /**
619      * <p>If training a solution version fails, the reason for the failure.</p>
620      */
WithFailureReason(const Aws::String & value)621     inline SolutionVersion& WithFailureReason(const Aws::String& value) { SetFailureReason(value); return *this;}
622 
623     /**
624      * <p>If training a solution version fails, the reason for the failure.</p>
625      */
WithFailureReason(Aws::String && value)626     inline SolutionVersion& WithFailureReason(Aws::String&& value) { SetFailureReason(std::move(value)); return *this;}
627 
628     /**
629      * <p>If training a solution version fails, the reason for the failure.</p>
630      */
WithFailureReason(const char * value)631     inline SolutionVersion& WithFailureReason(const char* value) { SetFailureReason(value); return *this;}
632 
633 
634     /**
635      * <p>The date and time (in Unix time) that this version of the solution was
636      * created.</p>
637      */
GetCreationDateTime()638     inline const Aws::Utils::DateTime& GetCreationDateTime() const{ return m_creationDateTime; }
639 
640     /**
641      * <p>The date and time (in Unix time) that this version of the solution was
642      * created.</p>
643      */
CreationDateTimeHasBeenSet()644     inline bool CreationDateTimeHasBeenSet() const { return m_creationDateTimeHasBeenSet; }
645 
646     /**
647      * <p>The date and time (in Unix time) that this version of the solution was
648      * created.</p>
649      */
SetCreationDateTime(const Aws::Utils::DateTime & value)650     inline void SetCreationDateTime(const Aws::Utils::DateTime& value) { m_creationDateTimeHasBeenSet = true; m_creationDateTime = value; }
651 
652     /**
653      * <p>The date and time (in Unix time) that this version of the solution was
654      * created.</p>
655      */
SetCreationDateTime(Aws::Utils::DateTime && value)656     inline void SetCreationDateTime(Aws::Utils::DateTime&& value) { m_creationDateTimeHasBeenSet = true; m_creationDateTime = std::move(value); }
657 
658     /**
659      * <p>The date and time (in Unix time) that this version of the solution was
660      * created.</p>
661      */
WithCreationDateTime(const Aws::Utils::DateTime & value)662     inline SolutionVersion& WithCreationDateTime(const Aws::Utils::DateTime& value) { SetCreationDateTime(value); return *this;}
663 
664     /**
665      * <p>The date and time (in Unix time) that this version of the solution was
666      * created.</p>
667      */
WithCreationDateTime(Aws::Utils::DateTime && value)668     inline SolutionVersion& WithCreationDateTime(Aws::Utils::DateTime&& value) { SetCreationDateTime(std::move(value)); return *this;}
669 
670 
671     /**
672      * <p>The date and time (in Unix time) that the solution was last updated.</p>
673      */
GetLastUpdatedDateTime()674     inline const Aws::Utils::DateTime& GetLastUpdatedDateTime() const{ return m_lastUpdatedDateTime; }
675 
676     /**
677      * <p>The date and time (in Unix time) that the solution was last updated.</p>
678      */
LastUpdatedDateTimeHasBeenSet()679     inline bool LastUpdatedDateTimeHasBeenSet() const { return m_lastUpdatedDateTimeHasBeenSet; }
680 
681     /**
682      * <p>The date and time (in Unix time) that the solution was last updated.</p>
683      */
SetLastUpdatedDateTime(const Aws::Utils::DateTime & value)684     inline void SetLastUpdatedDateTime(const Aws::Utils::DateTime& value) { m_lastUpdatedDateTimeHasBeenSet = true; m_lastUpdatedDateTime = value; }
685 
686     /**
687      * <p>The date and time (in Unix time) that the solution was last updated.</p>
688      */
SetLastUpdatedDateTime(Aws::Utils::DateTime && value)689     inline void SetLastUpdatedDateTime(Aws::Utils::DateTime&& value) { m_lastUpdatedDateTimeHasBeenSet = true; m_lastUpdatedDateTime = std::move(value); }
690 
691     /**
692      * <p>The date and time (in Unix time) that the solution was last updated.</p>
693      */
WithLastUpdatedDateTime(const Aws::Utils::DateTime & value)694     inline SolutionVersion& WithLastUpdatedDateTime(const Aws::Utils::DateTime& value) { SetLastUpdatedDateTime(value); return *this;}
695 
696     /**
697      * <p>The date and time (in Unix time) that the solution was last updated.</p>
698      */
WithLastUpdatedDateTime(Aws::Utils::DateTime && value)699     inline SolutionVersion& WithLastUpdatedDateTime(Aws::Utils::DateTime&& value) { SetLastUpdatedDateTime(std::move(value)); return *this;}
700 
701   private:
702 
703     Aws::String m_solutionVersionArn;
704     bool m_solutionVersionArnHasBeenSet;
705 
706     Aws::String m_solutionArn;
707     bool m_solutionArnHasBeenSet;
708 
709     bool m_performHPO;
710     bool m_performHPOHasBeenSet;
711 
712     bool m_performAutoML;
713     bool m_performAutoMLHasBeenSet;
714 
715     Aws::String m_recipeArn;
716     bool m_recipeArnHasBeenSet;
717 
718     Aws::String m_eventType;
719     bool m_eventTypeHasBeenSet;
720 
721     Aws::String m_datasetGroupArn;
722     bool m_datasetGroupArnHasBeenSet;
723 
724     SolutionConfig m_solutionConfig;
725     bool m_solutionConfigHasBeenSet;
726 
727     double m_trainingHours;
728     bool m_trainingHoursHasBeenSet;
729 
730     TrainingMode m_trainingMode;
731     bool m_trainingModeHasBeenSet;
732 
733     TunedHPOParams m_tunedHPOParams;
734     bool m_tunedHPOParamsHasBeenSet;
735 
736     Aws::String m_status;
737     bool m_statusHasBeenSet;
738 
739     Aws::String m_failureReason;
740     bool m_failureReasonHasBeenSet;
741 
742     Aws::Utils::DateTime m_creationDateTime;
743     bool m_creationDateTimeHasBeenSet;
744 
745     Aws::Utils::DateTime m_lastUpdatedDateTime;
746     bool m_lastUpdatedDateTimeHasBeenSet;
747   };
748 
749 } // namespace Model
750 } // namespace Personalize
751 } // namespace Aws
752