AWS SDK for C++

AWS SDK for C++ Version 1.11.743

Loading...
Searching...
No Matches
InstanceRecommendation.h
1
6#pragma once
7#include <aws/compute-optimizer/ComputeOptimizer_EXPORTS.h>
8#include <aws/compute-optimizer/model/CurrentPerformanceRisk.h>
9#include <aws/compute-optimizer/model/EffectiveRecommendationPreferences.h>
10#include <aws/compute-optimizer/model/ExternalMetricStatus.h>
11#include <aws/compute-optimizer/model/Finding.h>
12#include <aws/compute-optimizer/model/GpuInfo.h>
13#include <aws/compute-optimizer/model/InferredWorkloadType.h>
14#include <aws/compute-optimizer/model/InstanceIdle.h>
15#include <aws/compute-optimizer/model/InstanceRecommendationFindingReasonCode.h>
16#include <aws/compute-optimizer/model/InstanceRecommendationOption.h>
17#include <aws/compute-optimizer/model/InstanceState.h>
18#include <aws/compute-optimizer/model/RecommendationSource.h>
19#include <aws/compute-optimizer/model/Tag.h>
20#include <aws/compute-optimizer/model/UtilizationMetric.h>
21#include <aws/core/utils/DateTime.h>
22#include <aws/core/utils/memory/stl/AWSString.h>
23#include <aws/core/utils/memory/stl/AWSVector.h>
24
25#include <utility>
26
27namespace Aws {
28namespace Utils {
29namespace Json {
30class JsonValue;
31class JsonView;
32} // namespace Json
33} // namespace Utils
34namespace ComputeOptimizer {
35namespace Model {
36
44 public:
45 AWS_COMPUTEOPTIMIZER_API InstanceRecommendation() = default;
46 AWS_COMPUTEOPTIMIZER_API InstanceRecommendation(Aws::Utils::Json::JsonView jsonValue);
47 AWS_COMPUTEOPTIMIZER_API InstanceRecommendation& operator=(Aws::Utils::Json::JsonView jsonValue);
48 AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const;
49
51
54 inline const Aws::String& GetInstanceArn() const { return m_instanceArn; }
55 inline bool InstanceArnHasBeenSet() const { return m_instanceArnHasBeenSet; }
56 template <typename InstanceArnT = Aws::String>
57 void SetInstanceArn(InstanceArnT&& value) {
58 m_instanceArnHasBeenSet = true;
59 m_instanceArn = std::forward<InstanceArnT>(value);
60 }
61 template <typename InstanceArnT = Aws::String>
62 InstanceRecommendation& WithInstanceArn(InstanceArnT&& value) {
63 SetInstanceArn(std::forward<InstanceArnT>(value));
64 return *this;
65 }
67
69
72 inline const Aws::String& GetAccountId() const { return m_accountId; }
73 inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
74 template <typename AccountIdT = Aws::String>
75 void SetAccountId(AccountIdT&& value) {
76 m_accountIdHasBeenSet = true;
77 m_accountId = std::forward<AccountIdT>(value);
78 }
79 template <typename AccountIdT = Aws::String>
81 SetAccountId(std::forward<AccountIdT>(value));
82 return *this;
83 }
85
87
90 inline const Aws::String& GetInstanceName() const { return m_instanceName; }
91 inline bool InstanceNameHasBeenSet() const { return m_instanceNameHasBeenSet; }
92 template <typename InstanceNameT = Aws::String>
93 void SetInstanceName(InstanceNameT&& value) {
94 m_instanceNameHasBeenSet = true;
95 m_instanceName = std::forward<InstanceNameT>(value);
96 }
97 template <typename InstanceNameT = Aws::String>
98 InstanceRecommendation& WithInstanceName(InstanceNameT&& value) {
99 SetInstanceName(std::forward<InstanceNameT>(value));
100 return *this;
101 }
103
105
108 inline const Aws::String& GetCurrentInstanceType() const { return m_currentInstanceType; }
109 inline bool CurrentInstanceTypeHasBeenSet() const { return m_currentInstanceTypeHasBeenSet; }
110 template <typename CurrentInstanceTypeT = Aws::String>
111 void SetCurrentInstanceType(CurrentInstanceTypeT&& value) {
112 m_currentInstanceTypeHasBeenSet = true;
113 m_currentInstanceType = std::forward<CurrentInstanceTypeT>(value);
114 }
115 template <typename CurrentInstanceTypeT = Aws::String>
116 InstanceRecommendation& WithCurrentInstanceType(CurrentInstanceTypeT&& value) {
117 SetCurrentInstanceType(std::forward<CurrentInstanceTypeT>(value));
118 return *this;
119 }
121
123
142 inline Finding GetFinding() const { return m_finding; }
143 inline bool FindingHasBeenSet() const { return m_findingHasBeenSet; }
144 inline void SetFinding(Finding value) {
145 m_findingHasBeenSet = true;
146 m_finding = value;
147 }
149 SetFinding(value);
150 return *this;
151 }
153
155
260 inline const Aws::Vector<InstanceRecommendationFindingReasonCode>& GetFindingReasonCodes() const { return m_findingReasonCodes; }
261 inline bool FindingReasonCodesHasBeenSet() const { return m_findingReasonCodesHasBeenSet; }
262 template <typename FindingReasonCodesT = Aws::Vector<InstanceRecommendationFindingReasonCode>>
263 void SetFindingReasonCodes(FindingReasonCodesT&& value) {
264 m_findingReasonCodesHasBeenSet = true;
265 m_findingReasonCodes = std::forward<FindingReasonCodesT>(value);
266 }
267 template <typename FindingReasonCodesT = Aws::Vector<InstanceRecommendationFindingReasonCode>>
268 InstanceRecommendation& WithFindingReasonCodes(FindingReasonCodesT&& value) {
269 SetFindingReasonCodes(std::forward<FindingReasonCodesT>(value));
270 return *this;
271 }
273 m_findingReasonCodesHasBeenSet = true;
274 m_findingReasonCodes.push_back(value);
275 return *this;
276 }
278
280
284 inline const Aws::Vector<UtilizationMetric>& GetUtilizationMetrics() const { return m_utilizationMetrics; }
285 inline bool UtilizationMetricsHasBeenSet() const { return m_utilizationMetricsHasBeenSet; }
286 template <typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
287 void SetUtilizationMetrics(UtilizationMetricsT&& value) {
288 m_utilizationMetricsHasBeenSet = true;
289 m_utilizationMetrics = std::forward<UtilizationMetricsT>(value);
290 }
291 template <typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
292 InstanceRecommendation& WithUtilizationMetrics(UtilizationMetricsT&& value) {
293 SetUtilizationMetrics(std::forward<UtilizationMetricsT>(value));
294 return *this;
295 }
296 template <typename UtilizationMetricsT = UtilizationMetric>
297 InstanceRecommendation& AddUtilizationMetrics(UtilizationMetricsT&& value) {
298 m_utilizationMetricsHasBeenSet = true;
299 m_utilizationMetrics.emplace_back(std::forward<UtilizationMetricsT>(value));
300 return *this;
301 }
303
305
309 inline double GetLookBackPeriodInDays() const { return m_lookBackPeriodInDays; }
310 inline bool LookBackPeriodInDaysHasBeenSet() const { return m_lookBackPeriodInDaysHasBeenSet; }
311 inline void SetLookBackPeriodInDays(double value) {
312 m_lookBackPeriodInDaysHasBeenSet = true;
313 m_lookBackPeriodInDays = value;
314 }
317 return *this;
318 }
320
322
326 inline const Aws::Vector<InstanceRecommendationOption>& GetRecommendationOptions() const { return m_recommendationOptions; }
327 inline bool RecommendationOptionsHasBeenSet() const { return m_recommendationOptionsHasBeenSet; }
328 template <typename RecommendationOptionsT = Aws::Vector<InstanceRecommendationOption>>
329 void SetRecommendationOptions(RecommendationOptionsT&& value) {
330 m_recommendationOptionsHasBeenSet = true;
331 m_recommendationOptions = std::forward<RecommendationOptionsT>(value);
332 }
333 template <typename RecommendationOptionsT = Aws::Vector<InstanceRecommendationOption>>
334 InstanceRecommendation& WithRecommendationOptions(RecommendationOptionsT&& value) {
335 SetRecommendationOptions(std::forward<RecommendationOptionsT>(value));
336 return *this;
337 }
338 template <typename RecommendationOptionsT = InstanceRecommendationOption>
339 InstanceRecommendation& AddRecommendationOptions(RecommendationOptionsT&& value) {
340 m_recommendationOptionsHasBeenSet = true;
341 m_recommendationOptions.emplace_back(std::forward<RecommendationOptionsT>(value));
342 return *this;
343 }
345
347
351 inline const Aws::Vector<RecommendationSource>& GetRecommendationSources() const { return m_recommendationSources; }
352 inline bool RecommendationSourcesHasBeenSet() const { return m_recommendationSourcesHasBeenSet; }
353 template <typename RecommendationSourcesT = Aws::Vector<RecommendationSource>>
354 void SetRecommendationSources(RecommendationSourcesT&& value) {
355 m_recommendationSourcesHasBeenSet = true;
356 m_recommendationSources = std::forward<RecommendationSourcesT>(value);
357 }
358 template <typename RecommendationSourcesT = Aws::Vector<RecommendationSource>>
359 InstanceRecommendation& WithRecommendationSources(RecommendationSourcesT&& value) {
360 SetRecommendationSources(std::forward<RecommendationSourcesT>(value));
361 return *this;
362 }
363 template <typename RecommendationSourcesT = RecommendationSource>
364 InstanceRecommendation& AddRecommendationSources(RecommendationSourcesT&& value) {
365 m_recommendationSourcesHasBeenSet = true;
366 m_recommendationSources.emplace_back(std::forward<RecommendationSourcesT>(value));
367 return *this;
368 }
370
372
375 inline const Aws::Utils::DateTime& GetLastRefreshTimestamp() const { return m_lastRefreshTimestamp; }
376 inline bool LastRefreshTimestampHasBeenSet() const { return m_lastRefreshTimestampHasBeenSet; }
377 template <typename LastRefreshTimestampT = Aws::Utils::DateTime>
378 void SetLastRefreshTimestamp(LastRefreshTimestampT&& value) {
379 m_lastRefreshTimestampHasBeenSet = true;
380 m_lastRefreshTimestamp = std::forward<LastRefreshTimestampT>(value);
381 }
382 template <typename LastRefreshTimestampT = Aws::Utils::DateTime>
383 InstanceRecommendation& WithLastRefreshTimestamp(LastRefreshTimestampT&& value) {
384 SetLastRefreshTimestamp(std::forward<LastRefreshTimestampT>(value));
385 return *this;
386 }
388
390
395 inline CurrentPerformanceRisk GetCurrentPerformanceRisk() const { return m_currentPerformanceRisk; }
396 inline bool CurrentPerformanceRiskHasBeenSet() const { return m_currentPerformanceRiskHasBeenSet; }
398 m_currentPerformanceRiskHasBeenSet = true;
399 m_currentPerformanceRisk = value;
400 }
403 return *this;
404 }
406
408
413 return m_effectiveRecommendationPreferences;
414 }
415 inline bool EffectiveRecommendationPreferencesHasBeenSet() const { return m_effectiveRecommendationPreferencesHasBeenSet; }
416 template <typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
417 void SetEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT&& value) {
418 m_effectiveRecommendationPreferencesHasBeenSet = true;
419 m_effectiveRecommendationPreferences = std::forward<EffectiveRecommendationPreferencesT>(value);
420 }
421 template <typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
422 InstanceRecommendation& WithEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT&& value) {
423 SetEffectiveRecommendationPreferences(std::forward<EffectiveRecommendationPreferencesT>(value));
424 return *this;
425 }
427
429
447 inline const Aws::Vector<InferredWorkloadType>& GetInferredWorkloadTypes() const { return m_inferredWorkloadTypes; }
448 inline bool InferredWorkloadTypesHasBeenSet() const { return m_inferredWorkloadTypesHasBeenSet; }
449 template <typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
450 void SetInferredWorkloadTypes(InferredWorkloadTypesT&& value) {
451 m_inferredWorkloadTypesHasBeenSet = true;
452 m_inferredWorkloadTypes = std::forward<InferredWorkloadTypesT>(value);
453 }
454 template <typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
455 InstanceRecommendation& WithInferredWorkloadTypes(InferredWorkloadTypesT&& value) {
456 SetInferredWorkloadTypes(std::forward<InferredWorkloadTypesT>(value));
457 return *this;
458 }
460 m_inferredWorkloadTypesHasBeenSet = true;
461 m_inferredWorkloadTypes.push_back(value);
462 return *this;
463 }
465
467
470 inline InstanceState GetInstanceState() const { return m_instanceState; }
471 inline bool InstanceStateHasBeenSet() const { return m_instanceStateHasBeenSet; }
472 inline void SetInstanceState(InstanceState value) {
473 m_instanceStateHasBeenSet = true;
474 m_instanceState = value;
475 }
477 SetInstanceState(value);
478 return *this;
479 }
481
483
486 inline const Aws::Vector<Tag>& GetTags() const { return m_tags; }
487 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
488 template <typename TagsT = Aws::Vector<Tag>>
489 void SetTags(TagsT&& value) {
490 m_tagsHasBeenSet = true;
491 m_tags = std::forward<TagsT>(value);
492 }
493 template <typename TagsT = Aws::Vector<Tag>>
495 SetTags(std::forward<TagsT>(value));
496 return *this;
497 }
498 template <typename TagsT = Tag>
500 m_tagsHasBeenSet = true;
501 m_tags.emplace_back(std::forward<TagsT>(value));
502 return *this;
503 }
505
507
511 inline const ExternalMetricStatus& GetExternalMetricStatus() const { return m_externalMetricStatus; }
512 inline bool ExternalMetricStatusHasBeenSet() const { return m_externalMetricStatusHasBeenSet; }
513 template <typename ExternalMetricStatusT = ExternalMetricStatus>
514 void SetExternalMetricStatus(ExternalMetricStatusT&& value) {
515 m_externalMetricStatusHasBeenSet = true;
516 m_externalMetricStatus = std::forward<ExternalMetricStatusT>(value);
517 }
518 template <typename ExternalMetricStatusT = ExternalMetricStatus>
519 InstanceRecommendation& WithExternalMetricStatus(ExternalMetricStatusT&& value) {
520 SetExternalMetricStatus(std::forward<ExternalMetricStatusT>(value));
521 return *this;
522 }
524
526
529 inline const GpuInfo& GetCurrentInstanceGpuInfo() const { return m_currentInstanceGpuInfo; }
530 inline bool CurrentInstanceGpuInfoHasBeenSet() const { return m_currentInstanceGpuInfoHasBeenSet; }
531 template <typename CurrentInstanceGpuInfoT = GpuInfo>
532 void SetCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT&& value) {
533 m_currentInstanceGpuInfoHasBeenSet = true;
534 m_currentInstanceGpuInfo = std::forward<CurrentInstanceGpuInfoT>(value);
535 }
536 template <typename CurrentInstanceGpuInfoT = GpuInfo>
537 InstanceRecommendation& WithCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT&& value) {
538 SetCurrentInstanceGpuInfo(std::forward<CurrentInstanceGpuInfoT>(value));
539 return *this;
540 }
542
544
547 inline InstanceIdle GetIdle() const { return m_idle; }
548 inline bool IdleHasBeenSet() const { return m_idleHasBeenSet; }
549 inline void SetIdle(InstanceIdle value) {
550 m_idleHasBeenSet = true;
551 m_idle = value;
552 }
554 SetIdle(value);
555 return *this;
556 }
558 private:
559 Aws::String m_instanceArn;
560
561 Aws::String m_accountId;
562
563 Aws::String m_instanceName;
564
565 Aws::String m_currentInstanceType;
566
567 Finding m_finding{Finding::NOT_SET};
568
570
571 Aws::Vector<UtilizationMetric> m_utilizationMetrics;
572
573 double m_lookBackPeriodInDays{0.0};
574
575 Aws::Vector<InstanceRecommendationOption> m_recommendationOptions;
576
577 Aws::Vector<RecommendationSource> m_recommendationSources;
578
579 Aws::Utils::DateTime m_lastRefreshTimestamp{};
580
582
583 EffectiveRecommendationPreferences m_effectiveRecommendationPreferences;
584
585 Aws::Vector<InferredWorkloadType> m_inferredWorkloadTypes;
586
587 InstanceState m_instanceState{InstanceState::NOT_SET};
588
589 Aws::Vector<Tag> m_tags;
590
591 ExternalMetricStatus m_externalMetricStatus;
592
593 GpuInfo m_currentInstanceGpuInfo;
594
596 bool m_instanceArnHasBeenSet = false;
597 bool m_accountIdHasBeenSet = false;
598 bool m_instanceNameHasBeenSet = false;
599 bool m_currentInstanceTypeHasBeenSet = false;
600 bool m_findingHasBeenSet = false;
601 bool m_findingReasonCodesHasBeenSet = false;
602 bool m_utilizationMetricsHasBeenSet = false;
603 bool m_lookBackPeriodInDaysHasBeenSet = false;
604 bool m_recommendationOptionsHasBeenSet = false;
605 bool m_recommendationSourcesHasBeenSet = false;
606 bool m_lastRefreshTimestampHasBeenSet = false;
607 bool m_currentPerformanceRiskHasBeenSet = false;
608 bool m_effectiveRecommendationPreferencesHasBeenSet = false;
609 bool m_inferredWorkloadTypesHasBeenSet = false;
610 bool m_instanceStateHasBeenSet = false;
611 bool m_tagsHasBeenSet = false;
612 bool m_externalMetricStatusHasBeenSet = false;
613 bool m_currentInstanceGpuInfoHasBeenSet = false;
614 bool m_idleHasBeenSet = false;
615};
616
617} // namespace Model
618} // namespace ComputeOptimizer
619} // namespace Aws
const EffectiveRecommendationPreferences & GetEffectiveRecommendationPreferences() const
InstanceRecommendation & AddRecommendationSources(RecommendationSourcesT &&value)
InstanceRecommendation & WithIdle(InstanceIdle value)
InstanceRecommendation & AddFindingReasonCodes(InstanceRecommendationFindingReasonCode value)
AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const
const Aws::Vector< InstanceRecommendationOption > & GetRecommendationOptions() const
InstanceRecommendation & WithLastRefreshTimestamp(LastRefreshTimestampT &&value)
InstanceRecommendation & WithCurrentPerformanceRisk(CurrentPerformanceRisk value)
void SetRecommendationSources(RecommendationSourcesT &&value)
const Aws::Vector< UtilizationMetric > & GetUtilizationMetrics() const
void SetRecommendationOptions(RecommendationOptionsT &&value)
InstanceRecommendation & WithRecommendationOptions(RecommendationOptionsT &&value)
InstanceRecommendation & WithInstanceArn(InstanceArnT &&value)
InstanceRecommendation & WithCurrentInstanceType(CurrentInstanceTypeT &&value)
void SetCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT &&value)
InstanceRecommendation & WithAccountId(AccountIdT &&value)
InstanceRecommendation & WithInstanceName(InstanceNameT &&value)
InstanceRecommendation & WithRecommendationSources(RecommendationSourcesT &&value)
InstanceRecommendation & AddInferredWorkloadTypes(InferredWorkloadType value)
void SetEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT &&value)
InstanceRecommendation & AddUtilizationMetrics(UtilizationMetricsT &&value)
void SetLastRefreshTimestamp(LastRefreshTimestampT &&value)
AWS_COMPUTEOPTIMIZER_API InstanceRecommendation()=default
InstanceRecommendation & WithInstanceState(InstanceState value)
const Aws::Vector< InstanceRecommendationFindingReasonCode > & GetFindingReasonCodes() const
InstanceRecommendation & WithFindingReasonCodes(FindingReasonCodesT &&value)
InstanceRecommendation & WithUtilizationMetrics(UtilizationMetricsT &&value)
InstanceRecommendation & WithCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT &&value)
InstanceRecommendation & WithLookBackPeriodInDays(double value)
AWS_COMPUTEOPTIMIZER_API InstanceRecommendation(Aws::Utils::Json::JsonView jsonValue)
void SetInferredWorkloadTypes(InferredWorkloadTypesT &&value)
const ExternalMetricStatus & GetExternalMetricStatus() const
AWS_COMPUTEOPTIMIZER_API InstanceRecommendation & operator=(Aws::Utils::Json::JsonView jsonValue)
InstanceRecommendation & AddRecommendationOptions(RecommendationOptionsT &&value)
InstanceRecommendation & WithEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT &&value)
InstanceRecommendation & WithInferredWorkloadTypes(InferredWorkloadTypesT &&value)
const Aws::Utils::DateTime & GetLastRefreshTimestamp() const
const Aws::Vector< RecommendationSource > & GetRecommendationSources() const
InstanceRecommendation & WithExternalMetricStatus(ExternalMetricStatusT &&value)
void SetExternalMetricStatus(ExternalMetricStatusT &&value)
InstanceRecommendation & WithFinding(Finding value)
const Aws::Vector< InferredWorkloadType > & GetInferredWorkloadTypes() 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