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

This object belongs to the CreatePredictor operation. If you * created your predictor with CreateAutoPredictor, see * AttributeConfig.

In a CreatePredictor operation, * the specified algorithm trains a model using the specified dataset group. You * can optionally tell the operation to modify data fields prior to training a * model. These modifications are referred to as featurization.

You * define featurization using the FeaturizationConfig object. You * specify an array of transformations, one for each field that you want to * featurize. You then include the FeaturizationConfig object in your * CreatePredictor request. Amazon Forecast applies the featurization * to the TARGET_TIME_SERIES and RELATED_TIME_SERIES * datasets before model training.

You can create multiple featurization * configurations. For example, you might call the CreatePredictor * operation twice by specifying different featurization * configurations.

See Also:

AWS * API Reference

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

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. You cannot specify a value that would overlap with the next larger * frequency. That means, for example, you cannot specify a frequency of 60 * minutes, because that is equivalent to 1 hour. 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

Thus, * if you want every other week forecasts, specify "2W". Or, if you want quarterly * forecasts, you specify "3M".

The frequency must be greater than or equal * to the TARGET_TIME_SERIES dataset frequency.

When a RELATED_TIME_SERIES * dataset is provided, the frequency must be equal to the TARGET_TIME_SERIES * dataset frequency.

*/ 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. You cannot specify a value that would overlap with the next larger * frequency. That means, for example, you cannot specify a frequency of 60 * minutes, because that is equivalent to 1 hour. 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

Thus, * if you want every other week forecasts, specify "2W". Or, if you want quarterly * forecasts, you specify "3M".

The frequency must be greater than or equal * to the TARGET_TIME_SERIES dataset frequency.

When a RELATED_TIME_SERIES * dataset is provided, the frequency must be equal to the TARGET_TIME_SERIES * dataset frequency.

*/ 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. You cannot specify a value that would overlap with the next larger * frequency. That means, for example, you cannot specify a frequency of 60 * minutes, because that is equivalent to 1 hour. 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

Thus, * if you want every other week forecasts, specify "2W". Or, if you want quarterly * forecasts, you specify "3M".

The frequency must be greater than or equal * to the TARGET_TIME_SERIES dataset frequency.

When a RELATED_TIME_SERIES * dataset is provided, the frequency must be equal to the TARGET_TIME_SERIES * dataset frequency.

*/ 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. You cannot specify a value that would overlap with the next larger * frequency. That means, for example, you cannot specify a frequency of 60 * minutes, because that is equivalent to 1 hour. 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

Thus, * if you want every other week forecasts, specify "2W". Or, if you want quarterly * forecasts, you specify "3M".

The frequency must be greater than or equal * to the TARGET_TIME_SERIES dataset frequency.

When a RELATED_TIME_SERIES * dataset is provided, the frequency must be equal to the TARGET_TIME_SERIES * dataset frequency.

*/ 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. You cannot specify a value that would overlap with the next larger * frequency. That means, for example, you cannot specify a frequency of 60 * minutes, because that is equivalent to 1 hour. 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

Thus, * if you want every other week forecasts, specify "2W". Or, if you want quarterly * forecasts, you specify "3M".

The frequency must be greater than or equal * to the TARGET_TIME_SERIES dataset frequency.

When a RELATED_TIME_SERIES * dataset is provided, the frequency must be equal to the TARGET_TIME_SERIES * dataset frequency.

*/ 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. You cannot specify a value that would overlap with the next larger * frequency. That means, for example, you cannot specify a frequency of 60 * minutes, because that is equivalent to 1 hour. 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

Thus, * if you want every other week forecasts, specify "2W". Or, if you want quarterly * forecasts, you specify "3M".

The frequency must be greater than or equal * to the TARGET_TIME_SERIES dataset frequency.

When a RELATED_TIME_SERIES * dataset is provided, the frequency must be equal to the TARGET_TIME_SERIES * dataset frequency.

*/ inline FeaturizationConfig& 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. You cannot specify a value that would overlap with the next larger * frequency. That means, for example, you cannot specify a frequency of 60 * minutes, because that is equivalent to 1 hour. 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

Thus, * if you want every other week forecasts, specify "2W". Or, if you want quarterly * forecasts, you specify "3M".

The frequency must be greater than or equal * to the TARGET_TIME_SERIES dataset frequency.

When a RELATED_TIME_SERIES * dataset is provided, the frequency must be equal to the TARGET_TIME_SERIES * dataset frequency.

*/ inline FeaturizationConfig& 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. You cannot specify a value that would overlap with the next larger * frequency. That means, for example, you cannot specify a frequency of 60 * minutes, because that is equivalent to 1 hour. 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

Thus, * if you want every other week forecasts, specify "2W". Or, if you want quarterly * forecasts, you specify "3M".

The frequency must be greater than or equal * to the TARGET_TIME_SERIES dataset frequency.

When a RELATED_TIME_SERIES * dataset is provided, the frequency must be equal to the TARGET_TIME_SERIES * dataset frequency.

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

An array of dimension (field) names that specify how to group the generated * forecast.

For example, suppose that you are generating a forecast for * item sales across all of your stores, and your dataset contains a * store_id field. If you want the sales forecast for each item by * store, you would specify store_id as the dimension.

All * forecast dimensions specified in the TARGET_TIME_SERIES dataset * don't need to be specified in the CreatePredictor request. All * forecast dimensions specified in the RELATED_TIME_SERIES dataset * must be specified in the CreatePredictor request.

*/ inline const Aws::Vector& GetForecastDimensions() const{ return m_forecastDimensions; } /** *

An array of dimension (field) names that specify how to group the generated * forecast.

For example, suppose that you are generating a forecast for * item sales across all of your stores, and your dataset contains a * store_id field. If you want the sales forecast for each item by * store, you would specify store_id as the dimension.

All * forecast dimensions specified in the TARGET_TIME_SERIES dataset * don't need to be specified in the CreatePredictor request. All * forecast dimensions specified in the RELATED_TIME_SERIES dataset * must be specified in the CreatePredictor request.

*/ inline bool ForecastDimensionsHasBeenSet() const { return m_forecastDimensionsHasBeenSet; } /** *

An array of dimension (field) names that specify how to group the generated * forecast.

For example, suppose that you are generating a forecast for * item sales across all of your stores, and your dataset contains a * store_id field. If you want the sales forecast for each item by * store, you would specify store_id as the dimension.

All * forecast dimensions specified in the TARGET_TIME_SERIES dataset * don't need to be specified in the CreatePredictor request. All * forecast dimensions specified in the RELATED_TIME_SERIES dataset * must be specified in the CreatePredictor request.

*/ inline void SetForecastDimensions(const Aws::Vector& value) { m_forecastDimensionsHasBeenSet = true; m_forecastDimensions = value; } /** *

An array of dimension (field) names that specify how to group the generated * forecast.

For example, suppose that you are generating a forecast for * item sales across all of your stores, and your dataset contains a * store_id field. If you want the sales forecast for each item by * store, you would specify store_id as the dimension.

All * forecast dimensions specified in the TARGET_TIME_SERIES dataset * don't need to be specified in the CreatePredictor request. All * forecast dimensions specified in the RELATED_TIME_SERIES dataset * must be specified in the CreatePredictor request.

*/ inline void SetForecastDimensions(Aws::Vector&& value) { m_forecastDimensionsHasBeenSet = true; m_forecastDimensions = std::move(value); } /** *

An array of dimension (field) names that specify how to group the generated * forecast.

For example, suppose that you are generating a forecast for * item sales across all of your stores, and your dataset contains a * store_id field. If you want the sales forecast for each item by * store, you would specify store_id as the dimension.

All * forecast dimensions specified in the TARGET_TIME_SERIES dataset * don't need to be specified in the CreatePredictor request. All * forecast dimensions specified in the RELATED_TIME_SERIES dataset * must be specified in the CreatePredictor request.

*/ inline FeaturizationConfig& WithForecastDimensions(const Aws::Vector& value) { SetForecastDimensions(value); return *this;} /** *

An array of dimension (field) names that specify how to group the generated * forecast.

For example, suppose that you are generating a forecast for * item sales across all of your stores, and your dataset contains a * store_id field. If you want the sales forecast for each item by * store, you would specify store_id as the dimension.

All * forecast dimensions specified in the TARGET_TIME_SERIES dataset * don't need to be specified in the CreatePredictor request. All * forecast dimensions specified in the RELATED_TIME_SERIES dataset * must be specified in the CreatePredictor request.

*/ inline FeaturizationConfig& WithForecastDimensions(Aws::Vector&& value) { SetForecastDimensions(std::move(value)); return *this;} /** *

An array of dimension (field) names that specify how to group the generated * forecast.

For example, suppose that you are generating a forecast for * item sales across all of your stores, and your dataset contains a * store_id field. If you want the sales forecast for each item by * store, you would specify store_id as the dimension.

All * forecast dimensions specified in the TARGET_TIME_SERIES dataset * don't need to be specified in the CreatePredictor request. All * forecast dimensions specified in the RELATED_TIME_SERIES dataset * must be specified in the CreatePredictor request.

*/ inline FeaturizationConfig& AddForecastDimensions(const Aws::String& value) { m_forecastDimensionsHasBeenSet = true; m_forecastDimensions.push_back(value); return *this; } /** *

An array of dimension (field) names that specify how to group the generated * forecast.

For example, suppose that you are generating a forecast for * item sales across all of your stores, and your dataset contains a * store_id field. If you want the sales forecast for each item by * store, you would specify store_id as the dimension.

All * forecast dimensions specified in the TARGET_TIME_SERIES dataset * don't need to be specified in the CreatePredictor request. All * forecast dimensions specified in the RELATED_TIME_SERIES dataset * must be specified in the CreatePredictor request.

*/ inline FeaturizationConfig& AddForecastDimensions(Aws::String&& value) { m_forecastDimensionsHasBeenSet = true; m_forecastDimensions.push_back(std::move(value)); return *this; } /** *

An array of dimension (field) names that specify how to group the generated * forecast.

For example, suppose that you are generating a forecast for * item sales across all of your stores, and your dataset contains a * store_id field. If you want the sales forecast for each item by * store, you would specify store_id as the dimension.

All * forecast dimensions specified in the TARGET_TIME_SERIES dataset * don't need to be specified in the CreatePredictor request. All * forecast dimensions specified in the RELATED_TIME_SERIES dataset * must be specified in the CreatePredictor request.

*/ inline FeaturizationConfig& AddForecastDimensions(const char* value) { m_forecastDimensionsHasBeenSet = true; m_forecastDimensions.push_back(value); return *this; } /** *

An array of featurization (transformation) information for the fields of a * dataset.

*/ inline const Aws::Vector& GetFeaturizations() const{ return m_featurizations; } /** *

An array of featurization (transformation) information for the fields of a * dataset.

*/ inline bool FeaturizationsHasBeenSet() const { return m_featurizationsHasBeenSet; } /** *

An array of featurization (transformation) information for the fields of a * dataset.

*/ inline void SetFeaturizations(const Aws::Vector& value) { m_featurizationsHasBeenSet = true; m_featurizations = value; } /** *

An array of featurization (transformation) information for the fields of a * dataset.

*/ inline void SetFeaturizations(Aws::Vector&& value) { m_featurizationsHasBeenSet = true; m_featurizations = std::move(value); } /** *

An array of featurization (transformation) information for the fields of a * dataset.

*/ inline FeaturizationConfig& WithFeaturizations(const Aws::Vector& value) { SetFeaturizations(value); return *this;} /** *

An array of featurization (transformation) information for the fields of a * dataset.

*/ inline FeaturizationConfig& WithFeaturizations(Aws::Vector&& value) { SetFeaturizations(std::move(value)); return *this;} /** *

An array of featurization (transformation) information for the fields of a * dataset.

*/ inline FeaturizationConfig& AddFeaturizations(const Featurization& value) { m_featurizationsHasBeenSet = true; m_featurizations.push_back(value); return *this; } /** *

An array of featurization (transformation) information for the fields of a * dataset.

*/ inline FeaturizationConfig& AddFeaturizations(Featurization&& value) { m_featurizationsHasBeenSet = true; m_featurizations.push_back(std::move(value)); return *this; } private: Aws::String m_forecastFrequency; bool m_forecastFrequencyHasBeenSet = false; Aws::Vector m_forecastDimensions; bool m_forecastDimensionsHasBeenSet = false; Aws::Vector m_featurizations; bool m_featurizationsHasBeenSet = false; }; } // namespace Model } // namespace ForecastService } // namespace Aws