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

Specifies the training algorithm to use in a CreateTrainingJob * request.

For more information about algorithms provided by SageMaker, see * Algorithms. * For information about using your own algorithms, see Using * Your Own Algorithms with Amazon SageMaker.

See Also:

AWS * API Reference

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

The registry path of the Docker image that contains the training algorithm. * For information about docker registry paths for SageMaker built-in algorithms, * see Docker * Registry Paths and Example Code in the Amazon SageMaker developer * guide. SageMaker supports both registry/repository[:tag] and * registry/repository[@digest] image path formats. For more * information about using your custom training container, see Using * Your Own Algorithms with Amazon SageMaker.

You must specify * either the algorithm name to the AlgorithmName parameter or the * image URI of the algorithm container to the TrainingImage * parameter.

For more information, see the note in the * AlgorithmName parameter description.

*/ inline const Aws::String& GetTrainingImage() const{ return m_trainingImage; } /** *

The registry path of the Docker image that contains the training algorithm. * For information about docker registry paths for SageMaker built-in algorithms, * see Docker * Registry Paths and Example Code in the Amazon SageMaker developer * guide. SageMaker supports both registry/repository[:tag] and * registry/repository[@digest] image path formats. For more * information about using your custom training container, see Using * Your Own Algorithms with Amazon SageMaker.

You must specify * either the algorithm name to the AlgorithmName parameter or the * image URI of the algorithm container to the TrainingImage * parameter.

For more information, see the note in the * AlgorithmName parameter description.

*/ inline bool TrainingImageHasBeenSet() const { return m_trainingImageHasBeenSet; } /** *

The registry path of the Docker image that contains the training algorithm. * For information about docker registry paths for SageMaker built-in algorithms, * see Docker * Registry Paths and Example Code in the Amazon SageMaker developer * guide. SageMaker supports both registry/repository[:tag] and * registry/repository[@digest] image path formats. For more * information about using your custom training container, see Using * Your Own Algorithms with Amazon SageMaker.

You must specify * either the algorithm name to the AlgorithmName parameter or the * image URI of the algorithm container to the TrainingImage * parameter.

For more information, see the note in the * AlgorithmName parameter description.

*/ inline void SetTrainingImage(const Aws::String& value) { m_trainingImageHasBeenSet = true; m_trainingImage = value; } /** *

The registry path of the Docker image that contains the training algorithm. * For information about docker registry paths for SageMaker built-in algorithms, * see Docker * Registry Paths and Example Code in the Amazon SageMaker developer * guide. SageMaker supports both registry/repository[:tag] and * registry/repository[@digest] image path formats. For more * information about using your custom training container, see Using * Your Own Algorithms with Amazon SageMaker.

You must specify * either the algorithm name to the AlgorithmName parameter or the * image URI of the algorithm container to the TrainingImage * parameter.

For more information, see the note in the * AlgorithmName parameter description.

*/ inline void SetTrainingImage(Aws::String&& value) { m_trainingImageHasBeenSet = true; m_trainingImage = std::move(value); } /** *

The registry path of the Docker image that contains the training algorithm. * For information about docker registry paths for SageMaker built-in algorithms, * see Docker * Registry Paths and Example Code in the Amazon SageMaker developer * guide. SageMaker supports both registry/repository[:tag] and * registry/repository[@digest] image path formats. For more * information about using your custom training container, see Using * Your Own Algorithms with Amazon SageMaker.

You must specify * either the algorithm name to the AlgorithmName parameter or the * image URI of the algorithm container to the TrainingImage * parameter.

For more information, see the note in the * AlgorithmName parameter description.

*/ inline void SetTrainingImage(const char* value) { m_trainingImageHasBeenSet = true; m_trainingImage.assign(value); } /** *

The registry path of the Docker image that contains the training algorithm. * For information about docker registry paths for SageMaker built-in algorithms, * see Docker * Registry Paths and Example Code in the Amazon SageMaker developer * guide. SageMaker supports both registry/repository[:tag] and * registry/repository[@digest] image path formats. For more * information about using your custom training container, see Using * Your Own Algorithms with Amazon SageMaker.

You must specify * either the algorithm name to the AlgorithmName parameter or the * image URI of the algorithm container to the TrainingImage * parameter.

For more information, see the note in the * AlgorithmName parameter description.

*/ inline AlgorithmSpecification& WithTrainingImage(const Aws::String& value) { SetTrainingImage(value); return *this;} /** *

The registry path of the Docker image that contains the training algorithm. * For information about docker registry paths for SageMaker built-in algorithms, * see Docker * Registry Paths and Example Code in the Amazon SageMaker developer * guide. SageMaker supports both registry/repository[:tag] and * registry/repository[@digest] image path formats. For more * information about using your custom training container, see Using * Your Own Algorithms with Amazon SageMaker.

You must specify * either the algorithm name to the AlgorithmName parameter or the * image URI of the algorithm container to the TrainingImage * parameter.

For more information, see the note in the * AlgorithmName parameter description.

*/ inline AlgorithmSpecification& WithTrainingImage(Aws::String&& value) { SetTrainingImage(std::move(value)); return *this;} /** *

The registry path of the Docker image that contains the training algorithm. * For information about docker registry paths for SageMaker built-in algorithms, * see Docker * Registry Paths and Example Code in the Amazon SageMaker developer * guide. SageMaker supports both registry/repository[:tag] and * registry/repository[@digest] image path formats. For more * information about using your custom training container, see Using * Your Own Algorithms with Amazon SageMaker.

You must specify * either the algorithm name to the AlgorithmName parameter or the * image URI of the algorithm container to the TrainingImage * parameter.

For more information, see the note in the * AlgorithmName parameter description.

*/ inline AlgorithmSpecification& WithTrainingImage(const char* value) { SetTrainingImage(value); return *this;} /** *

The name of the algorithm resource to use for the training job. This must be * an algorithm resource that you created or subscribe to on Amazon Web Services * Marketplace.

You must specify either the algorithm name to the * AlgorithmName parameter or the image URI of the algorithm container * to the TrainingImage parameter.

Note that the * AlgorithmName parameter is mutually exclusive with the * TrainingImage parameter. If you specify a value for the * AlgorithmName parameter, you can't specify a value for * TrainingImage, and vice versa.

If you specify values for * both parameters, the training job might break; if you don't specify any value * for both parameters, the training job might raise a null error.

* */ inline const Aws::String& GetAlgorithmName() const{ return m_algorithmName; } /** *

The name of the algorithm resource to use for the training job. This must be * an algorithm resource that you created or subscribe to on Amazon Web Services * Marketplace.

You must specify either the algorithm name to the * AlgorithmName parameter or the image URI of the algorithm container * to the TrainingImage parameter.

Note that the * AlgorithmName parameter is mutually exclusive with the * TrainingImage parameter. If you specify a value for the * AlgorithmName parameter, you can't specify a value for * TrainingImage, and vice versa.

If you specify values for * both parameters, the training job might break; if you don't specify any value * for both parameters, the training job might raise a null error.

* */ inline bool AlgorithmNameHasBeenSet() const { return m_algorithmNameHasBeenSet; } /** *

The name of the algorithm resource to use for the training job. This must be * an algorithm resource that you created or subscribe to on Amazon Web Services * Marketplace.

You must specify either the algorithm name to the * AlgorithmName parameter or the image URI of the algorithm container * to the TrainingImage parameter.

Note that the * AlgorithmName parameter is mutually exclusive with the * TrainingImage parameter. If you specify a value for the * AlgorithmName parameter, you can't specify a value for * TrainingImage, and vice versa.

If you specify values for * both parameters, the training job might break; if you don't specify any value * for both parameters, the training job might raise a null error.

* */ inline void SetAlgorithmName(const Aws::String& value) { m_algorithmNameHasBeenSet = true; m_algorithmName = value; } /** *

The name of the algorithm resource to use for the training job. This must be * an algorithm resource that you created or subscribe to on Amazon Web Services * Marketplace.

You must specify either the algorithm name to the * AlgorithmName parameter or the image URI of the algorithm container * to the TrainingImage parameter.

Note that the * AlgorithmName parameter is mutually exclusive with the * TrainingImage parameter. If you specify a value for the * AlgorithmName parameter, you can't specify a value for * TrainingImage, and vice versa.

If you specify values for * both parameters, the training job might break; if you don't specify any value * for both parameters, the training job might raise a null error.

* */ inline void SetAlgorithmName(Aws::String&& value) { m_algorithmNameHasBeenSet = true; m_algorithmName = std::move(value); } /** *

The name of the algorithm resource to use for the training job. This must be * an algorithm resource that you created or subscribe to on Amazon Web Services * Marketplace.

You must specify either the algorithm name to the * AlgorithmName parameter or the image URI of the algorithm container * to the TrainingImage parameter.

Note that the * AlgorithmName parameter is mutually exclusive with the * TrainingImage parameter. If you specify a value for the * AlgorithmName parameter, you can't specify a value for * TrainingImage, and vice versa.

If you specify values for * both parameters, the training job might break; if you don't specify any value * for both parameters, the training job might raise a null error.

* */ inline void SetAlgorithmName(const char* value) { m_algorithmNameHasBeenSet = true; m_algorithmName.assign(value); } /** *

The name of the algorithm resource to use for the training job. This must be * an algorithm resource that you created or subscribe to on Amazon Web Services * Marketplace.

You must specify either the algorithm name to the * AlgorithmName parameter or the image URI of the algorithm container * to the TrainingImage parameter.

Note that the * AlgorithmName parameter is mutually exclusive with the * TrainingImage parameter. If you specify a value for the * AlgorithmName parameter, you can't specify a value for * TrainingImage, and vice versa.

If you specify values for * both parameters, the training job might break; if you don't specify any value * for both parameters, the training job might raise a null error.

* */ inline AlgorithmSpecification& WithAlgorithmName(const Aws::String& value) { SetAlgorithmName(value); return *this;} /** *

The name of the algorithm resource to use for the training job. This must be * an algorithm resource that you created or subscribe to on Amazon Web Services * Marketplace.

You must specify either the algorithm name to the * AlgorithmName parameter or the image URI of the algorithm container * to the TrainingImage parameter.

Note that the * AlgorithmName parameter is mutually exclusive with the * TrainingImage parameter. If you specify a value for the * AlgorithmName parameter, you can't specify a value for * TrainingImage, and vice versa.

If you specify values for * both parameters, the training job might break; if you don't specify any value * for both parameters, the training job might raise a null error.

* */ inline AlgorithmSpecification& WithAlgorithmName(Aws::String&& value) { SetAlgorithmName(std::move(value)); return *this;} /** *

The name of the algorithm resource to use for the training job. This must be * an algorithm resource that you created or subscribe to on Amazon Web Services * Marketplace.

You must specify either the algorithm name to the * AlgorithmName parameter or the image URI of the algorithm container * to the TrainingImage parameter.

Note that the * AlgorithmName parameter is mutually exclusive with the * TrainingImage parameter. If you specify a value for the * AlgorithmName parameter, you can't specify a value for * TrainingImage, and vice versa.

If you specify values for * both parameters, the training job might break; if you don't specify any value * for both parameters, the training job might raise a null error.

* */ inline AlgorithmSpecification& WithAlgorithmName(const char* value) { SetAlgorithmName(value); return *this;} inline const TrainingInputMode& GetTrainingInputMode() const{ return m_trainingInputMode; } inline bool TrainingInputModeHasBeenSet() const { return m_trainingInputModeHasBeenSet; } inline void SetTrainingInputMode(const TrainingInputMode& value) { m_trainingInputModeHasBeenSet = true; m_trainingInputMode = value; } inline void SetTrainingInputMode(TrainingInputMode&& value) { m_trainingInputModeHasBeenSet = true; m_trainingInputMode = std::move(value); } inline AlgorithmSpecification& WithTrainingInputMode(const TrainingInputMode& value) { SetTrainingInputMode(value); return *this;} inline AlgorithmSpecification& WithTrainingInputMode(TrainingInputMode&& value) { SetTrainingInputMode(std::move(value)); return *this;} /** *

A list of metric definition objects. Each object specifies the metric name * and regular expressions used to parse algorithm logs. SageMaker publishes each * metric to Amazon CloudWatch.

*/ inline const Aws::Vector& GetMetricDefinitions() const{ return m_metricDefinitions; } /** *

A list of metric definition objects. Each object specifies the metric name * and regular expressions used to parse algorithm logs. SageMaker publishes each * metric to Amazon CloudWatch.

*/ inline bool MetricDefinitionsHasBeenSet() const { return m_metricDefinitionsHasBeenSet; } /** *

A list of metric definition objects. Each object specifies the metric name * and regular expressions used to parse algorithm logs. SageMaker publishes each * metric to Amazon CloudWatch.

*/ inline void SetMetricDefinitions(const Aws::Vector& value) { m_metricDefinitionsHasBeenSet = true; m_metricDefinitions = value; } /** *

A list of metric definition objects. Each object specifies the metric name * and regular expressions used to parse algorithm logs. SageMaker publishes each * metric to Amazon CloudWatch.

*/ inline void SetMetricDefinitions(Aws::Vector&& value) { m_metricDefinitionsHasBeenSet = true; m_metricDefinitions = std::move(value); } /** *

A list of metric definition objects. Each object specifies the metric name * and regular expressions used to parse algorithm logs. SageMaker publishes each * metric to Amazon CloudWatch.

*/ inline AlgorithmSpecification& WithMetricDefinitions(const Aws::Vector& value) { SetMetricDefinitions(value); return *this;} /** *

A list of metric definition objects. Each object specifies the metric name * and regular expressions used to parse algorithm logs. SageMaker publishes each * metric to Amazon CloudWatch.

*/ inline AlgorithmSpecification& WithMetricDefinitions(Aws::Vector&& value) { SetMetricDefinitions(std::move(value)); return *this;} /** *

A list of metric definition objects. Each object specifies the metric name * and regular expressions used to parse algorithm logs. SageMaker publishes each * metric to Amazon CloudWatch.

*/ inline AlgorithmSpecification& AddMetricDefinitions(const MetricDefinition& value) { m_metricDefinitionsHasBeenSet = true; m_metricDefinitions.push_back(value); return *this; } /** *

A list of metric definition objects. Each object specifies the metric name * and regular expressions used to parse algorithm logs. SageMaker publishes each * metric to Amazon CloudWatch.

*/ inline AlgorithmSpecification& AddMetricDefinitions(MetricDefinition&& value) { m_metricDefinitionsHasBeenSet = true; m_metricDefinitions.push_back(std::move(value)); return *this; } /** *

To generate and save time-series metrics during training, set to * true. The default is false and time-series metrics * aren't generated except in the following cases:

*/ inline bool GetEnableSageMakerMetricsTimeSeries() const{ return m_enableSageMakerMetricsTimeSeries; } /** *

To generate and save time-series metrics during training, set to * true. The default is false and time-series metrics * aren't generated except in the following cases:

*/ inline bool EnableSageMakerMetricsTimeSeriesHasBeenSet() const { return m_enableSageMakerMetricsTimeSeriesHasBeenSet; } /** *

To generate and save time-series metrics during training, set to * true. The default is false and time-series metrics * aren't generated except in the following cases:

*/ inline void SetEnableSageMakerMetricsTimeSeries(bool value) { m_enableSageMakerMetricsTimeSeriesHasBeenSet = true; m_enableSageMakerMetricsTimeSeries = value; } /** *

To generate and save time-series metrics during training, set to * true. The default is false and time-series metrics * aren't generated except in the following cases:

*/ inline AlgorithmSpecification& WithEnableSageMakerMetricsTimeSeries(bool value) { SetEnableSageMakerMetricsTimeSeries(value); return *this;} /** *

The entrypoint * script for a Docker container used to run a training job. This script takes * precedence over the default train processing instructions. See How * Amazon SageMaker Runs Your Training Image for more information.

*/ inline const Aws::Vector& GetContainerEntrypoint() const{ return m_containerEntrypoint; } /** *

The entrypoint * script for a Docker container used to run a training job. This script takes * precedence over the default train processing instructions. See How * Amazon SageMaker Runs Your Training Image for more information.

*/ inline bool ContainerEntrypointHasBeenSet() const { return m_containerEntrypointHasBeenSet; } /** *

The entrypoint * script for a Docker container used to run a training job. This script takes * precedence over the default train processing instructions. See How * Amazon SageMaker Runs Your Training Image for more information.

*/ inline void SetContainerEntrypoint(const Aws::Vector& value) { m_containerEntrypointHasBeenSet = true; m_containerEntrypoint = value; } /** *

The entrypoint * script for a Docker container used to run a training job. This script takes * precedence over the default train processing instructions. See How * Amazon SageMaker Runs Your Training Image for more information.

*/ inline void SetContainerEntrypoint(Aws::Vector&& value) { m_containerEntrypointHasBeenSet = true; m_containerEntrypoint = std::move(value); } /** *

The entrypoint * script for a Docker container used to run a training job. This script takes * precedence over the default train processing instructions. See How * Amazon SageMaker Runs Your Training Image for more information.

*/ inline AlgorithmSpecification& WithContainerEntrypoint(const Aws::Vector& value) { SetContainerEntrypoint(value); return *this;} /** *

The entrypoint * script for a Docker container used to run a training job. This script takes * precedence over the default train processing instructions. See How * Amazon SageMaker Runs Your Training Image for more information.

*/ inline AlgorithmSpecification& WithContainerEntrypoint(Aws::Vector&& value) { SetContainerEntrypoint(std::move(value)); return *this;} /** *

The entrypoint * script for a Docker container used to run a training job. This script takes * precedence over the default train processing instructions. See How * Amazon SageMaker Runs Your Training Image for more information.

*/ inline AlgorithmSpecification& AddContainerEntrypoint(const Aws::String& value) { m_containerEntrypointHasBeenSet = true; m_containerEntrypoint.push_back(value); return *this; } /** *

The entrypoint * script for a Docker container used to run a training job. This script takes * precedence over the default train processing instructions. See How * Amazon SageMaker Runs Your Training Image for more information.

*/ inline AlgorithmSpecification& AddContainerEntrypoint(Aws::String&& value) { m_containerEntrypointHasBeenSet = true; m_containerEntrypoint.push_back(std::move(value)); return *this; } /** *

The entrypoint * script for a Docker container used to run a training job. This script takes * precedence over the default train processing instructions. See How * Amazon SageMaker Runs Your Training Image for more information.

*/ inline AlgorithmSpecification& AddContainerEntrypoint(const char* value) { m_containerEntrypointHasBeenSet = true; m_containerEntrypoint.push_back(value); return *this; } /** *

The arguments for a container used to run a training job. See How * Amazon SageMaker Runs Your Training Image for additional information.

*/ inline const Aws::Vector& GetContainerArguments() const{ return m_containerArguments; } /** *

The arguments for a container used to run a training job. See How * Amazon SageMaker Runs Your Training Image for additional information.

*/ inline bool ContainerArgumentsHasBeenSet() const { return m_containerArgumentsHasBeenSet; } /** *

The arguments for a container used to run a training job. See How * Amazon SageMaker Runs Your Training Image for additional information.

*/ inline void SetContainerArguments(const Aws::Vector& value) { m_containerArgumentsHasBeenSet = true; m_containerArguments = value; } /** *

The arguments for a container used to run a training job. See How * Amazon SageMaker Runs Your Training Image for additional information.

*/ inline void SetContainerArguments(Aws::Vector&& value) { m_containerArgumentsHasBeenSet = true; m_containerArguments = std::move(value); } /** *

The arguments for a container used to run a training job. See How * Amazon SageMaker Runs Your Training Image for additional information.

*/ inline AlgorithmSpecification& WithContainerArguments(const Aws::Vector& value) { SetContainerArguments(value); return *this;} /** *

The arguments for a container used to run a training job. See How * Amazon SageMaker Runs Your Training Image for additional information.

*/ inline AlgorithmSpecification& WithContainerArguments(Aws::Vector&& value) { SetContainerArguments(std::move(value)); return *this;} /** *

The arguments for a container used to run a training job. See How * Amazon SageMaker Runs Your Training Image for additional information.

*/ inline AlgorithmSpecification& AddContainerArguments(const Aws::String& value) { m_containerArgumentsHasBeenSet = true; m_containerArguments.push_back(value); return *this; } /** *

The arguments for a container used to run a training job. See How * Amazon SageMaker Runs Your Training Image for additional information.

*/ inline AlgorithmSpecification& AddContainerArguments(Aws::String&& value) { m_containerArgumentsHasBeenSet = true; m_containerArguments.push_back(std::move(value)); return *this; } /** *

The arguments for a container used to run a training job. See How * Amazon SageMaker Runs Your Training Image for additional information.

*/ inline AlgorithmSpecification& AddContainerArguments(const char* value) { m_containerArgumentsHasBeenSet = true; m_containerArguments.push_back(value); return *this; } /** *

The configuration to use an image from a private Docker registry for a * training job.

*/ inline const TrainingImageConfig& GetTrainingImageConfig() const{ return m_trainingImageConfig; } /** *

The configuration to use an image from a private Docker registry for a * training job.

*/ inline bool TrainingImageConfigHasBeenSet() const { return m_trainingImageConfigHasBeenSet; } /** *

The configuration to use an image from a private Docker registry for a * training job.

*/ inline void SetTrainingImageConfig(const TrainingImageConfig& value) { m_trainingImageConfigHasBeenSet = true; m_trainingImageConfig = value; } /** *

The configuration to use an image from a private Docker registry for a * training job.

*/ inline void SetTrainingImageConfig(TrainingImageConfig&& value) { m_trainingImageConfigHasBeenSet = true; m_trainingImageConfig = std::move(value); } /** *

The configuration to use an image from a private Docker registry for a * training job.

*/ inline AlgorithmSpecification& WithTrainingImageConfig(const TrainingImageConfig& value) { SetTrainingImageConfig(value); return *this;} /** *

The configuration to use an image from a private Docker registry for a * training job.

*/ inline AlgorithmSpecification& WithTrainingImageConfig(TrainingImageConfig&& value) { SetTrainingImageConfig(std::move(value)); return *this;} private: Aws::String m_trainingImage; bool m_trainingImageHasBeenSet = false; Aws::String m_algorithmName; bool m_algorithmNameHasBeenSet = false; TrainingInputMode m_trainingInputMode; bool m_trainingInputModeHasBeenSet = false; Aws::Vector m_metricDefinitions; bool m_metricDefinitionsHasBeenSet = false; bool m_enableSageMakerMetricsTimeSeries; bool m_enableSageMakerMetricsTimeSeriesHasBeenSet = false; Aws::Vector m_containerEntrypoint; bool m_containerEntrypointHasBeenSet = false; Aws::Vector m_containerArguments; bool m_containerArgumentsHasBeenSet = false; TrainingImageConfig m_trainingImageConfig; bool m_trainingImageConfigHasBeenSet = false; }; } // namespace Model } // namespace SageMaker } // namespace Aws