/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the personalize-2018-05-22.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Personalize.Model
{
///
/// Container for the parameters to the CreateSolution operation.
/// Creates the configuration for training a model. A trained model is known as a solution
/// version. After the configuration is created, you train the model (create a solution
/// version) by calling the CreateSolutionVersion
/// operation. Every time you call CreateSolutionVersion
, a new version of
/// the solution is created.
///
///
///
/// After creating a solution version, you check its accuracy by calling GetSolutionMetrics.
/// When you are satisfied with the version, you deploy it using CreateCampaign.
/// The campaign provides recommendations to a client through the GetRecommendations
/// API.
///
///
///
/// To train a model, Amazon Personalize requires training data and a recipe. The training
/// data comes from the dataset group that you provide in the request. A recipe specifies
/// the training algorithm and a feature transformation. You can specify one of the predefined
/// recipes provided by Amazon Personalize.
///
///
///
/// Amazon Personalize doesn't support configuring the hpoObjective
for solution
/// hyperparameter optimization at this time.
///
///
///
/// Status
///
///
///
/// A solution can be in one of the following states:
///
/// -
///
/// CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
///
///
-
///
/// DELETE PENDING > DELETE IN_PROGRESS
///
///
///
/// To get the status of the solution, call DescribeSolution.
/// Wait until the status shows as ACTIVE before calling CreateSolutionVersion
.
///
/// Related APIs
///
///
///
public partial class CreateSolutionRequest : AmazonPersonalizeRequest
{
private string _datasetGroupArn;
private string _eventType;
private string _name;
private bool? _performAutoML;
private bool? _performhpo;
private string _recipeArn;
private SolutionConfig _solutionConfig;
private List _tags = new List();
///
/// Gets and sets the property DatasetGroupArn.
///
/// The Amazon Resource Name (ARN) of the dataset group that provides the training data.
///
///
[AWSProperty(Required=true, Max=256)]
public string DatasetGroupArn
{
get { return this._datasetGroupArn; }
set { this._datasetGroupArn = value; }
}
// Check to see if DatasetGroupArn property is set
internal bool IsSetDatasetGroupArn()
{
return this._datasetGroupArn != null;
}
///
/// Gets and sets the property EventType.
///
/// When your have multiple event types (using an EVENT_TYPE
schema field),
/// this parameter specifies which event type (for example, 'click' or 'like') is used
/// for training the model.
///
///
///
/// If you do not provide an eventType
, Amazon Personalize will use all interactions
/// for training with equal weight regardless of type.
///
///
[AWSProperty(Max=256)]
public string EventType
{
get { return this._eventType; }
set { this._eventType = value; }
}
// Check to see if EventType property is set
internal bool IsSetEventType()
{
return this._eventType != null;
}
///
/// Gets and sets the property Name.
///
/// The name for the solution.
///
///
[AWSProperty(Required=true, Min=1, Max=63)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property PerformAutoML.
///
/// We don't recommend enabling automated machine learning. Instead, match your use case
/// to the available Amazon Personalize recipes. For more information, see Determining
/// your use case.
///
///
///
/// Whether to perform automated machine learning (AutoML). The default is false
.
/// For this case, you must specify recipeArn
.
///
///
///
/// When set to true
, Amazon Personalize analyzes your training data and
/// selects the optimal USER_PERSONALIZATION recipe and hyperparameters. In this case,
/// you must omit recipeArn
. Amazon Personalize determines the optimal recipe
/// by running tests with different values for the hyperparameters. AutoML lengthens the
/// training process as compared to selecting a specific recipe.
///
///
public bool PerformAutoML
{
get { return this._performAutoML.GetValueOrDefault(); }
set { this._performAutoML = value; }
}
// Check to see if PerformAutoML property is set
internal bool IsSetPerformAutoML()
{
return this._performAutoML.HasValue;
}
///
/// Gets and sets the property PerformHPO.
///
/// Whether to perform hyperparameter optimization (HPO) on the specified or selected
/// recipe. The default is false
.
///
///
///
/// When performing AutoML, this parameter is always true
and you should
/// not set it to false
.
///
///
public bool PerformHPO
{
get { return this._performhpo.GetValueOrDefault(); }
set { this._performhpo = value; }
}
// Check to see if PerformHPO property is set
internal bool IsSetPerformHPO()
{
return this._performhpo.HasValue;
}
///
/// Gets and sets the property RecipeArn.
///
/// The ARN of the recipe to use for model training. This is required when performAutoML
/// is false.
///
///
[AWSProperty(Max=256)]
public string RecipeArn
{
get { return this._recipeArn; }
set { this._recipeArn = value; }
}
// Check to see if RecipeArn property is set
internal bool IsSetRecipeArn()
{
return this._recipeArn != null;
}
///
/// Gets and sets the property SolutionConfig.
///
/// The configuration to use with the solution. When performAutoML
is set
/// to true, Amazon Personalize only evaluates the autoMLConfig
section of
/// the solution configuration.
///
///
///
/// Amazon Personalize doesn't support configuring the hpoObjective
at this
/// time.
///
///
///
public SolutionConfig SolutionConfig
{
get { return this._solutionConfig; }
set { this._solutionConfig = value; }
}
// Check to see if SolutionConfig property is set
internal bool IsSetSolutionConfig()
{
return this._solutionConfig != null;
}
///
/// Gets and sets the property Tags.
///
/// A list of tags
/// to apply to the solution.
///
///
[AWSProperty(Min=0, Max=200)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
}
}