/** * 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 CodeGuruProfiler { namespace Model { /** *

Specifies the aggregation period and aggregation start time for an * aggregated profile. An aggregated profile is used to collect posted agent * profiles during an aggregation period. There are three possible aggregation * periods (1 day, 1 hour, or 5 minutes).

See Also:

AWS * API Reference

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

The aggregation period. This indicates the period during which an * aggregation profile collects posted agent profiles for a profiling group. Use * one of three valid durations that are specified using the ISO 8601 format.

*
  • P1D — 1 day

  • PT1H — 1 * hour

  • PT5M — 5 minutes

*/ inline const AggregationPeriod& GetPeriod() const{ return m_period; } /** *

The aggregation period. This indicates the period during which an * aggregation profile collects posted agent profiles for a profiling group. Use * one of three valid durations that are specified using the ISO 8601 format.

*
  • P1D — 1 day

  • PT1H — 1 * hour

  • PT5M — 5 minutes

*/ inline bool PeriodHasBeenSet() const { return m_periodHasBeenSet; } /** *

The aggregation period. This indicates the period during which an * aggregation profile collects posted agent profiles for a profiling group. Use * one of three valid durations that are specified using the ISO 8601 format.

*
  • P1D — 1 day

  • PT1H — 1 * hour

  • PT5M — 5 minutes

*/ inline void SetPeriod(const AggregationPeriod& value) { m_periodHasBeenSet = true; m_period = value; } /** *

The aggregation period. This indicates the period during which an * aggregation profile collects posted agent profiles for a profiling group. Use * one of three valid durations that are specified using the ISO 8601 format.

*
  • P1D — 1 day

  • PT1H — 1 * hour

  • PT5M — 5 minutes

*/ inline void SetPeriod(AggregationPeriod&& value) { m_periodHasBeenSet = true; m_period = std::move(value); } /** *

The aggregation period. This indicates the period during which an * aggregation profile collects posted agent profiles for a profiling group. Use * one of three valid durations that are specified using the ISO 8601 format.

*
  • P1D — 1 day

  • PT1H — 1 * hour

  • PT5M — 5 minutes

*/ inline AggregatedProfileTime& WithPeriod(const AggregationPeriod& value) { SetPeriod(value); return *this;} /** *

The aggregation period. This indicates the period during which an * aggregation profile collects posted agent profiles for a profiling group. Use * one of three valid durations that are specified using the ISO 8601 format.

*
  • P1D — 1 day

  • PT1H — 1 * hour

  • PT5M — 5 minutes

*/ inline AggregatedProfileTime& WithPeriod(AggregationPeriod&& value) { SetPeriod(std::move(value)); return *this;} /** *

The time that aggregation of posted agent profiles for a profiling group * starts. The aggregation profile contains profiles posted by the agent starting * at this time for an aggregation period specified by the period * property of the AggregatedProfileTime object.

Specify * start using the ISO 8601 format. For example, * 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM * UTC.

*/ inline const Aws::Utils::DateTime& GetStart() const{ return m_start; } /** *

The time that aggregation of posted agent profiles for a profiling group * starts. The aggregation profile contains profiles posted by the agent starting * at this time for an aggregation period specified by the period * property of the AggregatedProfileTime object.

Specify * start using the ISO 8601 format. For example, * 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM * UTC.

*/ inline bool StartHasBeenSet() const { return m_startHasBeenSet; } /** *

The time that aggregation of posted agent profiles for a profiling group * starts. The aggregation profile contains profiles posted by the agent starting * at this time for an aggregation period specified by the period * property of the AggregatedProfileTime object.

Specify * start using the ISO 8601 format. For example, * 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM * UTC.

*/ inline void SetStart(const Aws::Utils::DateTime& value) { m_startHasBeenSet = true; m_start = value; } /** *

The time that aggregation of posted agent profiles for a profiling group * starts. The aggregation profile contains profiles posted by the agent starting * at this time for an aggregation period specified by the period * property of the AggregatedProfileTime object.

Specify * start using the ISO 8601 format. For example, * 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM * UTC.

*/ inline void SetStart(Aws::Utils::DateTime&& value) { m_startHasBeenSet = true; m_start = std::move(value); } /** *

The time that aggregation of posted agent profiles for a profiling group * starts. The aggregation profile contains profiles posted by the agent starting * at this time for an aggregation period specified by the period * property of the AggregatedProfileTime object.

Specify * start using the ISO 8601 format. For example, * 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM * UTC.

*/ inline AggregatedProfileTime& WithStart(const Aws::Utils::DateTime& value) { SetStart(value); return *this;} /** *

The time that aggregation of posted agent profiles for a profiling group * starts. The aggregation profile contains profiles posted by the agent starting * at this time for an aggregation period specified by the period * property of the AggregatedProfileTime object.

Specify * start using the ISO 8601 format. For example, * 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM * UTC.

*/ inline AggregatedProfileTime& WithStart(Aws::Utils::DateTime&& value) { SetStart(std::move(value)); return *this;} private: AggregationPeriod m_period; bool m_periodHasBeenSet = false; Aws::Utils::DateTime m_start; bool m_startHasBeenSet = false; }; } // namespace Model } // namespace CodeGuruProfiler } // namespace Aws