AWS SDK for C++

AWS SDK for C++ Version 1.11.744

Loading...
Searching...
No Matches
InstanceRecommendationOption.h
1
6#pragma once
7#include <aws/compute-optimizer/ComputeOptimizer_EXPORTS.h>
8#include <aws/compute-optimizer/model/GpuInfo.h>
9#include <aws/compute-optimizer/model/InstanceSavingsOpportunityAfterDiscounts.h>
10#include <aws/compute-optimizer/model/MigrationEffort.h>
11#include <aws/compute-optimizer/model/PlatformDifference.h>
12#include <aws/compute-optimizer/model/SavingsOpportunity.h>
13#include <aws/compute-optimizer/model/UtilizationMetric.h>
14#include <aws/core/utils/memory/stl/AWSString.h>
15#include <aws/core/utils/memory/stl/AWSVector.h>
16
17#include <utility>
18
19namespace Aws {
20namespace Utils {
21namespace Json {
22class JsonValue;
23class JsonView;
24} // namespace Json
25} // namespace Utils
26namespace ComputeOptimizer {
27namespace Model {
28
36 public:
37 AWS_COMPUTEOPTIMIZER_API InstanceRecommendationOption() = default;
38 AWS_COMPUTEOPTIMIZER_API InstanceRecommendationOption(Aws::Utils::Json::JsonView jsonValue);
40 AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const;
41
43
46 inline const Aws::String& GetInstanceType() const { return m_instanceType; }
47 inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
48 template <typename InstanceTypeT = Aws::String>
49 void SetInstanceType(InstanceTypeT&& value) {
50 m_instanceTypeHasBeenSet = true;
51 m_instanceType = std::forward<InstanceTypeT>(value);
52 }
53 template <typename InstanceTypeT = Aws::String>
55 SetInstanceType(std::forward<InstanceTypeT>(value));
56 return *this;
57 }
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) {
69 m_instanceGpuInfoHasBeenSet = true;
70 m_instanceGpuInfo = std::forward<InstanceGpuInfoT>(value);
71 }
72 template <typename InstanceGpuInfoT = GpuInfo>
74 SetInstanceGpuInfo(std::forward<InstanceGpuInfoT>(value));
75 return *this;
76 }
78
80
90 inline const Aws::Vector<UtilizationMetric>& GetProjectedUtilizationMetrics() const { return m_projectedUtilizationMetrics; }
91 inline bool ProjectedUtilizationMetricsHasBeenSet() const { return m_projectedUtilizationMetricsHasBeenSet; }
92 template <typename ProjectedUtilizationMetricsT = Aws::Vector<UtilizationMetric>>
93 void SetProjectedUtilizationMetrics(ProjectedUtilizationMetricsT&& value) {
94 m_projectedUtilizationMetricsHasBeenSet = true;
95 m_projectedUtilizationMetrics = std::forward<ProjectedUtilizationMetricsT>(value);
96 }
97 template <typename ProjectedUtilizationMetricsT = Aws::Vector<UtilizationMetric>>
98 InstanceRecommendationOption& WithProjectedUtilizationMetrics(ProjectedUtilizationMetricsT&& value) {
99 SetProjectedUtilizationMetrics(std::forward<ProjectedUtilizationMetricsT>(value));
100 return *this;
101 }
102 template <typename ProjectedUtilizationMetricsT = UtilizationMetric>
103 InstanceRecommendationOption& AddProjectedUtilizationMetrics(ProjectedUtilizationMetricsT&& value) {
104 m_projectedUtilizationMetricsHasBeenSet = true;
105 m_projectedUtilizationMetrics.emplace_back(std::forward<ProjectedUtilizationMetricsT>(value));
106 return *this;
107 }
109
111
201 inline const Aws::Vector<PlatformDifference>& GetPlatformDifferences() const { return m_platformDifferences; }
202 inline bool PlatformDifferencesHasBeenSet() const { return m_platformDifferencesHasBeenSet; }
203 template <typename PlatformDifferencesT = Aws::Vector<PlatformDifference>>
204 void SetPlatformDifferences(PlatformDifferencesT&& value) {
205 m_platformDifferencesHasBeenSet = true;
206 m_platformDifferences = std::forward<PlatformDifferencesT>(value);
207 }
208 template <typename PlatformDifferencesT = Aws::Vector<PlatformDifference>>
210 SetPlatformDifferences(std::forward<PlatformDifferencesT>(value));
211 return *this;
212 }
214 m_platformDifferencesHasBeenSet = true;
215 m_platformDifferences.push_back(value);
216 return *this;
217 }
219
221
236 inline double GetPerformanceRisk() const { return m_performanceRisk; }
237 inline bool PerformanceRiskHasBeenSet() const { return m_performanceRiskHasBeenSet; }
238 inline void SetPerformanceRisk(double value) {
239 m_performanceRiskHasBeenSet = true;
240 m_performanceRisk = value;
241 }
243 SetPerformanceRisk(value);
244 return *this;
245 }
247
249
253 inline int GetRank() const { return m_rank; }
254 inline bool RankHasBeenSet() const { return m_rankHasBeenSet; }
255 inline void SetRank(int value) {
256 m_rankHasBeenSet = true;
257 m_rank = value;
258 }
260 SetRank(value);
261 return *this;
262 }
264
266
271 inline const SavingsOpportunity& GetSavingsOpportunity() const { return m_savingsOpportunity; }
272 inline bool SavingsOpportunityHasBeenSet() const { return m_savingsOpportunityHasBeenSet; }
273 template <typename SavingsOpportunityT = SavingsOpportunity>
274 void SetSavingsOpportunity(SavingsOpportunityT&& value) {
275 m_savingsOpportunityHasBeenSet = true;
276 m_savingsOpportunity = std::forward<SavingsOpportunityT>(value);
277 }
278 template <typename SavingsOpportunityT = SavingsOpportunity>
280 SetSavingsOpportunity(std::forward<SavingsOpportunityT>(value));
281 return *this;
282 }
284
286
293 return m_savingsOpportunityAfterDiscounts;
294 }
295 inline bool SavingsOpportunityAfterDiscountsHasBeenSet() const { return m_savingsOpportunityAfterDiscountsHasBeenSet; }
296 template <typename SavingsOpportunityAfterDiscountsT = InstanceSavingsOpportunityAfterDiscounts>
297 void SetSavingsOpportunityAfterDiscounts(SavingsOpportunityAfterDiscountsT&& value) {
298 m_savingsOpportunityAfterDiscountsHasBeenSet = true;
299 m_savingsOpportunityAfterDiscounts = std::forward<SavingsOpportunityAfterDiscountsT>(value);
300 }
301 template <typename SavingsOpportunityAfterDiscountsT = InstanceSavingsOpportunityAfterDiscounts>
302 InstanceRecommendationOption& WithSavingsOpportunityAfterDiscounts(SavingsOpportunityAfterDiscountsT&& value) {
303 SetSavingsOpportunityAfterDiscounts(std::forward<SavingsOpportunityAfterDiscountsT>(value));
304 return *this;
305 }
307
309
319 inline MigrationEffort GetMigrationEffort() const { return m_migrationEffort; }
320 inline bool MigrationEffortHasBeenSet() const { return m_migrationEffortHasBeenSet; }
322 m_migrationEffortHasBeenSet = true;
323 m_migrationEffort = value;
324 }
326 SetMigrationEffort(value);
327 return *this;
328 }
330 private:
331 Aws::String m_instanceType;
332
333 GpuInfo m_instanceGpuInfo;
334
335 Aws::Vector<UtilizationMetric> m_projectedUtilizationMetrics;
336
337 Aws::Vector<PlatformDifference> m_platformDifferences;
338
339 double m_performanceRisk{0.0};
340
341 int m_rank{0};
342
343 SavingsOpportunity m_savingsOpportunity;
344
345 InstanceSavingsOpportunityAfterDiscounts m_savingsOpportunityAfterDiscounts;
346
347 MigrationEffort m_migrationEffort{MigrationEffort::NOT_SET};
348 bool m_instanceTypeHasBeenSet = false;
349 bool m_instanceGpuInfoHasBeenSet = false;
350 bool m_projectedUtilizationMetricsHasBeenSet = false;
351 bool m_platformDifferencesHasBeenSet = false;
352 bool m_performanceRiskHasBeenSet = false;
353 bool m_rankHasBeenSet = false;
354 bool m_savingsOpportunityHasBeenSet = false;
355 bool m_savingsOpportunityAfterDiscountsHasBeenSet = false;
356 bool m_migrationEffortHasBeenSet = false;
357};
358
359} // namespace Model
360} // namespace ComputeOptimizer
361} // 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