/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SageMaker { namespace Model { /** *

Specifies a limit to how long a model training or compilation job can run. It * also specifies how long you are willing to wait for a managed spot training job * to complete. When the job reaches the time limit, Amazon SageMaker ends the * training or compilation job. Use this API to cap model training costs.

To * stop a job, Amazon SageMaker sends the algorithm the SIGTERM * signal, which delays job termination for 120 seconds. Algorithms can use this * 120-second window to save the model artifacts, so the results of training are * not lost.

The training algorithms provided by Amazon SageMaker * automatically save the intermediate results of a model training job when * possible. This attempt to save artifacts is only a best effort case as model * might not be in a state from which it can be saved. For example, if training has * just started, the model might not be ready to save. When saved, this * intermediate data is a valid model artifact. You can use it to create a model * with CreateModel.

The Neural Topic Model (NTM) * currently does not support saving intermediate model artifacts. When training * NTMs, make sure that the maximum runtime is sufficient for the training job to * complete.

See Also:

AWS * API Reference

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

The maximum length of time, in seconds, that the training or compilation job * can run. If job does not complete during this time, Amazon SageMaker ends the * job. If value is not specified, default value is 1 day. The maximum value is 28 * days.

*/ inline int GetMaxRuntimeInSeconds() const{ return m_maxRuntimeInSeconds; } /** *

The maximum length of time, in seconds, that the training or compilation job * can run. If job does not complete during this time, Amazon SageMaker ends the * job. If value is not specified, default value is 1 day. The maximum value is 28 * days.

*/ inline bool MaxRuntimeInSecondsHasBeenSet() const { return m_maxRuntimeInSecondsHasBeenSet; } /** *

The maximum length of time, in seconds, that the training or compilation job * can run. If job does not complete during this time, Amazon SageMaker ends the * job. If value is not specified, default value is 1 day. The maximum value is 28 * days.

*/ inline void SetMaxRuntimeInSeconds(int value) { m_maxRuntimeInSecondsHasBeenSet = true; m_maxRuntimeInSeconds = value; } /** *

The maximum length of time, in seconds, that the training or compilation job * can run. If job does not complete during this time, Amazon SageMaker ends the * job. If value is not specified, default value is 1 day. The maximum value is 28 * days.

*/ inline StoppingCondition& WithMaxRuntimeInSeconds(int value) { SetMaxRuntimeInSeconds(value); return *this;} /** *

The maximum length of time, in seconds, how long you are willing to wait for * a managed spot training job to complete. It is the amount of time spent waiting * for Spot capacity plus the amount of time the training job runs. It must be * equal to or greater than MaxRuntimeInSeconds.

*/ inline int GetMaxWaitTimeInSeconds() const{ return m_maxWaitTimeInSeconds; } /** *

The maximum length of time, in seconds, how long you are willing to wait for * a managed spot training job to complete. It is the amount of time spent waiting * for Spot capacity plus the amount of time the training job runs. It must be * equal to or greater than MaxRuntimeInSeconds.

*/ inline bool MaxWaitTimeInSecondsHasBeenSet() const { return m_maxWaitTimeInSecondsHasBeenSet; } /** *

The maximum length of time, in seconds, how long you are willing to wait for * a managed spot training job to complete. It is the amount of time spent waiting * for Spot capacity plus the amount of time the training job runs. It must be * equal to or greater than MaxRuntimeInSeconds.

*/ inline void SetMaxWaitTimeInSeconds(int value) { m_maxWaitTimeInSecondsHasBeenSet = true; m_maxWaitTimeInSeconds = value; } /** *

The maximum length of time, in seconds, how long you are willing to wait for * a managed spot training job to complete. It is the amount of time spent waiting * for Spot capacity plus the amount of time the training job runs. It must be * equal to or greater than MaxRuntimeInSeconds.

*/ inline StoppingCondition& WithMaxWaitTimeInSeconds(int value) { SetMaxWaitTimeInSeconds(value); return *this;} private: int m_maxRuntimeInSeconds; bool m_maxRuntimeInSecondsHasBeenSet; int m_maxWaitTimeInSeconds; bool m_maxWaitTimeInSecondsHasBeenSet; }; } // namespace Model } // namespace SageMaker } // namespace Aws