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

Contains a tumbling window, which is a repeating fixed-sized, * non-overlapping, and contiguous time window. You can use this window in metrics * to aggregate data from properties and other assets.

You can use * m, h, d, and w when you * specify an interval or offset. Note that m represents minutes, * h represents hours, d represents days, and * w represents weeks. You can also use s to represent * seconds in offset.

The interval and * offset parameters support the ISO 8601 format. For example, * PT5S represents 5 seconds, PT5M represents 5 minutes, * and PT5H represents 5 hours.

See Also:

AWS * API Reference

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

The time interval for the tumbling window. The interval time must be between * 1 minute and 1 week.

IoT SiteWise computes the 1w interval * the end of Sunday at midnight each week (UTC), the 1d interval at * the end of each day at midnight (UTC), the 1h interval at the end * of each hour, and so on.

When IoT SiteWise aggregates data points for * metric computations, the start of each interval is exclusive and the end of each * interval is inclusive. IoT SiteWise places the computed data point at the end of * the interval.

*/ inline const Aws::String& GetInterval() const{ return m_interval; } /** *

The time interval for the tumbling window. The interval time must be between * 1 minute and 1 week.

IoT SiteWise computes the 1w interval * the end of Sunday at midnight each week (UTC), the 1d interval at * the end of each day at midnight (UTC), the 1h interval at the end * of each hour, and so on.

When IoT SiteWise aggregates data points for * metric computations, the start of each interval is exclusive and the end of each * interval is inclusive. IoT SiteWise places the computed data point at the end of * the interval.

*/ inline bool IntervalHasBeenSet() const { return m_intervalHasBeenSet; } /** *

The time interval for the tumbling window. The interval time must be between * 1 minute and 1 week.

IoT SiteWise computes the 1w interval * the end of Sunday at midnight each week (UTC), the 1d interval at * the end of each day at midnight (UTC), the 1h interval at the end * of each hour, and so on.

When IoT SiteWise aggregates data points for * metric computations, the start of each interval is exclusive and the end of each * interval is inclusive. IoT SiteWise places the computed data point at the end of * the interval.

*/ inline void SetInterval(const Aws::String& value) { m_intervalHasBeenSet = true; m_interval = value; } /** *

The time interval for the tumbling window. The interval time must be between * 1 minute and 1 week.

IoT SiteWise computes the 1w interval * the end of Sunday at midnight each week (UTC), the 1d interval at * the end of each day at midnight (UTC), the 1h interval at the end * of each hour, and so on.

When IoT SiteWise aggregates data points for * metric computations, the start of each interval is exclusive and the end of each * interval is inclusive. IoT SiteWise places the computed data point at the end of * the interval.

*/ inline void SetInterval(Aws::String&& value) { m_intervalHasBeenSet = true; m_interval = std::move(value); } /** *

The time interval for the tumbling window. The interval time must be between * 1 minute and 1 week.

IoT SiteWise computes the 1w interval * the end of Sunday at midnight each week (UTC), the 1d interval at * the end of each day at midnight (UTC), the 1h interval at the end * of each hour, and so on.

When IoT SiteWise aggregates data points for * metric computations, the start of each interval is exclusive and the end of each * interval is inclusive. IoT SiteWise places the computed data point at the end of * the interval.

*/ inline void SetInterval(const char* value) { m_intervalHasBeenSet = true; m_interval.assign(value); } /** *

The time interval for the tumbling window. The interval time must be between * 1 minute and 1 week.

IoT SiteWise computes the 1w interval * the end of Sunday at midnight each week (UTC), the 1d interval at * the end of each day at midnight (UTC), the 1h interval at the end * of each hour, and so on.

When IoT SiteWise aggregates data points for * metric computations, the start of each interval is exclusive and the end of each * interval is inclusive. IoT SiteWise places the computed data point at the end of * the interval.

*/ inline TumblingWindow& WithInterval(const Aws::String& value) { SetInterval(value); return *this;} /** *

The time interval for the tumbling window. The interval time must be between * 1 minute and 1 week.

IoT SiteWise computes the 1w interval * the end of Sunday at midnight each week (UTC), the 1d interval at * the end of each day at midnight (UTC), the 1h interval at the end * of each hour, and so on.

When IoT SiteWise aggregates data points for * metric computations, the start of each interval is exclusive and the end of each * interval is inclusive. IoT SiteWise places the computed data point at the end of * the interval.

*/ inline TumblingWindow& WithInterval(Aws::String&& value) { SetInterval(std::move(value)); return *this;} /** *

The time interval for the tumbling window. The interval time must be between * 1 minute and 1 week.

IoT SiteWise computes the 1w interval * the end of Sunday at midnight each week (UTC), the 1d interval at * the end of each day at midnight (UTC), the 1h interval at the end * of each hour, and so on.

When IoT SiteWise aggregates data points for * metric computations, the start of each interval is exclusive and the end of each * interval is inclusive. IoT SiteWise places the computed data point at the end of * the interval.

*/ inline TumblingWindow& WithInterval(const char* value) { SetInterval(value); return *this;} /** *

The offset for the tumbling window. The offset parameter accepts * the following:

  • The offset time.

    For example, if you * specify 18h for offset and 1d for * interval, IoT SiteWise aggregates data in one of the following * ways:

    • If you create the metric before or at 6 PM (UTC), you get * the first aggregation result at 6 PM (UTC) on the day when you create the * metric.

    • If you create the metric after 6 PM (UTC), you get the * first aggregation result at 6 PM (UTC) the next day.

  • *

    The ISO 8601 format.

    For example, if you specify PT18H * for offset and 1d for interval, IoT * SiteWise aggregates data in one of the following ways:

    • If you * create the metric before or at 6 PM (UTC), you get the first aggregation result * at 6 PM (UTC) on the day when you create the metric.

    • If you * create the metric after 6 PM (UTC), you get the first aggregation result at 6 PM * (UTC) the next day.

  • The 24-hour clock.

    For * example, if you specify 00:03:00 for offset, * 5m for interval, and you create the metric at 2 PM * (UTC), you get the first aggregation result at 2:03 PM (UTC). You get the second * aggregation result at 2:08 PM (UTC).

  • The offset time * zone.

    For example, if you specify 2021-07-23T18:00-08 for * offset and 1d for interval, IoT SiteWise * aggregates data in one of the following ways:

    • If you create the * metric before or at 6 PM (PST), you get the first aggregation result at 6 PM * (PST) on the day when you create the metric.

    • If you create the * metric after 6 PM (PST), you get the first aggregation result at 6 PM (PST) the * next day.

*/ inline const Aws::String& GetOffset() const{ return m_offset; } /** *

The offset for the tumbling window. The offset parameter accepts * the following:

  • The offset time.

    For example, if you * specify 18h for offset and 1d for * interval, IoT SiteWise aggregates data in one of the following * ways:

    • If you create the metric before or at 6 PM (UTC), you get * the first aggregation result at 6 PM (UTC) on the day when you create the * metric.

    • If you create the metric after 6 PM (UTC), you get the * first aggregation result at 6 PM (UTC) the next day.

  • *

    The ISO 8601 format.

    For example, if you specify PT18H * for offset and 1d for interval, IoT * SiteWise aggregates data in one of the following ways:

    • If you * create the metric before or at 6 PM (UTC), you get the first aggregation result * at 6 PM (UTC) on the day when you create the metric.

    • If you * create the metric after 6 PM (UTC), you get the first aggregation result at 6 PM * (UTC) the next day.

  • The 24-hour clock.

    For * example, if you specify 00:03:00 for offset, * 5m for interval, and you create the metric at 2 PM * (UTC), you get the first aggregation result at 2:03 PM (UTC). You get the second * aggregation result at 2:08 PM (UTC).

  • The offset time * zone.

    For example, if you specify 2021-07-23T18:00-08 for * offset and 1d for interval, IoT SiteWise * aggregates data in one of the following ways:

    • If you create the * metric before or at 6 PM (PST), you get the first aggregation result at 6 PM * (PST) on the day when you create the metric.

    • If you create the * metric after 6 PM (PST), you get the first aggregation result at 6 PM (PST) the * next day.

*/ inline bool OffsetHasBeenSet() const { return m_offsetHasBeenSet; } /** *

The offset for the tumbling window. The offset parameter accepts * the following:

  • The offset time.

    For example, if you * specify 18h for offset and 1d for * interval, IoT SiteWise aggregates data in one of the following * ways:

    • If you create the metric before or at 6 PM (UTC), you get * the first aggregation result at 6 PM (UTC) on the day when you create the * metric.

    • If you create the metric after 6 PM (UTC), you get the * first aggregation result at 6 PM (UTC) the next day.

  • *

    The ISO 8601 format.

    For example, if you specify PT18H * for offset and 1d for interval, IoT * SiteWise aggregates data in one of the following ways:

    • If you * create the metric before or at 6 PM (UTC), you get the first aggregation result * at 6 PM (UTC) on the day when you create the metric.

    • If you * create the metric after 6 PM (UTC), you get the first aggregation result at 6 PM * (UTC) the next day.

  • The 24-hour clock.

    For * example, if you specify 00:03:00 for offset, * 5m for interval, and you create the metric at 2 PM * (UTC), you get the first aggregation result at 2:03 PM (UTC). You get the second * aggregation result at 2:08 PM (UTC).

  • The offset time * zone.

    For example, if you specify 2021-07-23T18:00-08 for * offset and 1d for interval, IoT SiteWise * aggregates data in one of the following ways:

    • If you create the * metric before or at 6 PM (PST), you get the first aggregation result at 6 PM * (PST) on the day when you create the metric.

    • If you create the * metric after 6 PM (PST), you get the first aggregation result at 6 PM (PST) the * next day.

*/ inline void SetOffset(const Aws::String& value) { m_offsetHasBeenSet = true; m_offset = value; } /** *

The offset for the tumbling window. The offset parameter accepts * the following:

  • The offset time.

    For example, if you * specify 18h for offset and 1d for * interval, IoT SiteWise aggregates data in one of the following * ways:

    • If you create the metric before or at 6 PM (UTC), you get * the first aggregation result at 6 PM (UTC) on the day when you create the * metric.

    • If you create the metric after 6 PM (UTC), you get the * first aggregation result at 6 PM (UTC) the next day.

  • *

    The ISO 8601 format.

    For example, if you specify PT18H * for offset and 1d for interval, IoT * SiteWise aggregates data in one of the following ways:

    • If you * create the metric before or at 6 PM (UTC), you get the first aggregation result * at 6 PM (UTC) on the day when you create the metric.

    • If you * create the metric after 6 PM (UTC), you get the first aggregation result at 6 PM * (UTC) the next day.

  • The 24-hour clock.

    For * example, if you specify 00:03:00 for offset, * 5m for interval, and you create the metric at 2 PM * (UTC), you get the first aggregation result at 2:03 PM (UTC). You get the second * aggregation result at 2:08 PM (UTC).

  • The offset time * zone.

    For example, if you specify 2021-07-23T18:00-08 for * offset and 1d for interval, IoT SiteWise * aggregates data in one of the following ways:

    • If you create the * metric before or at 6 PM (PST), you get the first aggregation result at 6 PM * (PST) on the day when you create the metric.

    • If you create the * metric after 6 PM (PST), you get the first aggregation result at 6 PM (PST) the * next day.

*/ inline void SetOffset(Aws::String&& value) { m_offsetHasBeenSet = true; m_offset = std::move(value); } /** *

The offset for the tumbling window. The offset parameter accepts * the following:

  • The offset time.

    For example, if you * specify 18h for offset and 1d for * interval, IoT SiteWise aggregates data in one of the following * ways:

    • If you create the metric before or at 6 PM (UTC), you get * the first aggregation result at 6 PM (UTC) on the day when you create the * metric.

    • If you create the metric after 6 PM (UTC), you get the * first aggregation result at 6 PM (UTC) the next day.

  • *

    The ISO 8601 format.

    For example, if you specify PT18H * for offset and 1d for interval, IoT * SiteWise aggregates data in one of the following ways:

    • If you * create the metric before or at 6 PM (UTC), you get the first aggregation result * at 6 PM (UTC) on the day when you create the metric.

    • If you * create the metric after 6 PM (UTC), you get the first aggregation result at 6 PM * (UTC) the next day.

  • The 24-hour clock.

    For * example, if you specify 00:03:00 for offset, * 5m for interval, and you create the metric at 2 PM * (UTC), you get the first aggregation result at 2:03 PM (UTC). You get the second * aggregation result at 2:08 PM (UTC).

  • The offset time * zone.

    For example, if you specify 2021-07-23T18:00-08 for * offset and 1d for interval, IoT SiteWise * aggregates data in one of the following ways:

    • If you create the * metric before or at 6 PM (PST), you get the first aggregation result at 6 PM * (PST) on the day when you create the metric.

    • If you create the * metric after 6 PM (PST), you get the first aggregation result at 6 PM (PST) the * next day.

*/ inline void SetOffset(const char* value) { m_offsetHasBeenSet = true; m_offset.assign(value); } /** *

The offset for the tumbling window. The offset parameter accepts * the following:

  • The offset time.

    For example, if you * specify 18h for offset and 1d for * interval, IoT SiteWise aggregates data in one of the following * ways:

    • If you create the metric before or at 6 PM (UTC), you get * the first aggregation result at 6 PM (UTC) on the day when you create the * metric.

    • If you create the metric after 6 PM (UTC), you get the * first aggregation result at 6 PM (UTC) the next day.

  • *

    The ISO 8601 format.

    For example, if you specify PT18H * for offset and 1d for interval, IoT * SiteWise aggregates data in one of the following ways:

    • If you * create the metric before or at 6 PM (UTC), you get the first aggregation result * at 6 PM (UTC) on the day when you create the metric.

    • If you * create the metric after 6 PM (UTC), you get the first aggregation result at 6 PM * (UTC) the next day.

  • The 24-hour clock.

    For * example, if you specify 00:03:00 for offset, * 5m for interval, and you create the metric at 2 PM * (UTC), you get the first aggregation result at 2:03 PM (UTC). You get the second * aggregation result at 2:08 PM (UTC).

  • The offset time * zone.

    For example, if you specify 2021-07-23T18:00-08 for * offset and 1d for interval, IoT SiteWise * aggregates data in one of the following ways:

    • If you create the * metric before or at 6 PM (PST), you get the first aggregation result at 6 PM * (PST) on the day when you create the metric.

    • If you create the * metric after 6 PM (PST), you get the first aggregation result at 6 PM (PST) the * next day.

*/ inline TumblingWindow& WithOffset(const Aws::String& value) { SetOffset(value); return *this;} /** *

The offset for the tumbling window. The offset parameter accepts * the following:

  • The offset time.

    For example, if you * specify 18h for offset and 1d for * interval, IoT SiteWise aggregates data in one of the following * ways:

    • If you create the metric before or at 6 PM (UTC), you get * the first aggregation result at 6 PM (UTC) on the day when you create the * metric.

    • If you create the metric after 6 PM (UTC), you get the * first aggregation result at 6 PM (UTC) the next day.

  • *

    The ISO 8601 format.

    For example, if you specify PT18H * for offset and 1d for interval, IoT * SiteWise aggregates data in one of the following ways:

    • If you * create the metric before or at 6 PM (UTC), you get the first aggregation result * at 6 PM (UTC) on the day when you create the metric.

    • If you * create the metric after 6 PM (UTC), you get the first aggregation result at 6 PM * (UTC) the next day.

  • The 24-hour clock.

    For * example, if you specify 00:03:00 for offset, * 5m for interval, and you create the metric at 2 PM * (UTC), you get the first aggregation result at 2:03 PM (UTC). You get the second * aggregation result at 2:08 PM (UTC).

  • The offset time * zone.

    For example, if you specify 2021-07-23T18:00-08 for * offset and 1d for interval, IoT SiteWise * aggregates data in one of the following ways:

    • If you create the * metric before or at 6 PM (PST), you get the first aggregation result at 6 PM * (PST) on the day when you create the metric.

    • If you create the * metric after 6 PM (PST), you get the first aggregation result at 6 PM (PST) the * next day.

*/ inline TumblingWindow& WithOffset(Aws::String&& value) { SetOffset(std::move(value)); return *this;} /** *

The offset for the tumbling window. The offset parameter accepts * the following:

  • The offset time.

    For example, if you * specify 18h for offset and 1d for * interval, IoT SiteWise aggregates data in one of the following * ways:

    • If you create the metric before or at 6 PM (UTC), you get * the first aggregation result at 6 PM (UTC) on the day when you create the * metric.

    • If you create the metric after 6 PM (UTC), you get the * first aggregation result at 6 PM (UTC) the next day.

  • *

    The ISO 8601 format.

    For example, if you specify PT18H * for offset and 1d for interval, IoT * SiteWise aggregates data in one of the following ways:

    • If you * create the metric before or at 6 PM (UTC), you get the first aggregation result * at 6 PM (UTC) on the day when you create the metric.

    • If you * create the metric after 6 PM (UTC), you get the first aggregation result at 6 PM * (UTC) the next day.

  • The 24-hour clock.

    For * example, if you specify 00:03:00 for offset, * 5m for interval, and you create the metric at 2 PM * (UTC), you get the first aggregation result at 2:03 PM (UTC). You get the second * aggregation result at 2:08 PM (UTC).

  • The offset time * zone.

    For example, if you specify 2021-07-23T18:00-08 for * offset and 1d for interval, IoT SiteWise * aggregates data in one of the following ways:

    • If you create the * metric before or at 6 PM (PST), you get the first aggregation result at 6 PM * (PST) on the day when you create the metric.

    • If you create the * metric after 6 PM (PST), you get the first aggregation result at 6 PM (PST) the * next day.

*/ inline TumblingWindow& WithOffset(const char* value) { SetOffset(value); return *this;} private: Aws::String m_interval; bool m_intervalHasBeenSet = false; Aws::String m_offset; bool m_offsetHasBeenSet = false; }; } // namespace Model } // namespace IoTSiteWise } // namespace Aws