/** * 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 #include namespace Aws { namespace Http { class URI; } //namespace Http namespace CodeGuruProfiler { namespace Model { /** *

The structure representing the BatchGetFrameMetricDataRequest.

See * Also:

AWS * API Reference

*/ class BatchGetFrameMetricDataRequest : public CodeGuruProfilerRequest { public: AWS_CODEGURUPROFILER_API BatchGetFrameMetricDataRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "BatchGetFrameMetricData"; } AWS_CODEGURUPROFILER_API Aws::String SerializePayload() const override; AWS_CODEGURUPROFILER_API void AddQueryStringParameters(Aws::Http::URI& uri) const override; /** *

The end time of the time period for the returned time series values. This is * specified 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& GetEndTime() const{ return m_endTime; } /** *

The end time of the time period for the returned time series values. This is * specified 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 EndTimeHasBeenSet() const { return m_endTimeHasBeenSet; } /** *

The end time of the time period for the returned time series values. This is * specified 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 SetEndTime(const Aws::Utils::DateTime& value) { m_endTimeHasBeenSet = true; m_endTime = value; } /** *

The end time of the time period for the returned time series values. This is * specified 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 SetEndTime(Aws::Utils::DateTime&& value) { m_endTimeHasBeenSet = true; m_endTime = std::move(value); } /** *

The end time of the time period for the returned time series values. This is * specified 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 BatchGetFrameMetricDataRequest& WithEndTime(const Aws::Utils::DateTime& value) { SetEndTime(value); return *this;} /** *

The end time of the time period for the returned time series values. This is * specified 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 BatchGetFrameMetricDataRequest& WithEndTime(Aws::Utils::DateTime&& value) { SetEndTime(std::move(value)); return *this;} /** *

The details of the metrics that are used to request a time series of values. * The metric includes the name of the frame, the aggregation type to calculate the * metric value for the frame, and the thread states to use to get the count for * the metric value of the frame.

*/ inline const Aws::Vector& GetFrameMetrics() const{ return m_frameMetrics; } /** *

The details of the metrics that are used to request a time series of values. * The metric includes the name of the frame, the aggregation type to calculate the * metric value for the frame, and the thread states to use to get the count for * the metric value of the frame.

*/ inline bool FrameMetricsHasBeenSet() const { return m_frameMetricsHasBeenSet; } /** *

The details of the metrics that are used to request a time series of values. * The metric includes the name of the frame, the aggregation type to calculate the * metric value for the frame, and the thread states to use to get the count for * the metric value of the frame.

*/ inline void SetFrameMetrics(const Aws::Vector& value) { m_frameMetricsHasBeenSet = true; m_frameMetrics = value; } /** *

The details of the metrics that are used to request a time series of values. * The metric includes the name of the frame, the aggregation type to calculate the * metric value for the frame, and the thread states to use to get the count for * the metric value of the frame.

*/ inline void SetFrameMetrics(Aws::Vector&& value) { m_frameMetricsHasBeenSet = true; m_frameMetrics = std::move(value); } /** *

The details of the metrics that are used to request a time series of values. * The metric includes the name of the frame, the aggregation type to calculate the * metric value for the frame, and the thread states to use to get the count for * the metric value of the frame.

*/ inline BatchGetFrameMetricDataRequest& WithFrameMetrics(const Aws::Vector& value) { SetFrameMetrics(value); return *this;} /** *

The details of the metrics that are used to request a time series of values. * The metric includes the name of the frame, the aggregation type to calculate the * metric value for the frame, and the thread states to use to get the count for * the metric value of the frame.

*/ inline BatchGetFrameMetricDataRequest& WithFrameMetrics(Aws::Vector&& value) { SetFrameMetrics(std::move(value)); return *this;} /** *

The details of the metrics that are used to request a time series of values. * The metric includes the name of the frame, the aggregation type to calculate the * metric value for the frame, and the thread states to use to get the count for * the metric value of the frame.

*/ inline BatchGetFrameMetricDataRequest& AddFrameMetrics(const FrameMetric& value) { m_frameMetricsHasBeenSet = true; m_frameMetrics.push_back(value); return *this; } /** *

The details of the metrics that are used to request a time series of values. * The metric includes the name of the frame, the aggregation type to calculate the * metric value for the frame, and the thread states to use to get the count for * the metric value of the frame.

*/ inline BatchGetFrameMetricDataRequest& AddFrameMetrics(FrameMetric&& value) { m_frameMetricsHasBeenSet = true; m_frameMetrics.push_back(std::move(value)); return *this; } /** *

The duration of the frame metrics used to return the time series values. * Specify using the ISO 8601 format. The maximum period duration is one day * (PT24H or P1D).

*/ inline const Aws::String& GetPeriod() const{ return m_period; } /** *

The duration of the frame metrics used to return the time series values. * Specify using the ISO 8601 format. The maximum period duration is one day * (PT24H or P1D).

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

The duration of the frame metrics used to return the time series values. * Specify using the ISO 8601 format. The maximum period duration is one day * (PT24H or P1D).

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

The duration of the frame metrics used to return the time series values. * Specify using the ISO 8601 format. The maximum period duration is one day * (PT24H or P1D).

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

The duration of the frame metrics used to return the time series values. * Specify using the ISO 8601 format. The maximum period duration is one day * (PT24H or P1D).

*/ inline void SetPeriod(const char* value) { m_periodHasBeenSet = true; m_period.assign(value); } /** *

The duration of the frame metrics used to return the time series values. * Specify using the ISO 8601 format. The maximum period duration is one day * (PT24H or P1D).

*/ inline BatchGetFrameMetricDataRequest& WithPeriod(const Aws::String& value) { SetPeriod(value); return *this;} /** *

The duration of the frame metrics used to return the time series values. * Specify using the ISO 8601 format. The maximum period duration is one day * (PT24H or P1D).

*/ inline BatchGetFrameMetricDataRequest& WithPeriod(Aws::String&& value) { SetPeriod(std::move(value)); return *this;} /** *

The duration of the frame metrics used to return the time series values. * Specify using the ISO 8601 format. The maximum period duration is one day * (PT24H or P1D).

*/ inline BatchGetFrameMetricDataRequest& WithPeriod(const char* value) { SetPeriod(value); return *this;} /** *

The name of the profiling group associated with the the frame metrics used * to return the time series values.

*/ inline const Aws::String& GetProfilingGroupName() const{ return m_profilingGroupName; } /** *

The name of the profiling group associated with the the frame metrics used * to return the time series values.

*/ inline bool ProfilingGroupNameHasBeenSet() const { return m_profilingGroupNameHasBeenSet; } /** *

The name of the profiling group associated with the the frame metrics used * to return the time series values.

*/ inline void SetProfilingGroupName(const Aws::String& value) { m_profilingGroupNameHasBeenSet = true; m_profilingGroupName = value; } /** *

The name of the profiling group associated with the the frame metrics used * to return the time series values.

*/ inline void SetProfilingGroupName(Aws::String&& value) { m_profilingGroupNameHasBeenSet = true; m_profilingGroupName = std::move(value); } /** *

The name of the profiling group associated with the the frame metrics used * to return the time series values.

*/ inline void SetProfilingGroupName(const char* value) { m_profilingGroupNameHasBeenSet = true; m_profilingGroupName.assign(value); } /** *

The name of the profiling group associated with the the frame metrics used * to return the time series values.

*/ inline BatchGetFrameMetricDataRequest& WithProfilingGroupName(const Aws::String& value) { SetProfilingGroupName(value); return *this;} /** *

The name of the profiling group associated with the the frame metrics used * to return the time series values.

*/ inline BatchGetFrameMetricDataRequest& WithProfilingGroupName(Aws::String&& value) { SetProfilingGroupName(std::move(value)); return *this;} /** *

The name of the profiling group associated with the the frame metrics used * to return the time series values.

*/ inline BatchGetFrameMetricDataRequest& WithProfilingGroupName(const char* value) { SetProfilingGroupName(value); return *this;} /** *

The start time of the time period for the frame metrics used to return the * time series values. This is specified 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& GetStartTime() const{ return m_startTime; } /** *

The start time of the time period for the frame metrics used to return the * time series values. This is specified 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 StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; } /** *

The start time of the time period for the frame metrics used to return the * time series values. This is specified 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 SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; } /** *

The start time of the time period for the frame metrics used to return the * time series values. This is specified 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 SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); } /** *

The start time of the time period for the frame metrics used to return the * time series values. This is specified 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 BatchGetFrameMetricDataRequest& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;} /** *

The start time of the time period for the frame metrics used to return the * time series values. This is specified 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 BatchGetFrameMetricDataRequest& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;} /** *

The requested resolution of time steps for the returned time series of * values. If the requested target resolution is not available due to data not * being retained we provide a best effort result by falling back to the most * granular available resolution after the target resolution. There are 3 valid * values.

  • P1D — 1 day

  • * PT1H — 1 hour

  • PT5M — 5 minutes *

*/ inline const AggregationPeriod& GetTargetResolution() const{ return m_targetResolution; } /** *

The requested resolution of time steps for the returned time series of * values. If the requested target resolution is not available due to data not * being retained we provide a best effort result by falling back to the most * granular available resolution after the target resolution. There are 3 valid * values.

  • P1D — 1 day

  • * PT1H — 1 hour

  • PT5M — 5 minutes *

*/ inline bool TargetResolutionHasBeenSet() const { return m_targetResolutionHasBeenSet; } /** *

The requested resolution of time steps for the returned time series of * values. If the requested target resolution is not available due to data not * being retained we provide a best effort result by falling back to the most * granular available resolution after the target resolution. There are 3 valid * values.

  • P1D — 1 day

  • * PT1H — 1 hour

  • PT5M — 5 minutes *

*/ inline void SetTargetResolution(const AggregationPeriod& value) { m_targetResolutionHasBeenSet = true; m_targetResolution = value; } /** *

The requested resolution of time steps for the returned time series of * values. If the requested target resolution is not available due to data not * being retained we provide a best effort result by falling back to the most * granular available resolution after the target resolution. There are 3 valid * values.

  • P1D — 1 day

  • * PT1H — 1 hour

  • PT5M — 5 minutes *

*/ inline void SetTargetResolution(AggregationPeriod&& value) { m_targetResolutionHasBeenSet = true; m_targetResolution = std::move(value); } /** *

The requested resolution of time steps for the returned time series of * values. If the requested target resolution is not available due to data not * being retained we provide a best effort result by falling back to the most * granular available resolution after the target resolution. There are 3 valid * values.

  • P1D — 1 day

  • * PT1H — 1 hour

  • PT5M — 5 minutes *

*/ inline BatchGetFrameMetricDataRequest& WithTargetResolution(const AggregationPeriod& value) { SetTargetResolution(value); return *this;} /** *

The requested resolution of time steps for the returned time series of * values. If the requested target resolution is not available due to data not * being retained we provide a best effort result by falling back to the most * granular available resolution after the target resolution. There are 3 valid * values.

  • P1D — 1 day

  • * PT1H — 1 hour

  • PT5M — 5 minutes *

*/ inline BatchGetFrameMetricDataRequest& WithTargetResolution(AggregationPeriod&& value) { SetTargetResolution(std::move(value)); return *this;} private: Aws::Utils::DateTime m_endTime; bool m_endTimeHasBeenSet = false; Aws::Vector m_frameMetrics; bool m_frameMetricsHasBeenSet = false; Aws::String m_period; bool m_periodHasBeenSet = false; Aws::String m_profilingGroupName; bool m_profilingGroupNameHasBeenSet = false; Aws::Utils::DateTime m_startTime; bool m_startTimeHasBeenSet = false; AggregationPeriod m_targetResolution; bool m_targetResolutionHasBeenSet = false; }; } // namespace Model } // namespace CodeGuruProfiler } // namespace Aws