/** * 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 { /** *

A set of rules used to make a recommendation during an analysis. *

See Also:

AWS * API Reference

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

A list of the different counters used to determine if there is a match.

*/ inline const Aws::Vector& GetCountersToAggregate() const{ return m_countersToAggregate; } /** *

A list of the different counters used to determine if there is a match.

*/ inline bool CountersToAggregateHasBeenSet() const { return m_countersToAggregateHasBeenSet; } /** *

A list of the different counters used to determine if there is a match.

*/ inline void SetCountersToAggregate(const Aws::Vector& value) { m_countersToAggregateHasBeenSet = true; m_countersToAggregate = value; } /** *

A list of the different counters used to determine if there is a match.

*/ inline void SetCountersToAggregate(Aws::Vector&& value) { m_countersToAggregateHasBeenSet = true; m_countersToAggregate = std::move(value); } /** *

A list of the different counters used to determine if there is a match.

*/ inline Pattern& WithCountersToAggregate(const Aws::Vector& value) { SetCountersToAggregate(value); return *this;} /** *

A list of the different counters used to determine if there is a match.

*/ inline Pattern& WithCountersToAggregate(Aws::Vector&& value) { SetCountersToAggregate(std::move(value)); return *this;} /** *

A list of the different counters used to determine if there is a match.

*/ inline Pattern& AddCountersToAggregate(const Aws::String& value) { m_countersToAggregateHasBeenSet = true; m_countersToAggregate.push_back(value); return *this; } /** *

A list of the different counters used to determine if there is a match.

*/ inline Pattern& AddCountersToAggregate(Aws::String&& value) { m_countersToAggregateHasBeenSet = true; m_countersToAggregate.push_back(std::move(value)); return *this; } /** *

A list of the different counters used to determine if there is a match.

*/ inline Pattern& AddCountersToAggregate(const char* value) { m_countersToAggregateHasBeenSet = true; m_countersToAggregate.push_back(value); return *this; } /** *

The description of the recommendation. This explains a potential inefficiency * in a profiled application.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description of the recommendation. This explains a potential inefficiency * in a profiled application.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description of the recommendation. This explains a potential inefficiency * in a profiled application.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description of the recommendation. This explains a potential inefficiency * in a profiled application.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description of the recommendation. This explains a potential inefficiency * in a profiled application.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description of the recommendation. This explains a potential inefficiency * in a profiled application.

*/ inline Pattern& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description of the recommendation. This explains a potential inefficiency * in a profiled application.

*/ inline Pattern& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The description of the recommendation. This explains a potential inefficiency * in a profiled application.

*/ inline Pattern& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The universally unique identifier (UUID) of this pattern.

*/ inline const Aws::String& GetId() const{ return m_id; } /** *

The universally unique identifier (UUID) of this pattern.

*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *

The universally unique identifier (UUID) of this pattern.

*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *

The universally unique identifier (UUID) of this pattern.

*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *

The universally unique identifier (UUID) of this pattern.

*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *

The universally unique identifier (UUID) of this pattern.

*/ inline Pattern& WithId(const Aws::String& value) { SetId(value); return *this;} /** *

The universally unique identifier (UUID) of this pattern.

*/ inline Pattern& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *

The universally unique identifier (UUID) of this pattern.

*/ inline Pattern& WithId(const char* value) { SetId(value); return *this;} /** *

The name for this pattern.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name for this pattern.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name for this pattern.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name for this pattern.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name for this pattern.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name for this pattern.

*/ inline Pattern& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name for this pattern.

*/ inline Pattern& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name for this pattern.

*/ inline Pattern& WithName(const char* value) { SetName(value); return *this;} /** *

A string that contains the steps recommended to address the potential * inefficiency.

*/ inline const Aws::String& GetResolutionSteps() const{ return m_resolutionSteps; } /** *

A string that contains the steps recommended to address the potential * inefficiency.

*/ inline bool ResolutionStepsHasBeenSet() const { return m_resolutionStepsHasBeenSet; } /** *

A string that contains the steps recommended to address the potential * inefficiency.

*/ inline void SetResolutionSteps(const Aws::String& value) { m_resolutionStepsHasBeenSet = true; m_resolutionSteps = value; } /** *

A string that contains the steps recommended to address the potential * inefficiency.

*/ inline void SetResolutionSteps(Aws::String&& value) { m_resolutionStepsHasBeenSet = true; m_resolutionSteps = std::move(value); } /** *

A string that contains the steps recommended to address the potential * inefficiency.

*/ inline void SetResolutionSteps(const char* value) { m_resolutionStepsHasBeenSet = true; m_resolutionSteps.assign(value); } /** *

A string that contains the steps recommended to address the potential * inefficiency.

*/ inline Pattern& WithResolutionSteps(const Aws::String& value) { SetResolutionSteps(value); return *this;} /** *

A string that contains the steps recommended to address the potential * inefficiency.

*/ inline Pattern& WithResolutionSteps(Aws::String&& value) { SetResolutionSteps(std::move(value)); return *this;} /** *

A string that contains the steps recommended to address the potential * inefficiency.

*/ inline Pattern& WithResolutionSteps(const char* value) { SetResolutionSteps(value); return *this;} /** *

A list of frame names that were searched during the analysis that generated a * recommendation.

*/ inline const Aws::Vector>& GetTargetFrames() const{ return m_targetFrames; } /** *

A list of frame names that were searched during the analysis that generated a * recommendation.

*/ inline bool TargetFramesHasBeenSet() const { return m_targetFramesHasBeenSet; } /** *

A list of frame names that were searched during the analysis that generated a * recommendation.

*/ inline void SetTargetFrames(const Aws::Vector>& value) { m_targetFramesHasBeenSet = true; m_targetFrames = value; } /** *

A list of frame names that were searched during the analysis that generated a * recommendation.

*/ inline void SetTargetFrames(Aws::Vector>&& value) { m_targetFramesHasBeenSet = true; m_targetFrames = std::move(value); } /** *

A list of frame names that were searched during the analysis that generated a * recommendation.

*/ inline Pattern& WithTargetFrames(const Aws::Vector>& value) { SetTargetFrames(value); return *this;} /** *

A list of frame names that were searched during the analysis that generated a * recommendation.

*/ inline Pattern& WithTargetFrames(Aws::Vector>&& value) { SetTargetFrames(std::move(value)); return *this;} /** *

A list of frame names that were searched during the analysis that generated a * recommendation.

*/ inline Pattern& AddTargetFrames(const Aws::Vector& value) { m_targetFramesHasBeenSet = true; m_targetFrames.push_back(value); return *this; } /** *

A list of frame names that were searched during the analysis that generated a * recommendation.

*/ inline Pattern& AddTargetFrames(Aws::Vector&& value) { m_targetFramesHasBeenSet = true; m_targetFrames.push_back(std::move(value)); return *this; } /** *

The percentage of time an application spends in one method that triggers a * recommendation. The percentage of time is the same as the percentage of the * total gathered sample counts during analysis.

*/ inline double GetThresholdPercent() const{ return m_thresholdPercent; } /** *

The percentage of time an application spends in one method that triggers a * recommendation. The percentage of time is the same as the percentage of the * total gathered sample counts during analysis.

*/ inline bool ThresholdPercentHasBeenSet() const { return m_thresholdPercentHasBeenSet; } /** *

The percentage of time an application spends in one method that triggers a * recommendation. The percentage of time is the same as the percentage of the * total gathered sample counts during analysis.

*/ inline void SetThresholdPercent(double value) { m_thresholdPercentHasBeenSet = true; m_thresholdPercent = value; } /** *

The percentage of time an application spends in one method that triggers a * recommendation. The percentage of time is the same as the percentage of the * total gathered sample counts during analysis.

*/ inline Pattern& WithThresholdPercent(double value) { SetThresholdPercent(value); return *this;} private: Aws::Vector m_countersToAggregate; bool m_countersToAggregateHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_id; bool m_idHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_resolutionSteps; bool m_resolutionStepsHasBeenSet = false; Aws::Vector> m_targetFrames; bool m_targetFramesHasBeenSet = false; double m_thresholdPercent; bool m_thresholdPercentHasBeenSet = false; }; } // namespace Model } // namespace CodeGuruProfiler } // namespace Aws