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

The time boundary Forecast uses to align and aggregate your data to match * your forecast frequency. Provide the unit of time and the time boundary as a key * value pair. If you don't provide a time boundary, Forecast uses a set of Default * Time Boundaries.

For more information about aggregation, see Data * Aggregation for Different Forecast Frequencies. For more information setting * a custom time boundary, see Specifying * a Time Boundary.

See Also:

AWS * API Reference

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

The month to use for time alignment during aggregation. The month must be in * uppercase.

*/ inline const Month& GetMonth() const{ return m_month; } /** *

The month to use for time alignment during aggregation. The month must be in * uppercase.

*/ inline bool MonthHasBeenSet() const { return m_monthHasBeenSet; } /** *

The month to use for time alignment during aggregation. The month must be in * uppercase.

*/ inline void SetMonth(const Month& value) { m_monthHasBeenSet = true; m_month = value; } /** *

The month to use for time alignment during aggregation. The month must be in * uppercase.

*/ inline void SetMonth(Month&& value) { m_monthHasBeenSet = true; m_month = std::move(value); } /** *

The month to use for time alignment during aggregation. The month must be in * uppercase.

*/ inline TimeAlignmentBoundary& WithMonth(const Month& value) { SetMonth(value); return *this;} /** *

The month to use for time alignment during aggregation. The month must be in * uppercase.

*/ inline TimeAlignmentBoundary& WithMonth(Month&& value) { SetMonth(std::move(value)); return *this;} /** *

The day of the month to use for time alignment during aggregation.

*/ inline int GetDayOfMonth() const{ return m_dayOfMonth; } /** *

The day of the month to use for time alignment during aggregation.

*/ inline bool DayOfMonthHasBeenSet() const { return m_dayOfMonthHasBeenSet; } /** *

The day of the month to use for time alignment during aggregation.

*/ inline void SetDayOfMonth(int value) { m_dayOfMonthHasBeenSet = true; m_dayOfMonth = value; } /** *

The day of the month to use for time alignment during aggregation.

*/ inline TimeAlignmentBoundary& WithDayOfMonth(int value) { SetDayOfMonth(value); return *this;} /** *

The day of week to use for time alignment during aggregation. The day must be * in uppercase.

*/ inline const DayOfWeek& GetDayOfWeek() const{ return m_dayOfWeek; } /** *

The day of week to use for time alignment during aggregation. The day must be * in uppercase.

*/ inline bool DayOfWeekHasBeenSet() const { return m_dayOfWeekHasBeenSet; } /** *

The day of week to use for time alignment during aggregation. The day must be * in uppercase.

*/ inline void SetDayOfWeek(const DayOfWeek& value) { m_dayOfWeekHasBeenSet = true; m_dayOfWeek = value; } /** *

The day of week to use for time alignment during aggregation. The day must be * in uppercase.

*/ inline void SetDayOfWeek(DayOfWeek&& value) { m_dayOfWeekHasBeenSet = true; m_dayOfWeek = std::move(value); } /** *

The day of week to use for time alignment during aggregation. The day must be * in uppercase.

*/ inline TimeAlignmentBoundary& WithDayOfWeek(const DayOfWeek& value) { SetDayOfWeek(value); return *this;} /** *

The day of week to use for time alignment during aggregation. The day must be * in uppercase.

*/ inline TimeAlignmentBoundary& WithDayOfWeek(DayOfWeek&& value) { SetDayOfWeek(std::move(value)); return *this;} /** *

The hour of day to use for time alignment during aggregation.

*/ inline int GetHour() const{ return m_hour; } /** *

The hour of day to use for time alignment during aggregation.

*/ inline bool HourHasBeenSet() const { return m_hourHasBeenSet; } /** *

The hour of day to use for time alignment during aggregation.

*/ inline void SetHour(int value) { m_hourHasBeenSet = true; m_hour = value; } /** *

The hour of day to use for time alignment during aggregation.

*/ inline TimeAlignmentBoundary& WithHour(int value) { SetHour(value); return *this;} private: Month m_month; bool m_monthHasBeenSet = false; int m_dayOfMonth; bool m_dayOfMonthHasBeenSet = false; DayOfWeek m_dayOfWeek; bool m_dayOfWeekHasBeenSet = false; int m_hour; bool m_hourHasBeenSet = false; }; } // namespace Model } // namespace ForecastService } // namespace Aws