/** * 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 { /** *

The collection of settings used by an AutoML job V2 for the time-series * forecasting problem type.

The * TimeSeriesForecastingJobConfig problem type is only available in * private beta. Contact Amazon Web Services Support or your account manager to * learn more about access privileges.

See Also:

AWS * API Reference

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

A URL to the Amazon S3 data source containing additional selected features * that complement the target, itemID, timestamp, and grouped columns set in * TimeSeriesConfig. When not provided, the AutoML job V2 includes all * the columns from the original dataset that are not already declared in * TimeSeriesConfig. If provided, the AutoML job V2 only considers * these additional columns as a complement to the ones declared in * TimeSeriesConfig.

You can input * FeatureAttributeNames (optional) in JSON format as shown below: *

{ "FeatureAttributeNames":["col1", "col2", ...] }.

*

You can also specify the data type of the feature (optional) in the format * shown below:

{ "FeatureDataTypes":{"col1":"numeric", * "col2":"categorical" ... } }

Autopilot supports the following * data types: numeric, categorical, text, * and datetime.

These column keys must not include any * column set in TimeSeriesConfig.

*/ inline const Aws::String& GetFeatureSpecificationS3Uri() const{ return m_featureSpecificationS3Uri; } /** *

A URL to the Amazon S3 data source containing additional selected features * that complement the target, itemID, timestamp, and grouped columns set in * TimeSeriesConfig. When not provided, the AutoML job V2 includes all * the columns from the original dataset that are not already declared in * TimeSeriesConfig. If provided, the AutoML job V2 only considers * these additional columns as a complement to the ones declared in * TimeSeriesConfig.

You can input * FeatureAttributeNames (optional) in JSON format as shown below: *

{ "FeatureAttributeNames":["col1", "col2", ...] }.

*

You can also specify the data type of the feature (optional) in the format * shown below:

{ "FeatureDataTypes":{"col1":"numeric", * "col2":"categorical" ... } }

Autopilot supports the following * data types: numeric, categorical, text, * and datetime.

These column keys must not include any * column set in TimeSeriesConfig.

*/ inline bool FeatureSpecificationS3UriHasBeenSet() const { return m_featureSpecificationS3UriHasBeenSet; } /** *

A URL to the Amazon S3 data source containing additional selected features * that complement the target, itemID, timestamp, and grouped columns set in * TimeSeriesConfig. When not provided, the AutoML job V2 includes all * the columns from the original dataset that are not already declared in * TimeSeriesConfig. If provided, the AutoML job V2 only considers * these additional columns as a complement to the ones declared in * TimeSeriesConfig.

You can input * FeatureAttributeNames (optional) in JSON format as shown below: *

{ "FeatureAttributeNames":["col1", "col2", ...] }.

*

You can also specify the data type of the feature (optional) in the format * shown below:

{ "FeatureDataTypes":{"col1":"numeric", * "col2":"categorical" ... } }

Autopilot supports the following * data types: numeric, categorical, text, * and datetime.

These column keys must not include any * column set in TimeSeriesConfig.

*/ inline void SetFeatureSpecificationS3Uri(const Aws::String& value) { m_featureSpecificationS3UriHasBeenSet = true; m_featureSpecificationS3Uri = value; } /** *

A URL to the Amazon S3 data source containing additional selected features * that complement the target, itemID, timestamp, and grouped columns set in * TimeSeriesConfig. When not provided, the AutoML job V2 includes all * the columns from the original dataset that are not already declared in * TimeSeriesConfig. If provided, the AutoML job V2 only considers * these additional columns as a complement to the ones declared in * TimeSeriesConfig.

You can input * FeatureAttributeNames (optional) in JSON format as shown below: *

{ "FeatureAttributeNames":["col1", "col2", ...] }.

*

You can also specify the data type of the feature (optional) in the format * shown below:

{ "FeatureDataTypes":{"col1":"numeric", * "col2":"categorical" ... } }

Autopilot supports the following * data types: numeric, categorical, text, * and datetime.

These column keys must not include any * column set in TimeSeriesConfig.

*/ inline void SetFeatureSpecificationS3Uri(Aws::String&& value) { m_featureSpecificationS3UriHasBeenSet = true; m_featureSpecificationS3Uri = std::move(value); } /** *

A URL to the Amazon S3 data source containing additional selected features * that complement the target, itemID, timestamp, and grouped columns set in * TimeSeriesConfig. When not provided, the AutoML job V2 includes all * the columns from the original dataset that are not already declared in * TimeSeriesConfig. If provided, the AutoML job V2 only considers * these additional columns as a complement to the ones declared in * TimeSeriesConfig.

You can input * FeatureAttributeNames (optional) in JSON format as shown below: *

{ "FeatureAttributeNames":["col1", "col2", ...] }.

*

You can also specify the data type of the feature (optional) in the format * shown below:

{ "FeatureDataTypes":{"col1":"numeric", * "col2":"categorical" ... } }

Autopilot supports the following * data types: numeric, categorical, text, * and datetime.

These column keys must not include any * column set in TimeSeriesConfig.

*/ inline void SetFeatureSpecificationS3Uri(const char* value) { m_featureSpecificationS3UriHasBeenSet = true; m_featureSpecificationS3Uri.assign(value); } /** *

A URL to the Amazon S3 data source containing additional selected features * that complement the target, itemID, timestamp, and grouped columns set in * TimeSeriesConfig. When not provided, the AutoML job V2 includes all * the columns from the original dataset that are not already declared in * TimeSeriesConfig. If provided, the AutoML job V2 only considers * these additional columns as a complement to the ones declared in * TimeSeriesConfig.

You can input * FeatureAttributeNames (optional) in JSON format as shown below: *

{ "FeatureAttributeNames":["col1", "col2", ...] }.

*

You can also specify the data type of the feature (optional) in the format * shown below:

{ "FeatureDataTypes":{"col1":"numeric", * "col2":"categorical" ... } }

Autopilot supports the following * data types: numeric, categorical, text, * and datetime.

These column keys must not include any * column set in TimeSeriesConfig.

*/ inline TimeSeriesForecastingJobConfig& WithFeatureSpecificationS3Uri(const Aws::String& value) { SetFeatureSpecificationS3Uri(value); return *this;} /** *

A URL to the Amazon S3 data source containing additional selected features * that complement the target, itemID, timestamp, and grouped columns set in * TimeSeriesConfig. When not provided, the AutoML job V2 includes all * the columns from the original dataset that are not already declared in * TimeSeriesConfig. If provided, the AutoML job V2 only considers * these additional columns as a complement to the ones declared in * TimeSeriesConfig.

You can input * FeatureAttributeNames (optional) in JSON format as shown below: *

{ "FeatureAttributeNames":["col1", "col2", ...] }.

*

You can also specify the data type of the feature (optional) in the format * shown below:

{ "FeatureDataTypes":{"col1":"numeric", * "col2":"categorical" ... } }

Autopilot supports the following * data types: numeric, categorical, text, * and datetime.

These column keys must not include any * column set in TimeSeriesConfig.

*/ inline TimeSeriesForecastingJobConfig& WithFeatureSpecificationS3Uri(Aws::String&& value) { SetFeatureSpecificationS3Uri(std::move(value)); return *this;} /** *

A URL to the Amazon S3 data source containing additional selected features * that complement the target, itemID, timestamp, and grouped columns set in * TimeSeriesConfig. When not provided, the AutoML job V2 includes all * the columns from the original dataset that are not already declared in * TimeSeriesConfig. If provided, the AutoML job V2 only considers * these additional columns as a complement to the ones declared in * TimeSeriesConfig.

You can input * FeatureAttributeNames (optional) in JSON format as shown below: *

{ "FeatureAttributeNames":["col1", "col2", ...] }.

*

You can also specify the data type of the feature (optional) in the format * shown below:

{ "FeatureDataTypes":{"col1":"numeric", * "col2":"categorical" ... } }

Autopilot supports the following * data types: numeric, categorical, text, * and datetime.

These column keys must not include any * column set in TimeSeriesConfig.

*/ inline TimeSeriesForecastingJobConfig& WithFeatureSpecificationS3Uri(const char* value) { SetFeatureSpecificationS3Uri(value); return *this;} inline const AutoMLJobCompletionCriteria& GetCompletionCriteria() const{ return m_completionCriteria; } inline bool CompletionCriteriaHasBeenSet() const { return m_completionCriteriaHasBeenSet; } inline void SetCompletionCriteria(const AutoMLJobCompletionCriteria& value) { m_completionCriteriaHasBeenSet = true; m_completionCriteria = value; } inline void SetCompletionCriteria(AutoMLJobCompletionCriteria&& value) { m_completionCriteriaHasBeenSet = true; m_completionCriteria = std::move(value); } inline TimeSeriesForecastingJobConfig& WithCompletionCriteria(const AutoMLJobCompletionCriteria& value) { SetCompletionCriteria(value); return *this;} inline TimeSeriesForecastingJobConfig& WithCompletionCriteria(AutoMLJobCompletionCriteria&& value) { SetCompletionCriteria(std::move(value)); return *this;} /** *

The frequency of predictions in a forecast.

Valid intervals are an * integer followed by Y (Year), M (Month), W (Week), D (Day), H (Hour), and min * (Minute). For example, 1D indicates every day and * 15min indicates every 15 minutes. The value of a frequency must not * overlap with the next larger frequency. For example, you must use a frequency of * 1H instead of 60min.

The valid values for each * frequency are the following:

  • Minute - 1-59

  • *

    Hour - 1-23

  • Day - 1-6

  • Week - 1-4

    *
  • Month - 1-11

  • Year - 1

*/ inline const Aws::String& GetForecastFrequency() const{ return m_forecastFrequency; } /** *

The frequency of predictions in a forecast.

Valid intervals are an * integer followed by Y (Year), M (Month), W (Week), D (Day), H (Hour), and min * (Minute). For example, 1D indicates every day and * 15min indicates every 15 minutes. The value of a frequency must not * overlap with the next larger frequency. For example, you must use a frequency of * 1H instead of 60min.

The valid values for each * frequency are the following:

  • Minute - 1-59

  • *

    Hour - 1-23

  • Day - 1-6

  • Week - 1-4

    *
  • Month - 1-11

  • Year - 1

*/ inline bool ForecastFrequencyHasBeenSet() const { return m_forecastFrequencyHasBeenSet; } /** *

The frequency of predictions in a forecast.

Valid intervals are an * integer followed by Y (Year), M (Month), W (Week), D (Day), H (Hour), and min * (Minute). For example, 1D indicates every day and * 15min indicates every 15 minutes. The value of a frequency must not * overlap with the next larger frequency. For example, you must use a frequency of * 1H instead of 60min.

The valid values for each * frequency are the following:

  • Minute - 1-59

  • *

    Hour - 1-23

  • Day - 1-6

  • Week - 1-4

    *
  • Month - 1-11

  • Year - 1

*/ inline void SetForecastFrequency(const Aws::String& value) { m_forecastFrequencyHasBeenSet = true; m_forecastFrequency = value; } /** *

The frequency of predictions in a forecast.

Valid intervals are an * integer followed by Y (Year), M (Month), W (Week), D (Day), H (Hour), and min * (Minute). For example, 1D indicates every day and * 15min indicates every 15 minutes. The value of a frequency must not * overlap with the next larger frequency. For example, you must use a frequency of * 1H instead of 60min.

The valid values for each * frequency are the following:

  • Minute - 1-59

  • *

    Hour - 1-23

  • Day - 1-6

  • Week - 1-4

    *
  • Month - 1-11

  • Year - 1

*/ inline void SetForecastFrequency(Aws::String&& value) { m_forecastFrequencyHasBeenSet = true; m_forecastFrequency = std::move(value); } /** *

The frequency of predictions in a forecast.

Valid intervals are an * integer followed by Y (Year), M (Month), W (Week), D (Day), H (Hour), and min * (Minute). For example, 1D indicates every day and * 15min indicates every 15 minutes. The value of a frequency must not * overlap with the next larger frequency. For example, you must use a frequency of * 1H instead of 60min.

The valid values for each * frequency are the following:

  • Minute - 1-59

  • *

    Hour - 1-23

  • Day - 1-6

  • Week - 1-4

    *
  • Month - 1-11

  • Year - 1

*/ inline void SetForecastFrequency(const char* value) { m_forecastFrequencyHasBeenSet = true; m_forecastFrequency.assign(value); } /** *

The frequency of predictions in a forecast.

Valid intervals are an * integer followed by Y (Year), M (Month), W (Week), D (Day), H (Hour), and min * (Minute). For example, 1D indicates every day and * 15min indicates every 15 minutes. The value of a frequency must not * overlap with the next larger frequency. For example, you must use a frequency of * 1H instead of 60min.

The valid values for each * frequency are the following:

  • Minute - 1-59

  • *

    Hour - 1-23

  • Day - 1-6

  • Week - 1-4

    *
  • Month - 1-11

  • Year - 1

*/ inline TimeSeriesForecastingJobConfig& WithForecastFrequency(const Aws::String& value) { SetForecastFrequency(value); return *this;} /** *

The frequency of predictions in a forecast.

Valid intervals are an * integer followed by Y (Year), M (Month), W (Week), D (Day), H (Hour), and min * (Minute). For example, 1D indicates every day and * 15min indicates every 15 minutes. The value of a frequency must not * overlap with the next larger frequency. For example, you must use a frequency of * 1H instead of 60min.

The valid values for each * frequency are the following:

  • Minute - 1-59

  • *

    Hour - 1-23

  • Day - 1-6

  • Week - 1-4

    *
  • Month - 1-11

  • Year - 1

*/ inline TimeSeriesForecastingJobConfig& WithForecastFrequency(Aws::String&& value) { SetForecastFrequency(std::move(value)); return *this;} /** *

The frequency of predictions in a forecast.

Valid intervals are an * integer followed by Y (Year), M (Month), W (Week), D (Day), H (Hour), and min * (Minute). For example, 1D indicates every day and * 15min indicates every 15 minutes. The value of a frequency must not * overlap with the next larger frequency. For example, you must use a frequency of * 1H instead of 60min.

The valid values for each * frequency are the following:

  • Minute - 1-59

  • *

    Hour - 1-23

  • Day - 1-6

  • Week - 1-4

    *
  • Month - 1-11

  • Year - 1

*/ inline TimeSeriesForecastingJobConfig& WithForecastFrequency(const char* value) { SetForecastFrequency(value); return *this;} /** *

The number of time-steps that the model predicts. The forecast horizon is * also called the prediction length. The maximum forecast horizon is the lesser of * 500 time-steps or 1/4 of the time-steps in the dataset.

*/ inline int GetForecastHorizon() const{ return m_forecastHorizon; } /** *

The number of time-steps that the model predicts. The forecast horizon is * also called the prediction length. The maximum forecast horizon is the lesser of * 500 time-steps or 1/4 of the time-steps in the dataset.

*/ inline bool ForecastHorizonHasBeenSet() const { return m_forecastHorizonHasBeenSet; } /** *

The number of time-steps that the model predicts. The forecast horizon is * also called the prediction length. The maximum forecast horizon is the lesser of * 500 time-steps or 1/4 of the time-steps in the dataset.

*/ inline void SetForecastHorizon(int value) { m_forecastHorizonHasBeenSet = true; m_forecastHorizon = value; } /** *

The number of time-steps that the model predicts. The forecast horizon is * also called the prediction length. The maximum forecast horizon is the lesser of * 500 time-steps or 1/4 of the time-steps in the dataset.

*/ inline TimeSeriesForecastingJobConfig& WithForecastHorizon(int value) { SetForecastHorizon(value); return *this;} /** *

The quantiles used to train the model for forecasts at a specified quantile. * You can specify quantiles from 0.01 (p1) to 0.99 * (p99), by increments of 0.01 or higher. Up to five forecast quantiles can be * specified. When ForecastQuantiles is not provided, the AutoML job * uses the quantiles p10, p50, and p90 as default.

*/ inline const Aws::Vector& GetForecastQuantiles() const{ return m_forecastQuantiles; } /** *

The quantiles used to train the model for forecasts at a specified quantile. * You can specify quantiles from 0.01 (p1) to 0.99 * (p99), by increments of 0.01 or higher. Up to five forecast quantiles can be * specified. When ForecastQuantiles is not provided, the AutoML job * uses the quantiles p10, p50, and p90 as default.

*/ inline bool ForecastQuantilesHasBeenSet() const { return m_forecastQuantilesHasBeenSet; } /** *

The quantiles used to train the model for forecasts at a specified quantile. * You can specify quantiles from 0.01 (p1) to 0.99 * (p99), by increments of 0.01 or higher. Up to five forecast quantiles can be * specified. When ForecastQuantiles is not provided, the AutoML job * uses the quantiles p10, p50, and p90 as default.

*/ inline void SetForecastQuantiles(const Aws::Vector& value) { m_forecastQuantilesHasBeenSet = true; m_forecastQuantiles = value; } /** *

The quantiles used to train the model for forecasts at a specified quantile. * You can specify quantiles from 0.01 (p1) to 0.99 * (p99), by increments of 0.01 or higher. Up to five forecast quantiles can be * specified. When ForecastQuantiles is not provided, the AutoML job * uses the quantiles p10, p50, and p90 as default.

*/ inline void SetForecastQuantiles(Aws::Vector&& value) { m_forecastQuantilesHasBeenSet = true; m_forecastQuantiles = std::move(value); } /** *

The quantiles used to train the model for forecasts at a specified quantile. * You can specify quantiles from 0.01 (p1) to 0.99 * (p99), by increments of 0.01 or higher. Up to five forecast quantiles can be * specified. When ForecastQuantiles is not provided, the AutoML job * uses the quantiles p10, p50, and p90 as default.

*/ inline TimeSeriesForecastingJobConfig& WithForecastQuantiles(const Aws::Vector& value) { SetForecastQuantiles(value); return *this;} /** *

The quantiles used to train the model for forecasts at a specified quantile. * You can specify quantiles from 0.01 (p1) to 0.99 * (p99), by increments of 0.01 or higher. Up to five forecast quantiles can be * specified. When ForecastQuantiles is not provided, the AutoML job * uses the quantiles p10, p50, and p90 as default.

*/ inline TimeSeriesForecastingJobConfig& WithForecastQuantiles(Aws::Vector&& value) { SetForecastQuantiles(std::move(value)); return *this;} /** *

The quantiles used to train the model for forecasts at a specified quantile. * You can specify quantiles from 0.01 (p1) to 0.99 * (p99), by increments of 0.01 or higher. Up to five forecast quantiles can be * specified. When ForecastQuantiles is not provided, the AutoML job * uses the quantiles p10, p50, and p90 as default.

*/ inline TimeSeriesForecastingJobConfig& AddForecastQuantiles(const Aws::String& value) { m_forecastQuantilesHasBeenSet = true; m_forecastQuantiles.push_back(value); return *this; } /** *

The quantiles used to train the model for forecasts at a specified quantile. * You can specify quantiles from 0.01 (p1) to 0.99 * (p99), by increments of 0.01 or higher. Up to five forecast quantiles can be * specified. When ForecastQuantiles is not provided, the AutoML job * uses the quantiles p10, p50, and p90 as default.

*/ inline TimeSeriesForecastingJobConfig& AddForecastQuantiles(Aws::String&& value) { m_forecastQuantilesHasBeenSet = true; m_forecastQuantiles.push_back(std::move(value)); return *this; } /** *

The quantiles used to train the model for forecasts at a specified quantile. * You can specify quantiles from 0.01 (p1) to 0.99 * (p99), by increments of 0.01 or higher. Up to five forecast quantiles can be * specified. When ForecastQuantiles is not provided, the AutoML job * uses the quantiles p10, p50, and p90 as default.

*/ inline TimeSeriesForecastingJobConfig& AddForecastQuantiles(const char* value) { m_forecastQuantilesHasBeenSet = true; m_forecastQuantiles.push_back(value); return *this; } /** *

The transformations modifying specific attributes of the time-series, such as * filling strategies for missing values.

*/ inline const TimeSeriesTransformations& GetTransformations() const{ return m_transformations; } /** *

The transformations modifying specific attributes of the time-series, such as * filling strategies for missing values.

*/ inline bool TransformationsHasBeenSet() const { return m_transformationsHasBeenSet; } /** *

The transformations modifying specific attributes of the time-series, such as * filling strategies for missing values.

*/ inline void SetTransformations(const TimeSeriesTransformations& value) { m_transformationsHasBeenSet = true; m_transformations = value; } /** *

The transformations modifying specific attributes of the time-series, such as * filling strategies for missing values.

*/ inline void SetTransformations(TimeSeriesTransformations&& value) { m_transformationsHasBeenSet = true; m_transformations = std::move(value); } /** *

The transformations modifying specific attributes of the time-series, such as * filling strategies for missing values.

*/ inline TimeSeriesForecastingJobConfig& WithTransformations(const TimeSeriesTransformations& value) { SetTransformations(value); return *this;} /** *

The transformations modifying specific attributes of the time-series, such as * filling strategies for missing values.

*/ inline TimeSeriesForecastingJobConfig& WithTransformations(TimeSeriesTransformations&& value) { SetTransformations(std::move(value)); return *this;} /** *

The collection of components that defines the time-series.

*/ inline const TimeSeriesConfig& GetTimeSeriesConfig() const{ return m_timeSeriesConfig; } /** *

The collection of components that defines the time-series.

*/ inline bool TimeSeriesConfigHasBeenSet() const { return m_timeSeriesConfigHasBeenSet; } /** *

The collection of components that defines the time-series.

*/ inline void SetTimeSeriesConfig(const TimeSeriesConfig& value) { m_timeSeriesConfigHasBeenSet = true; m_timeSeriesConfig = value; } /** *

The collection of components that defines the time-series.

*/ inline void SetTimeSeriesConfig(TimeSeriesConfig&& value) { m_timeSeriesConfigHasBeenSet = true; m_timeSeriesConfig = std::move(value); } /** *

The collection of components that defines the time-series.

*/ inline TimeSeriesForecastingJobConfig& WithTimeSeriesConfig(const TimeSeriesConfig& value) { SetTimeSeriesConfig(value); return *this;} /** *

The collection of components that defines the time-series.

*/ inline TimeSeriesForecastingJobConfig& WithTimeSeriesConfig(TimeSeriesConfig&& value) { SetTimeSeriesConfig(std::move(value)); return *this;} private: Aws::String m_featureSpecificationS3Uri; bool m_featureSpecificationS3UriHasBeenSet = false; AutoMLJobCompletionCriteria m_completionCriteria; bool m_completionCriteriaHasBeenSet = false; Aws::String m_forecastFrequency; bool m_forecastFrequencyHasBeenSet = false; int m_forecastHorizon; bool m_forecastHorizonHasBeenSet = false; Aws::Vector m_forecastQuantiles; bool m_forecastQuantilesHasBeenSet = false; TimeSeriesTransformations m_transformations; bool m_transformationsHasBeenSet = false; TimeSeriesConfig m_timeSeriesConfig; bool m_timeSeriesConfigHasBeenSet = false; }; } // namespace Model } // namespace SageMaker } // namespace Aws