AWS SDK for C++

AWS SDK for C++ Version 1.11.607

Loading...
Searching...
No Matches
InstanceRecommendationOption.h
1
6#pragma once
7#include <aws/compute-optimizer/ComputeOptimizer_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSString.h>
9#include <aws/compute-optimizer/model/GpuInfo.h>
10#include <aws/core/utils/memory/stl/AWSVector.h>
11#include <aws/compute-optimizer/model/SavingsOpportunity.h>
12#include <aws/compute-optimizer/model/InstanceSavingsOpportunityAfterDiscounts.h>
13#include <aws/compute-optimizer/model/MigrationEffort.h>
14#include <aws/compute-optimizer/model/UtilizationMetric.h>
15#include <aws/compute-optimizer/model/PlatformDifference.h>
16#include <utility>
17
18namespace Aws
19{
20namespace Utils
21{
22namespace Json
23{
24 class JsonValue;
25 class JsonView;
26} // namespace Json
27} // namespace Utils
28namespace ComputeOptimizer
29{
30namespace Model
31{
32
40 {
41 public:
42 AWS_COMPUTEOPTIMIZER_API InstanceRecommendationOption() = default;
43 AWS_COMPUTEOPTIMIZER_API InstanceRecommendationOption(Aws::Utils::Json::JsonView jsonValue);
45 AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const;
46
47
49
52 inline const Aws::String& GetInstanceType() const { return m_instanceType; }
53 inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
54 template<typename InstanceTypeT = Aws::String>
55 void SetInstanceType(InstanceTypeT&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::forward<InstanceTypeT>(value); }
56 template<typename InstanceTypeT = Aws::String>
57 InstanceRecommendationOption& WithInstanceType(InstanceTypeT&& value) { SetInstanceType(std::forward<InstanceTypeT>(value)); return *this;}
59
61
65 inline const GpuInfo& GetInstanceGpuInfo() const { return m_instanceGpuInfo; }
66 inline bool InstanceGpuInfoHasBeenSet() const { return m_instanceGpuInfoHasBeenSet; }
67 template<typename InstanceGpuInfoT = GpuInfo>
68 void SetInstanceGpuInfo(InstanceGpuInfoT&& value) { m_instanceGpuInfoHasBeenSet = true; m_instanceGpuInfo = std::forward<InstanceGpuInfoT>(value); }
69 template<typename InstanceGpuInfoT = GpuInfo>
70 InstanceRecommendationOption& WithInstanceGpuInfo(InstanceGpuInfoT&& value) { SetInstanceGpuInfo(std::forward<InstanceGpuInfoT>(value)); return *this;}
72
74
84 inline const Aws::Vector<UtilizationMetric>& GetProjectedUtilizationMetrics() const { return m_projectedUtilizationMetrics; }
85 inline bool ProjectedUtilizationMetricsHasBeenSet() const { return m_projectedUtilizationMetricsHasBeenSet; }
86 template<typename ProjectedUtilizationMetricsT = Aws::Vector<UtilizationMetric>>
87 void SetProjectedUtilizationMetrics(ProjectedUtilizationMetricsT&& value) { m_projectedUtilizationMetricsHasBeenSet = true; m_projectedUtilizationMetrics = std::forward<ProjectedUtilizationMetricsT>(value); }
88 template<typename ProjectedUtilizationMetricsT = Aws::Vector<UtilizationMetric>>
89 InstanceRecommendationOption& WithProjectedUtilizationMetrics(ProjectedUtilizationMetricsT&& value) { SetProjectedUtilizationMetrics(std::forward<ProjectedUtilizationMetricsT>(value)); return *this;}
90 template<typename ProjectedUtilizationMetricsT = UtilizationMetric>
91 InstanceRecommendationOption& AddProjectedUtilizationMetrics(ProjectedUtilizationMetricsT&& value) { m_projectedUtilizationMetricsHasBeenSet = true; m_projectedUtilizationMetrics.emplace_back(std::forward<ProjectedUtilizationMetricsT>(value)); return *this; }
93
95
185 inline const Aws::Vector<PlatformDifference>& GetPlatformDifferences() const { return m_platformDifferences; }
186 inline bool PlatformDifferencesHasBeenSet() const { return m_platformDifferencesHasBeenSet; }
187 template<typename PlatformDifferencesT = Aws::Vector<PlatformDifference>>
188 void SetPlatformDifferences(PlatformDifferencesT&& value) { m_platformDifferencesHasBeenSet = true; m_platformDifferences = std::forward<PlatformDifferencesT>(value); }
189 template<typename PlatformDifferencesT = Aws::Vector<PlatformDifference>>
190 InstanceRecommendationOption& WithPlatformDifferences(PlatformDifferencesT&& value) { SetPlatformDifferences(std::forward<PlatformDifferencesT>(value)); return *this;}
191 inline InstanceRecommendationOption& AddPlatformDifferences(PlatformDifference value) { m_platformDifferencesHasBeenSet = true; m_platformDifferences.push_back(value); return *this; }
193
195
210 inline double GetPerformanceRisk() const { return m_performanceRisk; }
211 inline bool PerformanceRiskHasBeenSet() const { return m_performanceRiskHasBeenSet; }
212 inline void SetPerformanceRisk(double value) { m_performanceRiskHasBeenSet = true; m_performanceRisk = value; }
213 inline InstanceRecommendationOption& WithPerformanceRisk(double value) { SetPerformanceRisk(value); return *this;}
215
217
221 inline int GetRank() const { return m_rank; }
222 inline bool RankHasBeenSet() const { return m_rankHasBeenSet; }
223 inline void SetRank(int value) { m_rankHasBeenSet = true; m_rank = value; }
224 inline InstanceRecommendationOption& WithRank(int value) { SetRank(value); return *this;}
226
228
233 inline const SavingsOpportunity& GetSavingsOpportunity() const { return m_savingsOpportunity; }
234 inline bool SavingsOpportunityHasBeenSet() const { return m_savingsOpportunityHasBeenSet; }
235 template<typename SavingsOpportunityT = SavingsOpportunity>
236 void SetSavingsOpportunity(SavingsOpportunityT&& value) { m_savingsOpportunityHasBeenSet = true; m_savingsOpportunity = std::forward<SavingsOpportunityT>(value); }
237 template<typename SavingsOpportunityT = SavingsOpportunity>
238 InstanceRecommendationOption& WithSavingsOpportunity(SavingsOpportunityT&& value) { SetSavingsOpportunity(std::forward<SavingsOpportunityT>(value)); return *this;}
240
242
248 inline const InstanceSavingsOpportunityAfterDiscounts& GetSavingsOpportunityAfterDiscounts() const { return m_savingsOpportunityAfterDiscounts; }
249 inline bool SavingsOpportunityAfterDiscountsHasBeenSet() const { return m_savingsOpportunityAfterDiscountsHasBeenSet; }
250 template<typename SavingsOpportunityAfterDiscountsT = InstanceSavingsOpportunityAfterDiscounts>
251 void SetSavingsOpportunityAfterDiscounts(SavingsOpportunityAfterDiscountsT&& value) { m_savingsOpportunityAfterDiscountsHasBeenSet = true; m_savingsOpportunityAfterDiscounts = std::forward<SavingsOpportunityAfterDiscountsT>(value); }
252 template<typename SavingsOpportunityAfterDiscountsT = InstanceSavingsOpportunityAfterDiscounts>
253 InstanceRecommendationOption& WithSavingsOpportunityAfterDiscounts(SavingsOpportunityAfterDiscountsT&& value) { SetSavingsOpportunityAfterDiscounts(std::forward<SavingsOpportunityAfterDiscountsT>(value)); return *this;}
255
257
267 inline MigrationEffort GetMigrationEffort() const { return m_migrationEffort; }
268 inline bool MigrationEffortHasBeenSet() const { return m_migrationEffortHasBeenSet; }
269 inline void SetMigrationEffort(MigrationEffort value) { m_migrationEffortHasBeenSet = true; m_migrationEffort = value; }
272 private:
273
274 Aws::String m_instanceType;
275 bool m_instanceTypeHasBeenSet = false;
276
277 GpuInfo m_instanceGpuInfo;
278 bool m_instanceGpuInfoHasBeenSet = false;
279
280 Aws::Vector<UtilizationMetric> m_projectedUtilizationMetrics;
281 bool m_projectedUtilizationMetricsHasBeenSet = false;
282
283 Aws::Vector<PlatformDifference> m_platformDifferences;
284 bool m_platformDifferencesHasBeenSet = false;
285
286 double m_performanceRisk{0.0};
287 bool m_performanceRiskHasBeenSet = false;
288
289 int m_rank{0};
290 bool m_rankHasBeenSet = false;
291
292 SavingsOpportunity m_savingsOpportunity;
293 bool m_savingsOpportunityHasBeenSet = false;
294
295 InstanceSavingsOpportunityAfterDiscounts m_savingsOpportunityAfterDiscounts;
296 bool m_savingsOpportunityAfterDiscountsHasBeenSet = false;
297
298 MigrationEffort m_migrationEffort{MigrationEffort::NOT_SET};
299 bool m_migrationEffortHasBeenSet = false;
300 };
301
302} // namespace Model
303} // namespace ComputeOptimizer
304} // namespace Aws
void SetProjectedUtilizationMetrics(ProjectedUtilizationMetricsT &&value)
AWS_COMPUTEOPTIMIZER_API InstanceRecommendationOption(Aws::Utils::Json::JsonView jsonValue)
void SetSavingsOpportunityAfterDiscounts(SavingsOpportunityAfterDiscountsT &&value)
AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const
const InstanceSavingsOpportunityAfterDiscounts & GetSavingsOpportunityAfterDiscounts() const
InstanceRecommendationOption & WithMigrationEffort(MigrationEffort value)
const Aws::Vector< UtilizationMetric > & GetProjectedUtilizationMetrics() const
InstanceRecommendationOption & WithPlatformDifferences(PlatformDifferencesT &&value)
InstanceRecommendationOption & WithInstanceGpuInfo(InstanceGpuInfoT &&value)
InstanceRecommendationOption & WithSavingsOpportunityAfterDiscounts(SavingsOpportunityAfterDiscountsT &&value)
AWS_COMPUTEOPTIMIZER_API InstanceRecommendationOption()=default
InstanceRecommendationOption & WithSavingsOpportunity(SavingsOpportunityT &&value)
InstanceRecommendationOption & WithInstanceType(InstanceTypeT &&value)
AWS_COMPUTEOPTIMIZER_API InstanceRecommendationOption & operator=(Aws::Utils::Json::JsonView jsonValue)
InstanceRecommendationOption & AddPlatformDifferences(PlatformDifference value)
InstanceRecommendationOption & WithProjectedUtilizationMetrics(ProjectedUtilizationMetricsT &&value)
InstanceRecommendationOption & AddProjectedUtilizationMetrics(ProjectedUtilizationMetricsT &&value)
const Aws::Vector< PlatformDifference > & GetPlatformDifferences() const
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue