/** * 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 #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SageMaker { namespace Model { /** *

Defines the training jobs launched by a hyperparameter tuning * job.

See Also:

AWS * API Reference

*/ class HyperParameterTrainingJobDefinition { public: AWS_SAGEMAKER_API HyperParameterTrainingJobDefinition(); AWS_SAGEMAKER_API HyperParameterTrainingJobDefinition(Aws::Utils::Json::JsonView jsonValue); AWS_SAGEMAKER_API HyperParameterTrainingJobDefinition& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SAGEMAKER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The job definition name.

*/ inline const Aws::String& GetDefinitionName() const{ return m_definitionName; } /** *

The job definition name.

*/ inline bool DefinitionNameHasBeenSet() const { return m_definitionNameHasBeenSet; } /** *

The job definition name.

*/ inline void SetDefinitionName(const Aws::String& value) { m_definitionNameHasBeenSet = true; m_definitionName = value; } /** *

The job definition name.

*/ inline void SetDefinitionName(Aws::String&& value) { m_definitionNameHasBeenSet = true; m_definitionName = std::move(value); } /** *

The job definition name.

*/ inline void SetDefinitionName(const char* value) { m_definitionNameHasBeenSet = true; m_definitionName.assign(value); } /** *

The job definition name.

*/ inline HyperParameterTrainingJobDefinition& WithDefinitionName(const Aws::String& value) { SetDefinitionName(value); return *this;} /** *

The job definition name.

*/ inline HyperParameterTrainingJobDefinition& WithDefinitionName(Aws::String&& value) { SetDefinitionName(std::move(value)); return *this;} /** *

The job definition name.

*/ inline HyperParameterTrainingJobDefinition& WithDefinitionName(const char* value) { SetDefinitionName(value); return *this;} inline const HyperParameterTuningJobObjective& GetTuningObjective() const{ return m_tuningObjective; } inline bool TuningObjectiveHasBeenSet() const { return m_tuningObjectiveHasBeenSet; } inline void SetTuningObjective(const HyperParameterTuningJobObjective& value) { m_tuningObjectiveHasBeenSet = true; m_tuningObjective = value; } inline void SetTuningObjective(HyperParameterTuningJobObjective&& value) { m_tuningObjectiveHasBeenSet = true; m_tuningObjective = std::move(value); } inline HyperParameterTrainingJobDefinition& WithTuningObjective(const HyperParameterTuningJobObjective& value) { SetTuningObjective(value); return *this;} inline HyperParameterTrainingJobDefinition& WithTuningObjective(HyperParameterTuningJobObjective&& value) { SetTuningObjective(std::move(value)); return *this;} inline const ParameterRanges& GetHyperParameterRanges() const{ return m_hyperParameterRanges; } inline bool HyperParameterRangesHasBeenSet() const { return m_hyperParameterRangesHasBeenSet; } inline void SetHyperParameterRanges(const ParameterRanges& value) { m_hyperParameterRangesHasBeenSet = true; m_hyperParameterRanges = value; } inline void SetHyperParameterRanges(ParameterRanges&& value) { m_hyperParameterRangesHasBeenSet = true; m_hyperParameterRanges = std::move(value); } inline HyperParameterTrainingJobDefinition& WithHyperParameterRanges(const ParameterRanges& value) { SetHyperParameterRanges(value); return *this;} inline HyperParameterTrainingJobDefinition& WithHyperParameterRanges(ParameterRanges&& value) { SetHyperParameterRanges(std::move(value)); return *this;} /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline const Aws::Map& GetStaticHyperParameters() const{ return m_staticHyperParameters; } /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline bool StaticHyperParametersHasBeenSet() const { return m_staticHyperParametersHasBeenSet; } /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline void SetStaticHyperParameters(const Aws::Map& value) { m_staticHyperParametersHasBeenSet = true; m_staticHyperParameters = value; } /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline void SetStaticHyperParameters(Aws::Map&& value) { m_staticHyperParametersHasBeenSet = true; m_staticHyperParameters = std::move(value); } /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline HyperParameterTrainingJobDefinition& WithStaticHyperParameters(const Aws::Map& value) { SetStaticHyperParameters(value); return *this;} /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline HyperParameterTrainingJobDefinition& WithStaticHyperParameters(Aws::Map&& value) { SetStaticHyperParameters(std::move(value)); return *this;} /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline HyperParameterTrainingJobDefinition& AddStaticHyperParameters(const Aws::String& key, const Aws::String& value) { m_staticHyperParametersHasBeenSet = true; m_staticHyperParameters.emplace(key, value); return *this; } /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline HyperParameterTrainingJobDefinition& AddStaticHyperParameters(Aws::String&& key, const Aws::String& value) { m_staticHyperParametersHasBeenSet = true; m_staticHyperParameters.emplace(std::move(key), value); return *this; } /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline HyperParameterTrainingJobDefinition& AddStaticHyperParameters(const Aws::String& key, Aws::String&& value) { m_staticHyperParametersHasBeenSet = true; m_staticHyperParameters.emplace(key, std::move(value)); return *this; } /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline HyperParameterTrainingJobDefinition& AddStaticHyperParameters(Aws::String&& key, Aws::String&& value) { m_staticHyperParametersHasBeenSet = true; m_staticHyperParameters.emplace(std::move(key), std::move(value)); return *this; } /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline HyperParameterTrainingJobDefinition& AddStaticHyperParameters(const char* key, Aws::String&& value) { m_staticHyperParametersHasBeenSet = true; m_staticHyperParameters.emplace(key, std::move(value)); return *this; } /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline HyperParameterTrainingJobDefinition& AddStaticHyperParameters(Aws::String&& key, const char* value) { m_staticHyperParametersHasBeenSet = true; m_staticHyperParameters.emplace(std::move(key), value); return *this; } /** *

Specifies the values of hyperparameters that do not change for the tuning * job.

*/ inline HyperParameterTrainingJobDefinition& AddStaticHyperParameters(const char* key, const char* value) { m_staticHyperParametersHasBeenSet = true; m_staticHyperParameters.emplace(key, value); return *this; } /** *

The HyperParameterAlgorithmSpecification * object that specifies the resource algorithm to use for the training jobs that * the tuning job launches.

*/ inline const HyperParameterAlgorithmSpecification& GetAlgorithmSpecification() const{ return m_algorithmSpecification; } /** *

The HyperParameterAlgorithmSpecification * object that specifies the resource algorithm to use for the training jobs that * the tuning job launches.

*/ inline bool AlgorithmSpecificationHasBeenSet() const { return m_algorithmSpecificationHasBeenSet; } /** *

The HyperParameterAlgorithmSpecification * object that specifies the resource algorithm to use for the training jobs that * the tuning job launches.

*/ inline void SetAlgorithmSpecification(const HyperParameterAlgorithmSpecification& value) { m_algorithmSpecificationHasBeenSet = true; m_algorithmSpecification = value; } /** *

The HyperParameterAlgorithmSpecification * object that specifies the resource algorithm to use for the training jobs that * the tuning job launches.

*/ inline void SetAlgorithmSpecification(HyperParameterAlgorithmSpecification&& value) { m_algorithmSpecificationHasBeenSet = true; m_algorithmSpecification = std::move(value); } /** *

The HyperParameterAlgorithmSpecification * object that specifies the resource algorithm to use for the training jobs that * the tuning job launches.

*/ inline HyperParameterTrainingJobDefinition& WithAlgorithmSpecification(const HyperParameterAlgorithmSpecification& value) { SetAlgorithmSpecification(value); return *this;} /** *

The HyperParameterAlgorithmSpecification * object that specifies the resource algorithm to use for the training jobs that * the tuning job launches.

*/ inline HyperParameterTrainingJobDefinition& WithAlgorithmSpecification(HyperParameterAlgorithmSpecification&& value) { SetAlgorithmSpecification(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role associated with the training * jobs that the tuning job launches.

*/ inline const Aws::String& GetRoleArn() const{ return m_roleArn; } /** *

The Amazon Resource Name (ARN) of the IAM role associated with the training * jobs that the tuning job launches.

*/ inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the IAM role associated with the training * jobs that the tuning job launches.

*/ inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; } /** *

The Amazon Resource Name (ARN) of the IAM role associated with the training * jobs that the tuning job launches.

*/ inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the IAM role associated with the training * jobs that the tuning job launches.

*/ inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the IAM role associated with the training * jobs that the tuning job launches.

*/ inline HyperParameterTrainingJobDefinition& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role associated with the training * jobs that the tuning job launches.

*/ inline HyperParameterTrainingJobDefinition& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role associated with the training * jobs that the tuning job launches.

*/ inline HyperParameterTrainingJobDefinition& WithRoleArn(const char* value) { SetRoleArn(value); return *this;} /** *

An array of Channel * objects that specify the input for the training jobs that the tuning job * launches.

*/ inline const Aws::Vector& GetInputDataConfig() const{ return m_inputDataConfig; } /** *

An array of Channel * objects that specify the input for the training jobs that the tuning job * launches.

*/ inline bool InputDataConfigHasBeenSet() const { return m_inputDataConfigHasBeenSet; } /** *

An array of Channel * objects that specify the input for the training jobs that the tuning job * launches.

*/ inline void SetInputDataConfig(const Aws::Vector& value) { m_inputDataConfigHasBeenSet = true; m_inputDataConfig = value; } /** *

An array of Channel * objects that specify the input for the training jobs that the tuning job * launches.

*/ inline void SetInputDataConfig(Aws::Vector&& value) { m_inputDataConfigHasBeenSet = true; m_inputDataConfig = std::move(value); } /** *

An array of Channel * objects that specify the input for the training jobs that the tuning job * launches.

*/ inline HyperParameterTrainingJobDefinition& WithInputDataConfig(const Aws::Vector& value) { SetInputDataConfig(value); return *this;} /** *

An array of Channel * objects that specify the input for the training jobs that the tuning job * launches.

*/ inline HyperParameterTrainingJobDefinition& WithInputDataConfig(Aws::Vector&& value) { SetInputDataConfig(std::move(value)); return *this;} /** *

An array of Channel * objects that specify the input for the training jobs that the tuning job * launches.

*/ inline HyperParameterTrainingJobDefinition& AddInputDataConfig(const Channel& value) { m_inputDataConfigHasBeenSet = true; m_inputDataConfig.push_back(value); return *this; } /** *

An array of Channel * objects that specify the input for the training jobs that the tuning job * launches.

*/ inline HyperParameterTrainingJobDefinition& AddInputDataConfig(Channel&& value) { m_inputDataConfigHasBeenSet = true; m_inputDataConfig.push_back(std::move(value)); return *this; } /** *

The VpcConfig * object that specifies the VPC that you want the training jobs that this * hyperparameter tuning job launches to connect to. Control access to and from * your training container by configuring the VPC. For more information, see Protect * Training Jobs by Using an Amazon Virtual Private Cloud.

*/ inline const VpcConfig& GetVpcConfig() const{ return m_vpcConfig; } /** *

The VpcConfig * object that specifies the VPC that you want the training jobs that this * hyperparameter tuning job launches to connect to. Control access to and from * your training container by configuring the VPC. For more information, see Protect * Training Jobs by Using an Amazon Virtual Private Cloud.

*/ inline bool VpcConfigHasBeenSet() const { return m_vpcConfigHasBeenSet; } /** *

The VpcConfig * object that specifies the VPC that you want the training jobs that this * hyperparameter tuning job launches to connect to. Control access to and from * your training container by configuring the VPC. For more information, see Protect * Training Jobs by Using an Amazon Virtual Private Cloud.

*/ inline void SetVpcConfig(const VpcConfig& value) { m_vpcConfigHasBeenSet = true; m_vpcConfig = value; } /** *

The VpcConfig * object that specifies the VPC that you want the training jobs that this * hyperparameter tuning job launches to connect to. Control access to and from * your training container by configuring the VPC. For more information, see Protect * Training Jobs by Using an Amazon Virtual Private Cloud.

*/ inline void SetVpcConfig(VpcConfig&& value) { m_vpcConfigHasBeenSet = true; m_vpcConfig = std::move(value); } /** *

The VpcConfig * object that specifies the VPC that you want the training jobs that this * hyperparameter tuning job launches to connect to. Control access to and from * your training container by configuring the VPC. For more information, see Protect * Training Jobs by Using an Amazon Virtual Private Cloud.

*/ inline HyperParameterTrainingJobDefinition& WithVpcConfig(const VpcConfig& value) { SetVpcConfig(value); return *this;} /** *

The VpcConfig * object that specifies the VPC that you want the training jobs that this * hyperparameter tuning job launches to connect to. Control access to and from * your training container by configuring the VPC. For more information, see Protect * Training Jobs by Using an Amazon Virtual Private Cloud.

*/ inline HyperParameterTrainingJobDefinition& WithVpcConfig(VpcConfig&& value) { SetVpcConfig(std::move(value)); return *this;} /** *

Specifies the path to the Amazon S3 bucket where you store model artifacts * from the training jobs that the tuning job launches.

*/ inline const OutputDataConfig& GetOutputDataConfig() const{ return m_outputDataConfig; } /** *

Specifies the path to the Amazon S3 bucket where you store model artifacts * from the training jobs that the tuning job launches.

*/ inline bool OutputDataConfigHasBeenSet() const { return m_outputDataConfigHasBeenSet; } /** *

Specifies the path to the Amazon S3 bucket where you store model artifacts * from the training jobs that the tuning job launches.

*/ inline void SetOutputDataConfig(const OutputDataConfig& value) { m_outputDataConfigHasBeenSet = true; m_outputDataConfig = value; } /** *

Specifies the path to the Amazon S3 bucket where you store model artifacts * from the training jobs that the tuning job launches.

*/ inline void SetOutputDataConfig(OutputDataConfig&& value) { m_outputDataConfigHasBeenSet = true; m_outputDataConfig = std::move(value); } /** *

Specifies the path to the Amazon S3 bucket where you store model artifacts * from the training jobs that the tuning job launches.

*/ inline HyperParameterTrainingJobDefinition& WithOutputDataConfig(const OutputDataConfig& value) { SetOutputDataConfig(value); return *this;} /** *

Specifies the path to the Amazon S3 bucket where you store model artifacts * from the training jobs that the tuning job launches.

*/ inline HyperParameterTrainingJobDefinition& WithOutputDataConfig(OutputDataConfig&& value) { SetOutputDataConfig(std::move(value)); return *this;} /** *

The resources, including the compute instances and storage volumes, to use * for the training jobs that the tuning job launches.

Storage volumes store * model artifacts and incremental states. Training algorithms might also use * storage volumes for scratch space. If you want SageMaker to use the storage * volume to store the training data, choose File as the * TrainingInputMode in the algorithm specification. For distributed * training algorithms, specify an instance count greater than 1.

If * you want to use hyperparameter optimization with instance type flexibility, use * HyperParameterTuningResourceConfig instead.

*/ inline const ResourceConfig& GetResourceConfig() const{ return m_resourceConfig; } /** *

The resources, including the compute instances and storage volumes, to use * for the training jobs that the tuning job launches.

Storage volumes store * model artifacts and incremental states. Training algorithms might also use * storage volumes for scratch space. If you want SageMaker to use the storage * volume to store the training data, choose File as the * TrainingInputMode in the algorithm specification. For distributed * training algorithms, specify an instance count greater than 1.

If * you want to use hyperparameter optimization with instance type flexibility, use * HyperParameterTuningResourceConfig instead.

*/ inline bool ResourceConfigHasBeenSet() const { return m_resourceConfigHasBeenSet; } /** *

The resources, including the compute instances and storage volumes, to use * for the training jobs that the tuning job launches.

Storage volumes store * model artifacts and incremental states. Training algorithms might also use * storage volumes for scratch space. If you want SageMaker to use the storage * volume to store the training data, choose File as the * TrainingInputMode in the algorithm specification. For distributed * training algorithms, specify an instance count greater than 1.

If * you want to use hyperparameter optimization with instance type flexibility, use * HyperParameterTuningResourceConfig instead.

*/ inline void SetResourceConfig(const ResourceConfig& value) { m_resourceConfigHasBeenSet = true; m_resourceConfig = value; } /** *

The resources, including the compute instances and storage volumes, to use * for the training jobs that the tuning job launches.

Storage volumes store * model artifacts and incremental states. Training algorithms might also use * storage volumes for scratch space. If you want SageMaker to use the storage * volume to store the training data, choose File as the * TrainingInputMode in the algorithm specification. For distributed * training algorithms, specify an instance count greater than 1.

If * you want to use hyperparameter optimization with instance type flexibility, use * HyperParameterTuningResourceConfig instead.

*/ inline void SetResourceConfig(ResourceConfig&& value) { m_resourceConfigHasBeenSet = true; m_resourceConfig = std::move(value); } /** *

The resources, including the compute instances and storage volumes, to use * for the training jobs that the tuning job launches.

Storage volumes store * model artifacts and incremental states. Training algorithms might also use * storage volumes for scratch space. If you want SageMaker to use the storage * volume to store the training data, choose File as the * TrainingInputMode in the algorithm specification. For distributed * training algorithms, specify an instance count greater than 1.

If * you want to use hyperparameter optimization with instance type flexibility, use * HyperParameterTuningResourceConfig instead.

*/ inline HyperParameterTrainingJobDefinition& WithResourceConfig(const ResourceConfig& value) { SetResourceConfig(value); return *this;} /** *

The resources, including the compute instances and storage volumes, to use * for the training jobs that the tuning job launches.

Storage volumes store * model artifacts and incremental states. Training algorithms might also use * storage volumes for scratch space. If you want SageMaker to use the storage * volume to store the training data, choose File as the * TrainingInputMode in the algorithm specification. For distributed * training algorithms, specify an instance count greater than 1.

If * you want to use hyperparameter optimization with instance type flexibility, use * HyperParameterTuningResourceConfig instead.

*/ inline HyperParameterTrainingJobDefinition& WithResourceConfig(ResourceConfig&& value) { SetResourceConfig(std::move(value)); return *this;} /** *

Specifies a limit to how long a model hyperparameter training job can run. It * also specifies how long a managed spot training job has to complete. When the * job reaches the time limit, SageMaker ends the training job. Use this API to cap * model training costs.

*/ inline const StoppingCondition& GetStoppingCondition() const{ return m_stoppingCondition; } /** *

Specifies a limit to how long a model hyperparameter training job can run. It * also specifies how long a managed spot training job has to complete. When the * job reaches the time limit, SageMaker ends the training job. Use this API to cap * model training costs.

*/ inline bool StoppingConditionHasBeenSet() const { return m_stoppingConditionHasBeenSet; } /** *

Specifies a limit to how long a model hyperparameter training job can run. It * also specifies how long a managed spot training job has to complete. When the * job reaches the time limit, SageMaker ends the training job. Use this API to cap * model training costs.

*/ inline void SetStoppingCondition(const StoppingCondition& value) { m_stoppingConditionHasBeenSet = true; m_stoppingCondition = value; } /** *

Specifies a limit to how long a model hyperparameter training job can run. It * also specifies how long a managed spot training job has to complete. When the * job reaches the time limit, SageMaker ends the training job. Use this API to cap * model training costs.

*/ inline void SetStoppingCondition(StoppingCondition&& value) { m_stoppingConditionHasBeenSet = true; m_stoppingCondition = std::move(value); } /** *

Specifies a limit to how long a model hyperparameter training job can run. It * also specifies how long a managed spot training job has to complete. When the * job reaches the time limit, SageMaker ends the training job. Use this API to cap * model training costs.

*/ inline HyperParameterTrainingJobDefinition& WithStoppingCondition(const StoppingCondition& value) { SetStoppingCondition(value); return *this;} /** *

Specifies a limit to how long a model hyperparameter training job can run. It * also specifies how long a managed spot training job has to complete. When the * job reaches the time limit, SageMaker ends the training job. Use this API to cap * model training costs.

*/ inline HyperParameterTrainingJobDefinition& WithStoppingCondition(StoppingCondition&& value) { SetStoppingCondition(std::move(value)); return *this;} /** *

Isolates the training container. No inbound or outbound network calls can be * made, except for calls between peers within a training cluster for distributed * training. If network isolation is used for training jobs that are configured to * use a VPC, SageMaker downloads and uploads customer data and model artifacts * through the specified VPC, but the training container does not have network * access.

*/ inline bool GetEnableNetworkIsolation() const{ return m_enableNetworkIsolation; } /** *

Isolates the training container. No inbound or outbound network calls can be * made, except for calls between peers within a training cluster for distributed * training. If network isolation is used for training jobs that are configured to * use a VPC, SageMaker downloads and uploads customer data and model artifacts * through the specified VPC, but the training container does not have network * access.

*/ inline bool EnableNetworkIsolationHasBeenSet() const { return m_enableNetworkIsolationHasBeenSet; } /** *

Isolates the training container. No inbound or outbound network calls can be * made, except for calls between peers within a training cluster for distributed * training. If network isolation is used for training jobs that are configured to * use a VPC, SageMaker downloads and uploads customer data and model artifacts * through the specified VPC, but the training container does not have network * access.

*/ inline void SetEnableNetworkIsolation(bool value) { m_enableNetworkIsolationHasBeenSet = true; m_enableNetworkIsolation = value; } /** *

Isolates the training container. No inbound or outbound network calls can be * made, except for calls between peers within a training cluster for distributed * training. If network isolation is used for training jobs that are configured to * use a VPC, SageMaker downloads and uploads customer data and model artifacts * through the specified VPC, but the training container does not have network * access.

*/ inline HyperParameterTrainingJobDefinition& WithEnableNetworkIsolation(bool value) { SetEnableNetworkIsolation(value); return *this;} /** *

To encrypt all communications between ML compute instances in distributed * training, choose True. Encryption provides greater security for * distributed training, but training might take longer. How long it takes depends * on the amount of communication between compute instances, especially if you use * a deep learning algorithm in distributed training.

*/ inline bool GetEnableInterContainerTrafficEncryption() const{ return m_enableInterContainerTrafficEncryption; } /** *

To encrypt all communications between ML compute instances in distributed * training, choose True. Encryption provides greater security for * distributed training, but training might take longer. How long it takes depends * on the amount of communication between compute instances, especially if you use * a deep learning algorithm in distributed training.

*/ inline bool EnableInterContainerTrafficEncryptionHasBeenSet() const { return m_enableInterContainerTrafficEncryptionHasBeenSet; } /** *

To encrypt all communications between ML compute instances in distributed * training, choose True. Encryption provides greater security for * distributed training, but training might take longer. How long it takes depends * on the amount of communication between compute instances, especially if you use * a deep learning algorithm in distributed training.

*/ inline void SetEnableInterContainerTrafficEncryption(bool value) { m_enableInterContainerTrafficEncryptionHasBeenSet = true; m_enableInterContainerTrafficEncryption = value; } /** *

To encrypt all communications between ML compute instances in distributed * training, choose True. Encryption provides greater security for * distributed training, but training might take longer. How long it takes depends * on the amount of communication between compute instances, especially if you use * a deep learning algorithm in distributed training.

*/ inline HyperParameterTrainingJobDefinition& WithEnableInterContainerTrafficEncryption(bool value) { SetEnableInterContainerTrafficEncryption(value); return *this;} /** *

A Boolean indicating whether managed spot training is enabled * (True) or not (False).

*/ inline bool GetEnableManagedSpotTraining() const{ return m_enableManagedSpotTraining; } /** *

A Boolean indicating whether managed spot training is enabled * (True) or not (False).

*/ inline bool EnableManagedSpotTrainingHasBeenSet() const { return m_enableManagedSpotTrainingHasBeenSet; } /** *

A Boolean indicating whether managed spot training is enabled * (True) or not (False).

*/ inline void SetEnableManagedSpotTraining(bool value) { m_enableManagedSpotTrainingHasBeenSet = true; m_enableManagedSpotTraining = value; } /** *

A Boolean indicating whether managed spot training is enabled * (True) or not (False).

*/ inline HyperParameterTrainingJobDefinition& WithEnableManagedSpotTraining(bool value) { SetEnableManagedSpotTraining(value); return *this;} inline const CheckpointConfig& GetCheckpointConfig() const{ return m_checkpointConfig; } inline bool CheckpointConfigHasBeenSet() const { return m_checkpointConfigHasBeenSet; } inline void SetCheckpointConfig(const CheckpointConfig& value) { m_checkpointConfigHasBeenSet = true; m_checkpointConfig = value; } inline void SetCheckpointConfig(CheckpointConfig&& value) { m_checkpointConfigHasBeenSet = true; m_checkpointConfig = std::move(value); } inline HyperParameterTrainingJobDefinition& WithCheckpointConfig(const CheckpointConfig& value) { SetCheckpointConfig(value); return *this;} inline HyperParameterTrainingJobDefinition& WithCheckpointConfig(CheckpointConfig&& value) { SetCheckpointConfig(std::move(value)); return *this;} /** *

The number of times to retry the job when the job fails due to an * InternalServerError.

*/ inline const RetryStrategy& GetRetryStrategy() const{ return m_retryStrategy; } /** *

The number of times to retry the job when the job fails due to an * InternalServerError.

*/ inline bool RetryStrategyHasBeenSet() const { return m_retryStrategyHasBeenSet; } /** *

The number of times to retry the job when the job fails due to an * InternalServerError.

*/ inline void SetRetryStrategy(const RetryStrategy& value) { m_retryStrategyHasBeenSet = true; m_retryStrategy = value; } /** *

The number of times to retry the job when the job fails due to an * InternalServerError.

*/ inline void SetRetryStrategy(RetryStrategy&& value) { m_retryStrategyHasBeenSet = true; m_retryStrategy = std::move(value); } /** *

The number of times to retry the job when the job fails due to an * InternalServerError.

*/ inline HyperParameterTrainingJobDefinition& WithRetryStrategy(const RetryStrategy& value) { SetRetryStrategy(value); return *this;} /** *

The number of times to retry the job when the job fails due to an * InternalServerError.

*/ inline HyperParameterTrainingJobDefinition& WithRetryStrategy(RetryStrategy&& value) { SetRetryStrategy(std::move(value)); return *this;} /** *

The configuration for the hyperparameter tuning resources, including the * compute instances and storage volumes, used for training jobs launched by the * tuning job. By default, storage volumes hold model artifacts and incremental * states. Choose File for TrainingInputMode in the * AlgorithmSpecification parameter to additionally store training * data in the storage volume (optional).

*/ inline const HyperParameterTuningResourceConfig& GetHyperParameterTuningResourceConfig() const{ return m_hyperParameterTuningResourceConfig; } /** *

The configuration for the hyperparameter tuning resources, including the * compute instances and storage volumes, used for training jobs launched by the * tuning job. By default, storage volumes hold model artifacts and incremental * states. Choose File for TrainingInputMode in the * AlgorithmSpecification parameter to additionally store training * data in the storage volume (optional).

*/ inline bool HyperParameterTuningResourceConfigHasBeenSet() const { return m_hyperParameterTuningResourceConfigHasBeenSet; } /** *

The configuration for the hyperparameter tuning resources, including the * compute instances and storage volumes, used for training jobs launched by the * tuning job. By default, storage volumes hold model artifacts and incremental * states. Choose File for TrainingInputMode in the * AlgorithmSpecification parameter to additionally store training * data in the storage volume (optional).

*/ inline void SetHyperParameterTuningResourceConfig(const HyperParameterTuningResourceConfig& value) { m_hyperParameterTuningResourceConfigHasBeenSet = true; m_hyperParameterTuningResourceConfig = value; } /** *

The configuration for the hyperparameter tuning resources, including the * compute instances and storage volumes, used for training jobs launched by the * tuning job. By default, storage volumes hold model artifacts and incremental * states. Choose File for TrainingInputMode in the * AlgorithmSpecification parameter to additionally store training * data in the storage volume (optional).

*/ inline void SetHyperParameterTuningResourceConfig(HyperParameterTuningResourceConfig&& value) { m_hyperParameterTuningResourceConfigHasBeenSet = true; m_hyperParameterTuningResourceConfig = std::move(value); } /** *

The configuration for the hyperparameter tuning resources, including the * compute instances and storage volumes, used for training jobs launched by the * tuning job. By default, storage volumes hold model artifacts and incremental * states. Choose File for TrainingInputMode in the * AlgorithmSpecification parameter to additionally store training * data in the storage volume (optional).

*/ inline HyperParameterTrainingJobDefinition& WithHyperParameterTuningResourceConfig(const HyperParameterTuningResourceConfig& value) { SetHyperParameterTuningResourceConfig(value); return *this;} /** *

The configuration for the hyperparameter tuning resources, including the * compute instances and storage volumes, used for training jobs launched by the * tuning job. By default, storage volumes hold model artifacts and incremental * states. Choose File for TrainingInputMode in the * AlgorithmSpecification parameter to additionally store training * data in the storage volume (optional).

*/ inline HyperParameterTrainingJobDefinition& WithHyperParameterTuningResourceConfig(HyperParameterTuningResourceConfig&& value) { SetHyperParameterTuningResourceConfig(std::move(value)); return *this;} /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline const Aws::Map& GetEnvironment() const{ return m_environment; } /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline bool EnvironmentHasBeenSet() const { return m_environmentHasBeenSet; } /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline void SetEnvironment(const Aws::Map& value) { m_environmentHasBeenSet = true; m_environment = value; } /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline void SetEnvironment(Aws::Map&& value) { m_environmentHasBeenSet = true; m_environment = std::move(value); } /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline HyperParameterTrainingJobDefinition& WithEnvironment(const Aws::Map& value) { SetEnvironment(value); return *this;} /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline HyperParameterTrainingJobDefinition& WithEnvironment(Aws::Map&& value) { SetEnvironment(std::move(value)); return *this;} /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline HyperParameterTrainingJobDefinition& AddEnvironment(const Aws::String& key, const Aws::String& value) { m_environmentHasBeenSet = true; m_environment.emplace(key, value); return *this; } /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline HyperParameterTrainingJobDefinition& AddEnvironment(Aws::String&& key, const Aws::String& value) { m_environmentHasBeenSet = true; m_environment.emplace(std::move(key), value); return *this; } /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline HyperParameterTrainingJobDefinition& AddEnvironment(const Aws::String& key, Aws::String&& value) { m_environmentHasBeenSet = true; m_environment.emplace(key, std::move(value)); return *this; } /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline HyperParameterTrainingJobDefinition& AddEnvironment(Aws::String&& key, Aws::String&& value) { m_environmentHasBeenSet = true; m_environment.emplace(std::move(key), std::move(value)); return *this; } /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline HyperParameterTrainingJobDefinition& AddEnvironment(const char* key, Aws::String&& value) { m_environmentHasBeenSet = true; m_environment.emplace(key, std::move(value)); return *this; } /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline HyperParameterTrainingJobDefinition& AddEnvironment(Aws::String&& key, const char* value) { m_environmentHasBeenSet = true; m_environment.emplace(std::move(key), value); return *this; } /** *

An environment variable that you can pass into the SageMaker CreateTrainingJob * API. You can use an existing environment * variable from the training container or use your own. See Define * metrics and variables for more information.

The maximum number * of items specified for Map Entries refers to the maximum number of * environment variables for each TrainingJobDefinition and also the * maximum for the hyperparameter tuning job itself. That is, the sum of the number * of environment variables for all the training job definitions can't exceed the * maximum number specified.

*/ inline HyperParameterTrainingJobDefinition& AddEnvironment(const char* key, const char* value) { m_environmentHasBeenSet = true; m_environment.emplace(key, value); return *this; } private: Aws::String m_definitionName; bool m_definitionNameHasBeenSet = false; HyperParameterTuningJobObjective m_tuningObjective; bool m_tuningObjectiveHasBeenSet = false; ParameterRanges m_hyperParameterRanges; bool m_hyperParameterRangesHasBeenSet = false; Aws::Map m_staticHyperParameters; bool m_staticHyperParametersHasBeenSet = false; HyperParameterAlgorithmSpecification m_algorithmSpecification; bool m_algorithmSpecificationHasBeenSet = false; Aws::String m_roleArn; bool m_roleArnHasBeenSet = false; Aws::Vector m_inputDataConfig; bool m_inputDataConfigHasBeenSet = false; VpcConfig m_vpcConfig; bool m_vpcConfigHasBeenSet = false; OutputDataConfig m_outputDataConfig; bool m_outputDataConfigHasBeenSet = false; ResourceConfig m_resourceConfig; bool m_resourceConfigHasBeenSet = false; StoppingCondition m_stoppingCondition; bool m_stoppingConditionHasBeenSet = false; bool m_enableNetworkIsolation; bool m_enableNetworkIsolationHasBeenSet = false; bool m_enableInterContainerTrafficEncryption; bool m_enableInterContainerTrafficEncryptionHasBeenSet = false; bool m_enableManagedSpotTraining; bool m_enableManagedSpotTrainingHasBeenSet = false; CheckpointConfig m_checkpointConfig; bool m_checkpointConfigHasBeenSet = false; RetryStrategy m_retryStrategy; bool m_retryStrategyHasBeenSet = false; HyperParameterTuningResourceConfig m_hyperParameterTuningResourceConfig; bool m_hyperParameterTuningResourceConfigHasBeenSet = false; Aws::Map m_environment; bool m_environmentHasBeenSet = false; }; } // namespace Model } // namespace SageMaker } // namespace Aws