/** * 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 #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ResilienceHub { namespace Model { /** *

Defines a configuration recommendation.

See Also:

AWS * API Reference

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

The name of the Application Component.

*/ inline const Aws::String& GetAppComponentName() const{ return m_appComponentName; } /** *

The name of the Application Component.

*/ inline bool AppComponentNameHasBeenSet() const { return m_appComponentNameHasBeenSet; } /** *

The name of the Application Component.

*/ inline void SetAppComponentName(const Aws::String& value) { m_appComponentNameHasBeenSet = true; m_appComponentName = value; } /** *

The name of the Application Component.

*/ inline void SetAppComponentName(Aws::String&& value) { m_appComponentNameHasBeenSet = true; m_appComponentName = std::move(value); } /** *

The name of the Application Component.

*/ inline void SetAppComponentName(const char* value) { m_appComponentNameHasBeenSet = true; m_appComponentName.assign(value); } /** *

The name of the Application Component.

*/ inline ConfigRecommendation& WithAppComponentName(const Aws::String& value) { SetAppComponentName(value); return *this;} /** *

The name of the Application Component.

*/ inline ConfigRecommendation& WithAppComponentName(Aws::String&& value) { SetAppComponentName(std::move(value)); return *this;} /** *

The name of the Application Component.

*/ inline ConfigRecommendation& WithAppComponentName(const char* value) { SetAppComponentName(value); return *this;} /** *

The current compliance against the resiliency policy before applying the * configuration change.

*/ inline const Aws::Map& GetCompliance() const{ return m_compliance; } /** *

The current compliance against the resiliency policy before applying the * configuration change.

*/ inline bool ComplianceHasBeenSet() const { return m_complianceHasBeenSet; } /** *

The current compliance against the resiliency policy before applying the * configuration change.

*/ inline void SetCompliance(const Aws::Map& value) { m_complianceHasBeenSet = true; m_compliance = value; } /** *

The current compliance against the resiliency policy before applying the * configuration change.

*/ inline void SetCompliance(Aws::Map&& value) { m_complianceHasBeenSet = true; m_compliance = std::move(value); } /** *

The current compliance against the resiliency policy before applying the * configuration change.

*/ inline ConfigRecommendation& WithCompliance(const Aws::Map& value) { SetCompliance(value); return *this;} /** *

The current compliance against the resiliency policy before applying the * configuration change.

*/ inline ConfigRecommendation& WithCompliance(Aws::Map&& value) { SetCompliance(std::move(value)); return *this;} /** *

The current compliance against the resiliency policy before applying the * configuration change.

*/ inline ConfigRecommendation& AddCompliance(const DisruptionType& key, const DisruptionCompliance& value) { m_complianceHasBeenSet = true; m_compliance.emplace(key, value); return *this; } /** *

The current compliance against the resiliency policy before applying the * configuration change.

*/ inline ConfigRecommendation& AddCompliance(DisruptionType&& key, const DisruptionCompliance& value) { m_complianceHasBeenSet = true; m_compliance.emplace(std::move(key), value); return *this; } /** *

The current compliance against the resiliency policy before applying the * configuration change.

*/ inline ConfigRecommendation& AddCompliance(const DisruptionType& key, DisruptionCompliance&& value) { m_complianceHasBeenSet = true; m_compliance.emplace(key, std::move(value)); return *this; } /** *

The current compliance against the resiliency policy before applying the * configuration change.

*/ inline ConfigRecommendation& AddCompliance(DisruptionType&& key, DisruptionCompliance&& value) { m_complianceHasBeenSet = true; m_compliance.emplace(std::move(key), std::move(value)); return *this; } /** *

The cost for the application.

*/ inline const Cost& GetCost() const{ return m_cost; } /** *

The cost for the application.

*/ inline bool CostHasBeenSet() const { return m_costHasBeenSet; } /** *

The cost for the application.

*/ inline void SetCost(const Cost& value) { m_costHasBeenSet = true; m_cost = value; } /** *

The cost for the application.

*/ inline void SetCost(Cost&& value) { m_costHasBeenSet = true; m_cost = std::move(value); } /** *

The cost for the application.

*/ inline ConfigRecommendation& WithCost(const Cost& value) { SetCost(value); return *this;} /** *

The cost for the application.

*/ inline ConfigRecommendation& WithCost(Cost&& value) { SetCost(std::move(value)); return *this;} /** *

The optional description for an app.

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

The optional description for an app.

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

The optional description for an app.

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

The optional description for an app.

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

The optional description for an app.

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

The optional description for an app.

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

The optional description for an app.

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

The optional description for an app.

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

The architecture type.

*/ inline const HaArchitecture& GetHaArchitecture() const{ return m_haArchitecture; } /** *

The architecture type.

*/ inline bool HaArchitectureHasBeenSet() const { return m_haArchitectureHasBeenSet; } /** *

The architecture type.

*/ inline void SetHaArchitecture(const HaArchitecture& value) { m_haArchitectureHasBeenSet = true; m_haArchitecture = value; } /** *

The architecture type.

*/ inline void SetHaArchitecture(HaArchitecture&& value) { m_haArchitectureHasBeenSet = true; m_haArchitecture = std::move(value); } /** *

The architecture type.

*/ inline ConfigRecommendation& WithHaArchitecture(const HaArchitecture& value) { SetHaArchitecture(value); return *this;} /** *

The architecture type.

*/ inline ConfigRecommendation& WithHaArchitecture(HaArchitecture&& value) { SetHaArchitecture(std::move(value)); return *this;} /** *

The name of the recommendation configuration.

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

The name of the recommendation configuration.

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

The name of the recommendation configuration.

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

The name of the recommendation configuration.

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

The name of the recommendation configuration.

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

The name of the recommendation configuration.

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

The name of the recommendation configuration.

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

The name of the recommendation configuration.

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

The type of optimization.

*/ inline const ConfigRecommendationOptimizationType& GetOptimizationType() const{ return m_optimizationType; } /** *

The type of optimization.

*/ inline bool OptimizationTypeHasBeenSet() const { return m_optimizationTypeHasBeenSet; } /** *

The type of optimization.

*/ inline void SetOptimizationType(const ConfigRecommendationOptimizationType& value) { m_optimizationTypeHasBeenSet = true; m_optimizationType = value; } /** *

The type of optimization.

*/ inline void SetOptimizationType(ConfigRecommendationOptimizationType&& value) { m_optimizationTypeHasBeenSet = true; m_optimizationType = std::move(value); } /** *

The type of optimization.

*/ inline ConfigRecommendation& WithOptimizationType(const ConfigRecommendationOptimizationType& value) { SetOptimizationType(value); return *this;} /** *

The type of optimization.

*/ inline ConfigRecommendation& WithOptimizationType(ConfigRecommendationOptimizationType&& value) { SetOptimizationType(std::move(value)); return *this;} /** *

The expected compliance against the resiliency policy after applying the * configuration change.

*/ inline const Aws::Map& GetRecommendationCompliance() const{ return m_recommendationCompliance; } /** *

The expected compliance against the resiliency policy after applying the * configuration change.

*/ inline bool RecommendationComplianceHasBeenSet() const { return m_recommendationComplianceHasBeenSet; } /** *

The expected compliance against the resiliency policy after applying the * configuration change.

*/ inline void SetRecommendationCompliance(const Aws::Map& value) { m_recommendationComplianceHasBeenSet = true; m_recommendationCompliance = value; } /** *

The expected compliance against the resiliency policy after applying the * configuration change.

*/ inline void SetRecommendationCompliance(Aws::Map&& value) { m_recommendationComplianceHasBeenSet = true; m_recommendationCompliance = std::move(value); } /** *

The expected compliance against the resiliency policy after applying the * configuration change.

*/ inline ConfigRecommendation& WithRecommendationCompliance(const Aws::Map& value) { SetRecommendationCompliance(value); return *this;} /** *

The expected compliance against the resiliency policy after applying the * configuration change.

*/ inline ConfigRecommendation& WithRecommendationCompliance(Aws::Map&& value) { SetRecommendationCompliance(std::move(value)); return *this;} /** *

The expected compliance against the resiliency policy after applying the * configuration change.

*/ inline ConfigRecommendation& AddRecommendationCompliance(const DisruptionType& key, const RecommendationDisruptionCompliance& value) { m_recommendationComplianceHasBeenSet = true; m_recommendationCompliance.emplace(key, value); return *this; } /** *

The expected compliance against the resiliency policy after applying the * configuration change.

*/ inline ConfigRecommendation& AddRecommendationCompliance(DisruptionType&& key, const RecommendationDisruptionCompliance& value) { m_recommendationComplianceHasBeenSet = true; m_recommendationCompliance.emplace(std::move(key), value); return *this; } /** *

The expected compliance against the resiliency policy after applying the * configuration change.

*/ inline ConfigRecommendation& AddRecommendationCompliance(const DisruptionType& key, RecommendationDisruptionCompliance&& value) { m_recommendationComplianceHasBeenSet = true; m_recommendationCompliance.emplace(key, std::move(value)); return *this; } /** *

The expected compliance against the resiliency policy after applying the * configuration change.

*/ inline ConfigRecommendation& AddRecommendationCompliance(DisruptionType&& key, RecommendationDisruptionCompliance&& value) { m_recommendationComplianceHasBeenSet = true; m_recommendationCompliance.emplace(std::move(key), std::move(value)); return *this; } /** *

The reference identifier for the recommendation configuration.

*/ inline const Aws::String& GetReferenceId() const{ return m_referenceId; } /** *

The reference identifier for the recommendation configuration.

*/ inline bool ReferenceIdHasBeenSet() const { return m_referenceIdHasBeenSet; } /** *

The reference identifier for the recommendation configuration.

*/ inline void SetReferenceId(const Aws::String& value) { m_referenceIdHasBeenSet = true; m_referenceId = value; } /** *

The reference identifier for the recommendation configuration.

*/ inline void SetReferenceId(Aws::String&& value) { m_referenceIdHasBeenSet = true; m_referenceId = std::move(value); } /** *

The reference identifier for the recommendation configuration.

*/ inline void SetReferenceId(const char* value) { m_referenceIdHasBeenSet = true; m_referenceId.assign(value); } /** *

The reference identifier for the recommendation configuration.

*/ inline ConfigRecommendation& WithReferenceId(const Aws::String& value) { SetReferenceId(value); return *this;} /** *

The reference identifier for the recommendation configuration.

*/ inline ConfigRecommendation& WithReferenceId(Aws::String&& value) { SetReferenceId(std::move(value)); return *this;} /** *

The reference identifier for the recommendation configuration.

*/ inline ConfigRecommendation& WithReferenceId(const char* value) { SetReferenceId(value); return *this;} /** *

List of the suggested configuration changes.

*/ inline const Aws::Vector& GetSuggestedChanges() const{ return m_suggestedChanges; } /** *

List of the suggested configuration changes.

*/ inline bool SuggestedChangesHasBeenSet() const { return m_suggestedChangesHasBeenSet; } /** *

List of the suggested configuration changes.

*/ inline void SetSuggestedChanges(const Aws::Vector& value) { m_suggestedChangesHasBeenSet = true; m_suggestedChanges = value; } /** *

List of the suggested configuration changes.

*/ inline void SetSuggestedChanges(Aws::Vector&& value) { m_suggestedChangesHasBeenSet = true; m_suggestedChanges = std::move(value); } /** *

List of the suggested configuration changes.

*/ inline ConfigRecommendation& WithSuggestedChanges(const Aws::Vector& value) { SetSuggestedChanges(value); return *this;} /** *

List of the suggested configuration changes.

*/ inline ConfigRecommendation& WithSuggestedChanges(Aws::Vector&& value) { SetSuggestedChanges(std::move(value)); return *this;} /** *

List of the suggested configuration changes.

*/ inline ConfigRecommendation& AddSuggestedChanges(const Aws::String& value) { m_suggestedChangesHasBeenSet = true; m_suggestedChanges.push_back(value); return *this; } /** *

List of the suggested configuration changes.

*/ inline ConfigRecommendation& AddSuggestedChanges(Aws::String&& value) { m_suggestedChangesHasBeenSet = true; m_suggestedChanges.push_back(std::move(value)); return *this; } /** *

List of the suggested configuration changes.

*/ inline ConfigRecommendation& AddSuggestedChanges(const char* value) { m_suggestedChangesHasBeenSet = true; m_suggestedChanges.push_back(value); return *this; } private: Aws::String m_appComponentName; bool m_appComponentNameHasBeenSet = false; Aws::Map m_compliance; bool m_complianceHasBeenSet = false; Cost m_cost; bool m_costHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; HaArchitecture m_haArchitecture; bool m_haArchitectureHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; ConfigRecommendationOptimizationType m_optimizationType; bool m_optimizationTypeHasBeenSet = false; Aws::Map m_recommendationCompliance; bool m_recommendationComplianceHasBeenSet = false; Aws::String m_referenceId; bool m_referenceIdHasBeenSet = false; Aws::Vector m_suggestedChanges; bool m_suggestedChangesHasBeenSet = false; }; } // namespace Model } // namespace ResilienceHub } // namespace Aws