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

A potential improvement that was found from analyzing the profiling * data.

See Also:

AWS * API Reference

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

How many different places in the profile graph triggered a match.

*/ inline int GetAllMatchesCount() const{ return m_allMatchesCount; } /** *

How many different places in the profile graph triggered a match.

*/ inline bool AllMatchesCountHasBeenSet() const { return m_allMatchesCountHasBeenSet; } /** *

How many different places in the profile graph triggered a match.

*/ inline void SetAllMatchesCount(int value) { m_allMatchesCountHasBeenSet = true; m_allMatchesCount = value; } /** *

How many different places in the profile graph triggered a match.

*/ inline Recommendation& WithAllMatchesCount(int value) { SetAllMatchesCount(value); return *this;} /** *

How much of the total sample count is potentially affected.

*/ inline double GetAllMatchesSum() const{ return m_allMatchesSum; } /** *

How much of the total sample count is potentially affected.

*/ inline bool AllMatchesSumHasBeenSet() const { return m_allMatchesSumHasBeenSet; } /** *

How much of the total sample count is potentially affected.

*/ inline void SetAllMatchesSum(double value) { m_allMatchesSumHasBeenSet = true; m_allMatchesSum = value; } /** *

How much of the total sample count is potentially affected.

*/ inline Recommendation& WithAllMatchesSum(double value) { SetAllMatchesSum(value); return *this;} /** *

End time of the profile that was used by this analysis. 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; } /** *

End time of the profile that was used by this analysis. 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; } /** *

End time of the profile that was used by this analysis. 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; } /** *

End time of the profile that was used by this analysis. 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); } /** *

End time of the profile that was used by this analysis. 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 Recommendation& WithEndTime(const Aws::Utils::DateTime& value) { SetEndTime(value); return *this;} /** *

End time of the profile that was used by this analysis. 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 Recommendation& WithEndTime(Aws::Utils::DateTime&& value) { SetEndTime(std::move(value)); return *this;} /** *

The pattern that analysis recognized in the profile to make this * recommendation.

*/ inline const Pattern& GetPattern() const{ return m_pattern; } /** *

The pattern that analysis recognized in the profile to make this * recommendation.

*/ inline bool PatternHasBeenSet() const { return m_patternHasBeenSet; } /** *

The pattern that analysis recognized in the profile to make this * recommendation.

*/ inline void SetPattern(const Pattern& value) { m_patternHasBeenSet = true; m_pattern = value; } /** *

The pattern that analysis recognized in the profile to make this * recommendation.

*/ inline void SetPattern(Pattern&& value) { m_patternHasBeenSet = true; m_pattern = std::move(value); } /** *

The pattern that analysis recognized in the profile to make this * recommendation.

*/ inline Recommendation& WithPattern(const Pattern& value) { SetPattern(value); return *this;} /** *

The pattern that analysis recognized in the profile to make this * recommendation.

*/ inline Recommendation& WithPattern(Pattern&& value) { SetPattern(std::move(value)); return *this;} /** *

The start time of the profile that was used by this analysis. 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 profile that was used by this analysis. 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 profile that was used by this analysis. 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 profile that was used by this analysis. 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 profile that was used by this analysis. 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 Recommendation& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;} /** *

The start time of the profile that was used by this analysis. 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 Recommendation& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;} /** *

List of the matches with most impact.

*/ inline const Aws::Vector& GetTopMatches() const{ return m_topMatches; } /** *

List of the matches with most impact.

*/ inline bool TopMatchesHasBeenSet() const { return m_topMatchesHasBeenSet; } /** *

List of the matches with most impact.

*/ inline void SetTopMatches(const Aws::Vector& value) { m_topMatchesHasBeenSet = true; m_topMatches = value; } /** *

List of the matches with most impact.

*/ inline void SetTopMatches(Aws::Vector&& value) { m_topMatchesHasBeenSet = true; m_topMatches = std::move(value); } /** *

List of the matches with most impact.

*/ inline Recommendation& WithTopMatches(const Aws::Vector& value) { SetTopMatches(value); return *this;} /** *

List of the matches with most impact.

*/ inline Recommendation& WithTopMatches(Aws::Vector&& value) { SetTopMatches(std::move(value)); return *this;} /** *

List of the matches with most impact.

*/ inline Recommendation& AddTopMatches(const Match& value) { m_topMatchesHasBeenSet = true; m_topMatches.push_back(value); return *this; } /** *

List of the matches with most impact.

*/ inline Recommendation& AddTopMatches(Match&& value) { m_topMatchesHasBeenSet = true; m_topMatches.push_back(std::move(value)); return *this; } private: int m_allMatchesCount; bool m_allMatchesCountHasBeenSet = false; double m_allMatchesSum; bool m_allMatchesSumHasBeenSet = false; Aws::Utils::DateTime m_endTime; bool m_endTimeHasBeenSet = false; Pattern m_pattern; bool m_patternHasBeenSet = false; Aws::Utils::DateTime m_startTime; bool m_startTimeHasBeenSet = false; Aws::Vector m_topMatches; bool m_topMatchesHasBeenSet = false; }; } // namespace Model } // namespace CodeGuruProfiler } // namespace Aws