This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files

273 lines
9.8 KiB
C
Raw Normal View History

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/codeguruprofiler/CodeGuruProfiler_EXPORTS.h>
#include <aws/core/utils/DateTime.h>
#include <aws/codeguruprofiler/model/Pattern.h>
#include <aws/core/utils/memory/stl/AWSVector.h>
#include <aws/codeguruprofiler/model/Match.h>
#include <utility>
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace CodeGuruProfiler
{
namespace Model
{
/**
* <p>A potential improvement that was found from analyzing the profiling
* data.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/Recommendation">AWS
* API Reference</a></p>
*/
class AWS_CODEGURUPROFILER_API Recommendation
{
public:
Recommendation();
Recommendation(Aws::Utils::Json::JsonView jsonValue);
Recommendation& operator=(Aws::Utils::Json::JsonView jsonValue);
Aws::Utils::Json::JsonValue Jsonize() const;
/**
* <p>How many different places in the profile graph triggered a match.</p>
*/
inline int GetAllMatchesCount() const{ return m_allMatchesCount; }
/**
* <p>How many different places in the profile graph triggered a match.</p>
*/
inline bool AllMatchesCountHasBeenSet() const { return m_allMatchesCountHasBeenSet; }
/**
* <p>How many different places in the profile graph triggered a match.</p>
*/
inline void SetAllMatchesCount(int value) { m_allMatchesCountHasBeenSet = true; m_allMatchesCount = value; }
/**
* <p>How many different places in the profile graph triggered a match.</p>
*/
inline Recommendation& WithAllMatchesCount(int value) { SetAllMatchesCount(value); return *this;}
/**
* <p>How much of the total sample count is potentially affected.</p>
*/
inline double GetAllMatchesSum() const{ return m_allMatchesSum; }
/**
* <p>How much of the total sample count is potentially affected.</p>
*/
inline bool AllMatchesSumHasBeenSet() const { return m_allMatchesSumHasBeenSet; }
/**
* <p>How much of the total sample count is potentially affected.</p>
*/
inline void SetAllMatchesSum(double value) { m_allMatchesSumHasBeenSet = true; m_allMatchesSum = value; }
/**
* <p>How much of the total sample count is potentially affected.</p>
*/
inline Recommendation& WithAllMatchesSum(double value) { SetAllMatchesSum(value); return *this;}
/**
* <p>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.</p>
*/
inline const Aws::Utils::DateTime& GetEndTime() const{ return m_endTime; }
/**
* <p>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.</p>
*/
inline bool EndTimeHasBeenSet() const { return m_endTimeHasBeenSet; }
/**
* <p>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.</p>
*/
inline void SetEndTime(const Aws::Utils::DateTime& value) { m_endTimeHasBeenSet = true; m_endTime = value; }
/**
* <p>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.</p>
*/
inline void SetEndTime(Aws::Utils::DateTime&& value) { m_endTimeHasBeenSet = true; m_endTime = std::move(value); }
/**
* <p>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.</p>
*/
inline Recommendation& WithEndTime(const Aws::Utils::DateTime& value) { SetEndTime(value); return *this;}
/**
* <p>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.</p>
*/
inline Recommendation& WithEndTime(Aws::Utils::DateTime&& value) { SetEndTime(std::move(value)); return *this;}
/**
* <p>The pattern that analysis recognized in the profile to make this
* recommendation.</p>
*/
inline const Pattern& GetPattern() const{ return m_pattern; }
/**
* <p>The pattern that analysis recognized in the profile to make this
* recommendation.</p>
*/
inline bool PatternHasBeenSet() const { return m_patternHasBeenSet; }
/**
* <p>The pattern that analysis recognized in the profile to make this
* recommendation.</p>
*/
inline void SetPattern(const Pattern& value) { m_patternHasBeenSet = true; m_pattern = value; }
/**
* <p>The pattern that analysis recognized in the profile to make this
* recommendation.</p>
*/
inline void SetPattern(Pattern&& value) { m_patternHasBeenSet = true; m_pattern = std::move(value); }
/**
* <p>The pattern that analysis recognized in the profile to make this
* recommendation.</p>
*/
inline Recommendation& WithPattern(const Pattern& value) { SetPattern(value); return *this;}
/**
* <p>The pattern that analysis recognized in the profile to make this
* recommendation.</p>
*/
inline Recommendation& WithPattern(Pattern&& value) { SetPattern(std::move(value)); return *this;}
/**
* <p>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.</p>
*/
inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; }
/**
* <p>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.</p>
*/
inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; }
/**
* <p>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.</p>
*/
inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; }
/**
* <p>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.</p>
*/
inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); }
/**
* <p>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.</p>
*/
inline Recommendation& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;}
/**
* <p>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.</p>
*/
inline Recommendation& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;}
/**
* <p>List of the matches with most impact. </p>
*/
inline const Aws::Vector<Match>& GetTopMatches() const{ return m_topMatches; }
/**
* <p>List of the matches with most impact. </p>
*/
inline bool TopMatchesHasBeenSet() const { return m_topMatchesHasBeenSet; }
/**
* <p>List of the matches with most impact. </p>
*/
inline void SetTopMatches(const Aws::Vector<Match>& value) { m_topMatchesHasBeenSet = true; m_topMatches = value; }
/**
* <p>List of the matches with most impact. </p>
*/
inline void SetTopMatches(Aws::Vector<Match>&& value) { m_topMatchesHasBeenSet = true; m_topMatches = std::move(value); }
/**
* <p>List of the matches with most impact. </p>
*/
inline Recommendation& WithTopMatches(const Aws::Vector<Match>& value) { SetTopMatches(value); return *this;}
/**
* <p>List of the matches with most impact. </p>
*/
inline Recommendation& WithTopMatches(Aws::Vector<Match>&& value) { SetTopMatches(std::move(value)); return *this;}
/**
* <p>List of the matches with most impact. </p>
*/
inline Recommendation& AddTopMatches(const Match& value) { m_topMatchesHasBeenSet = true; m_topMatches.push_back(value); return *this; }
/**
* <p>List of the matches with most impact. </p>
*/
inline Recommendation& AddTopMatches(Match&& value) { m_topMatchesHasBeenSet = true; m_topMatches.push_back(std::move(value)); return *this; }
private:
int m_allMatchesCount;
bool m_allMatchesCountHasBeenSet;
double m_allMatchesSum;
bool m_allMatchesSumHasBeenSet;
Aws::Utils::DateTime m_endTime;
bool m_endTimeHasBeenSet;
Pattern m_pattern;
bool m_patternHasBeenSet;
Aws::Utils::DateTime m_startTime;
bool m_startTimeHasBeenSet;
Aws::Vector<Match> m_topMatches;
bool m_topMatchesHasBeenSet;
};
} // namespace Model
} // namespace CodeGuruProfiler
} // namespace Aws