/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace SageMaker { namespace Model { /** */ class AWS_SAGEMAKER_API CreateHyperParameterTuningJobRequest : public SageMakerRequest { public: CreateHyperParameterTuningJobRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateHyperParameterTuningJob"; } Aws::String SerializePayload() const override; Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of the tuning job. This name is the prefix for the names of all * training jobs that this tuning job launches. The name must be unique within the * same AWS account and AWS Region. The name must have { } to { } characters. Valid * characters are a-z, A-Z, 0-9, and : + = @ _ % - (hyphen). The name is not case * sensitive.

*/ inline const Aws::String& GetHyperParameterTuningJobName() const{ return m_hyperParameterTuningJobName; } /** *

The name of the tuning job. This name is the prefix for the names of all * training jobs that this tuning job launches. The name must be unique within the * same AWS account and AWS Region. The name must have { } to { } characters. Valid * characters are a-z, A-Z, 0-9, and : + = @ _ % - (hyphen). The name is not case * sensitive.

*/ inline bool HyperParameterTuningJobNameHasBeenSet() const { return m_hyperParameterTuningJobNameHasBeenSet; } /** *

The name of the tuning job. This name is the prefix for the names of all * training jobs that this tuning job launches. The name must be unique within the * same AWS account and AWS Region. The name must have { } to { } characters. Valid * characters are a-z, A-Z, 0-9, and : + = @ _ % - (hyphen). The name is not case * sensitive.

*/ inline void SetHyperParameterTuningJobName(const Aws::String& value) { m_hyperParameterTuningJobNameHasBeenSet = true; m_hyperParameterTuningJobName = value; } /** *

The name of the tuning job. This name is the prefix for the names of all * training jobs that this tuning job launches. The name must be unique within the * same AWS account and AWS Region. The name must have { } to { } characters. Valid * characters are a-z, A-Z, 0-9, and : + = @ _ % - (hyphen). The name is not case * sensitive.

*/ inline void SetHyperParameterTuningJobName(Aws::String&& value) { m_hyperParameterTuningJobNameHasBeenSet = true; m_hyperParameterTuningJobName = std::move(value); } /** *

The name of the tuning job. This name is the prefix for the names of all * training jobs that this tuning job launches. The name must be unique within the * same AWS account and AWS Region. The name must have { } to { } characters. Valid * characters are a-z, A-Z, 0-9, and : + = @ _ % - (hyphen). The name is not case * sensitive.

*/ inline void SetHyperParameterTuningJobName(const char* value) { m_hyperParameterTuningJobNameHasBeenSet = true; m_hyperParameterTuningJobName.assign(value); } /** *

The name of the tuning job. This name is the prefix for the names of all * training jobs that this tuning job launches. The name must be unique within the * same AWS account and AWS Region. The name must have { } to { } characters. Valid * characters are a-z, A-Z, 0-9, and : + = @ _ % - (hyphen). The name is not case * sensitive.

*/ inline CreateHyperParameterTuningJobRequest& WithHyperParameterTuningJobName(const Aws::String& value) { SetHyperParameterTuningJobName(value); return *this;} /** *

The name of the tuning job. This name is the prefix for the names of all * training jobs that this tuning job launches. The name must be unique within the * same AWS account and AWS Region. The name must have { } to { } characters. Valid * characters are a-z, A-Z, 0-9, and : + = @ _ % - (hyphen). The name is not case * sensitive.

*/ inline CreateHyperParameterTuningJobRequest& WithHyperParameterTuningJobName(Aws::String&& value) { SetHyperParameterTuningJobName(std::move(value)); return *this;} /** *

The name of the tuning job. This name is the prefix for the names of all * training jobs that this tuning job launches. The name must be unique within the * same AWS account and AWS Region. The name must have { } to { } characters. Valid * characters are a-z, A-Z, 0-9, and : + = @ _ % - (hyphen). The name is not case * sensitive.

*/ inline CreateHyperParameterTuningJobRequest& WithHyperParameterTuningJobName(const char* value) { SetHyperParameterTuningJobName(value); return *this;} /** *

The HyperParameterTuningJobConfig object that describes the tuning * job, including the search strategy, the objective metric used to evaluate * training jobs, ranges of parameters to search, and resource limits for the * tuning job. For more information, see How * Hyperparameter Tuning Works.

*/ inline const HyperParameterTuningJobConfig& GetHyperParameterTuningJobConfig() const{ return m_hyperParameterTuningJobConfig; } /** *

The HyperParameterTuningJobConfig object that describes the tuning * job, including the search strategy, the objective metric used to evaluate * training jobs, ranges of parameters to search, and resource limits for the * tuning job. For more information, see How * Hyperparameter Tuning Works.

*/ inline bool HyperParameterTuningJobConfigHasBeenSet() const { return m_hyperParameterTuningJobConfigHasBeenSet; } /** *

The HyperParameterTuningJobConfig object that describes the tuning * job, including the search strategy, the objective metric used to evaluate * training jobs, ranges of parameters to search, and resource limits for the * tuning job. For more information, see How * Hyperparameter Tuning Works.

*/ inline void SetHyperParameterTuningJobConfig(const HyperParameterTuningJobConfig& value) { m_hyperParameterTuningJobConfigHasBeenSet = true; m_hyperParameterTuningJobConfig = value; } /** *

The HyperParameterTuningJobConfig object that describes the tuning * job, including the search strategy, the objective metric used to evaluate * training jobs, ranges of parameters to search, and resource limits for the * tuning job. For more information, see How * Hyperparameter Tuning Works.

*/ inline void SetHyperParameterTuningJobConfig(HyperParameterTuningJobConfig&& value) { m_hyperParameterTuningJobConfigHasBeenSet = true; m_hyperParameterTuningJobConfig = std::move(value); } /** *

The HyperParameterTuningJobConfig object that describes the tuning * job, including the search strategy, the objective metric used to evaluate * training jobs, ranges of parameters to search, and resource limits for the * tuning job. For more information, see How * Hyperparameter Tuning Works.

*/ inline CreateHyperParameterTuningJobRequest& WithHyperParameterTuningJobConfig(const HyperParameterTuningJobConfig& value) { SetHyperParameterTuningJobConfig(value); return *this;} /** *

The HyperParameterTuningJobConfig object that describes the tuning * job, including the search strategy, the objective metric used to evaluate * training jobs, ranges of parameters to search, and resource limits for the * tuning job. For more information, see How * Hyperparameter Tuning Works.

*/ inline CreateHyperParameterTuningJobRequest& WithHyperParameterTuningJobConfig(HyperParameterTuningJobConfig&& value) { SetHyperParameterTuningJobConfig(std::move(value)); return *this;} /** *

The HyperParameterTrainingJobDefinition object that describes the * training jobs that this tuning job launches, including static hyperparameters, * input data configuration, output data configuration, resource configuration, and * stopping condition.

*/ inline const HyperParameterTrainingJobDefinition& GetTrainingJobDefinition() const{ return m_trainingJobDefinition; } /** *

The HyperParameterTrainingJobDefinition object that describes the * training jobs that this tuning job launches, including static hyperparameters, * input data configuration, output data configuration, resource configuration, and * stopping condition.

*/ inline bool TrainingJobDefinitionHasBeenSet() const { return m_trainingJobDefinitionHasBeenSet; } /** *

The HyperParameterTrainingJobDefinition object that describes the * training jobs that this tuning job launches, including static hyperparameters, * input data configuration, output data configuration, resource configuration, and * stopping condition.

*/ inline void SetTrainingJobDefinition(const HyperParameterTrainingJobDefinition& value) { m_trainingJobDefinitionHasBeenSet = true; m_trainingJobDefinition = value; } /** *

The HyperParameterTrainingJobDefinition object that describes the * training jobs that this tuning job launches, including static hyperparameters, * input data configuration, output data configuration, resource configuration, and * stopping condition.

*/ inline void SetTrainingJobDefinition(HyperParameterTrainingJobDefinition&& value) { m_trainingJobDefinitionHasBeenSet = true; m_trainingJobDefinition = std::move(value); } /** *

The HyperParameterTrainingJobDefinition object that describes the * training jobs that this tuning job launches, including static hyperparameters, * input data configuration, output data configuration, resource configuration, and * stopping condition.

*/ inline CreateHyperParameterTuningJobRequest& WithTrainingJobDefinition(const HyperParameterTrainingJobDefinition& value) { SetTrainingJobDefinition(value); return *this;} /** *

The HyperParameterTrainingJobDefinition object that describes the * training jobs that this tuning job launches, including static hyperparameters, * input data configuration, output data configuration, resource configuration, and * stopping condition.

*/ inline CreateHyperParameterTuningJobRequest& WithTrainingJobDefinition(HyperParameterTrainingJobDefinition&& value) { SetTrainingJobDefinition(std::move(value)); return *this;} /** *

A list of the HyperParameterTrainingJobDefinition objects launched for * this tuning job.

*/ inline const Aws::Vector& GetTrainingJobDefinitions() const{ return m_trainingJobDefinitions; } /** *

A list of the HyperParameterTrainingJobDefinition objects launched for * this tuning job.

*/ inline bool TrainingJobDefinitionsHasBeenSet() const { return m_trainingJobDefinitionsHasBeenSet; } /** *

A list of the HyperParameterTrainingJobDefinition objects launched for * this tuning job.

*/ inline void SetTrainingJobDefinitions(const Aws::Vector& value) { m_trainingJobDefinitionsHasBeenSet = true; m_trainingJobDefinitions = value; } /** *

A list of the HyperParameterTrainingJobDefinition objects launched for * this tuning job.

*/ inline void SetTrainingJobDefinitions(Aws::Vector&& value) { m_trainingJobDefinitionsHasBeenSet = true; m_trainingJobDefinitions = std::move(value); } /** *

A list of the HyperParameterTrainingJobDefinition objects launched for * this tuning job.

*/ inline CreateHyperParameterTuningJobRequest& WithTrainingJobDefinitions(const Aws::Vector& value) { SetTrainingJobDefinitions(value); return *this;} /** *

A list of the HyperParameterTrainingJobDefinition objects launched for * this tuning job.

*/ inline CreateHyperParameterTuningJobRequest& WithTrainingJobDefinitions(Aws::Vector&& value) { SetTrainingJobDefinitions(std::move(value)); return *this;} /** *

A list of the HyperParameterTrainingJobDefinition objects launched for * this tuning job.

*/ inline CreateHyperParameterTuningJobRequest& AddTrainingJobDefinitions(const HyperParameterTrainingJobDefinition& value) { m_trainingJobDefinitionsHasBeenSet = true; m_trainingJobDefinitions.push_back(value); return *this; } /** *

A list of the HyperParameterTrainingJobDefinition objects launched for * this tuning job.

*/ inline CreateHyperParameterTuningJobRequest& AddTrainingJobDefinitions(HyperParameterTrainingJobDefinition&& value) { m_trainingJobDefinitionsHasBeenSet = true; m_trainingJobDefinitions.push_back(std::move(value)); return *this; } /** *

Specifies the configuration for starting the hyperparameter tuning job using * one or more previous tuning jobs as a starting point. The results of previous * tuning jobs are used to inform which combinations of hyperparameters to search * over in the new tuning job.

All training jobs launched by the new * hyperparameter tuning job are evaluated by using the objective metric. If you * specify IDENTICAL_DATA_AND_ALGORITHM as the * WarmStartType value for the warm start configuration, the training * job that performs the best in the new tuning job is compared to the best * training jobs from the parent tuning jobs. From these, the training job that * performs the best as measured by the objective metric is returned as the overall * best training job.

All training jobs launched by parent * hyperparameter tuning jobs and the new hyperparameter tuning jobs count against * the limit of training jobs for the tuning job.

*/ inline const HyperParameterTuningJobWarmStartConfig& GetWarmStartConfig() const{ return m_warmStartConfig; } /** *

Specifies the configuration for starting the hyperparameter tuning job using * one or more previous tuning jobs as a starting point. The results of previous * tuning jobs are used to inform which combinations of hyperparameters to search * over in the new tuning job.

All training jobs launched by the new * hyperparameter tuning job are evaluated by using the objective metric. If you * specify IDENTICAL_DATA_AND_ALGORITHM as the * WarmStartType value for the warm start configuration, the training * job that performs the best in the new tuning job is compared to the best * training jobs from the parent tuning jobs. From these, the training job that * performs the best as measured by the objective metric is returned as the overall * best training job.

All training jobs launched by parent * hyperparameter tuning jobs and the new hyperparameter tuning jobs count against * the limit of training jobs for the tuning job.

*/ inline bool WarmStartConfigHasBeenSet() const { return m_warmStartConfigHasBeenSet; } /** *

Specifies the configuration for starting the hyperparameter tuning job using * one or more previous tuning jobs as a starting point. The results of previous * tuning jobs are used to inform which combinations of hyperparameters to search * over in the new tuning job.

All training jobs launched by the new * hyperparameter tuning job are evaluated by using the objective metric. If you * specify IDENTICAL_DATA_AND_ALGORITHM as the * WarmStartType value for the warm start configuration, the training * job that performs the best in the new tuning job is compared to the best * training jobs from the parent tuning jobs. From these, the training job that * performs the best as measured by the objective metric is returned as the overall * best training job.

All training jobs launched by parent * hyperparameter tuning jobs and the new hyperparameter tuning jobs count against * the limit of training jobs for the tuning job.

*/ inline void SetWarmStartConfig(const HyperParameterTuningJobWarmStartConfig& value) { m_warmStartConfigHasBeenSet = true; m_warmStartConfig = value; } /** *

Specifies the configuration for starting the hyperparameter tuning job using * one or more previous tuning jobs as a starting point. The results of previous * tuning jobs are used to inform which combinations of hyperparameters to search * over in the new tuning job.

All training jobs launched by the new * hyperparameter tuning job are evaluated by using the objective metric. If you * specify IDENTICAL_DATA_AND_ALGORITHM as the * WarmStartType value for the warm start configuration, the training * job that performs the best in the new tuning job is compared to the best * training jobs from the parent tuning jobs. From these, the training job that * performs the best as measured by the objective metric is returned as the overall * best training job.

All training jobs launched by parent * hyperparameter tuning jobs and the new hyperparameter tuning jobs count against * the limit of training jobs for the tuning job.

*/ inline void SetWarmStartConfig(HyperParameterTuningJobWarmStartConfig&& value) { m_warmStartConfigHasBeenSet = true; m_warmStartConfig = std::move(value); } /** *

Specifies the configuration for starting the hyperparameter tuning job using * one or more previous tuning jobs as a starting point. The results of previous * tuning jobs are used to inform which combinations of hyperparameters to search * over in the new tuning job.

All training jobs launched by the new * hyperparameter tuning job are evaluated by using the objective metric. If you * specify IDENTICAL_DATA_AND_ALGORITHM as the * WarmStartType value for the warm start configuration, the training * job that performs the best in the new tuning job is compared to the best * training jobs from the parent tuning jobs. From these, the training job that * performs the best as measured by the objective metric is returned as the overall * best training job.

All training jobs launched by parent * hyperparameter tuning jobs and the new hyperparameter tuning jobs count against * the limit of training jobs for the tuning job.

*/ inline CreateHyperParameterTuningJobRequest& WithWarmStartConfig(const HyperParameterTuningJobWarmStartConfig& value) { SetWarmStartConfig(value); return *this;} /** *

Specifies the configuration for starting the hyperparameter tuning job using * one or more previous tuning jobs as a starting point. The results of previous * tuning jobs are used to inform which combinations of hyperparameters to search * over in the new tuning job.

All training jobs launched by the new * hyperparameter tuning job are evaluated by using the objective metric. If you * specify IDENTICAL_DATA_AND_ALGORITHM as the * WarmStartType value for the warm start configuration, the training * job that performs the best in the new tuning job is compared to the best * training jobs from the parent tuning jobs. From these, the training job that * performs the best as measured by the objective metric is returned as the overall * best training job.

All training jobs launched by parent * hyperparameter tuning jobs and the new hyperparameter tuning jobs count against * the limit of training jobs for the tuning job.

*/ inline CreateHyperParameterTuningJobRequest& WithWarmStartConfig(HyperParameterTuningJobWarmStartConfig&& value) { SetWarmStartConfig(std::move(value)); return *this;} /** *

An array of key-value pairs. You can use tags to categorize your AWS * resources in different ways, for example, by purpose, owner, or environment. For * more information, see AWS * Tagging Strategies.

Tags that you specify for the tuning job are also * added to all training jobs that the tuning job launches.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

An array of key-value pairs. You can use tags to categorize your AWS * resources in different ways, for example, by purpose, owner, or environment. For * more information, see AWS * Tagging Strategies.

Tags that you specify for the tuning job are also * added to all training jobs that the tuning job launches.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

An array of key-value pairs. You can use tags to categorize your AWS * resources in different ways, for example, by purpose, owner, or environment. For * more information, see AWS * Tagging Strategies.

Tags that you specify for the tuning job are also * added to all training jobs that the tuning job launches.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

An array of key-value pairs. You can use tags to categorize your AWS * resources in different ways, for example, by purpose, owner, or environment. For * more information, see AWS * Tagging Strategies.

Tags that you specify for the tuning job are also * added to all training jobs that the tuning job launches.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

An array of key-value pairs. You can use tags to categorize your AWS * resources in different ways, for example, by purpose, owner, or environment. For * more information, see AWS * Tagging Strategies.

Tags that you specify for the tuning job are also * added to all training jobs that the tuning job launches.

*/ inline CreateHyperParameterTuningJobRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

An array of key-value pairs. You can use tags to categorize your AWS * resources in different ways, for example, by purpose, owner, or environment. For * more information, see AWS * Tagging Strategies.

Tags that you specify for the tuning job are also * added to all training jobs that the tuning job launches.

*/ inline CreateHyperParameterTuningJobRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

An array of key-value pairs. You can use tags to categorize your AWS * resources in different ways, for example, by purpose, owner, or environment. For * more information, see AWS * Tagging Strategies.

Tags that you specify for the tuning job are also * added to all training jobs that the tuning job launches.

*/ inline CreateHyperParameterTuningJobRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

An array of key-value pairs. You can use tags to categorize your AWS * resources in different ways, for example, by purpose, owner, or environment. For * more information, see AWS * Tagging Strategies.

Tags that you specify for the tuning job are also * added to all training jobs that the tuning job launches.

*/ inline CreateHyperParameterTuningJobRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_hyperParameterTuningJobName; bool m_hyperParameterTuningJobNameHasBeenSet; HyperParameterTuningJobConfig m_hyperParameterTuningJobConfig; bool m_hyperParameterTuningJobConfigHasBeenSet; HyperParameterTrainingJobDefinition m_trainingJobDefinition; bool m_trainingJobDefinitionHasBeenSet; Aws::Vector m_trainingJobDefinitions; bool m_trainingJobDefinitionsHasBeenSet; HyperParameterTuningJobWarmStartConfig m_warmStartConfig; bool m_warmStartConfigHasBeenSet; Aws::Vector m_tags; bool m_tagsHasBeenSet; }; } // namespace Model } // namespace SageMaker } // namespace Aws