AWS SDK for C++

AWS SDK for C++ Version 1.11.607

Loading...
Searching...
No Matches
InstanceRecommendation.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/Finding.h>
10#include <aws/core/utils/memory/stl/AWSVector.h>
11#include <aws/core/utils/DateTime.h>
12#include <aws/compute-optimizer/model/CurrentPerformanceRisk.h>
13#include <aws/compute-optimizer/model/EffectiveRecommendationPreferences.h>
14#include <aws/compute-optimizer/model/InstanceState.h>
15#include <aws/compute-optimizer/model/ExternalMetricStatus.h>
16#include <aws/compute-optimizer/model/GpuInfo.h>
17#include <aws/compute-optimizer/model/InstanceIdle.h>
18#include <aws/compute-optimizer/model/InstanceRecommendationFindingReasonCode.h>
19#include <aws/compute-optimizer/model/UtilizationMetric.h>
20#include <aws/compute-optimizer/model/InstanceRecommendationOption.h>
21#include <aws/compute-optimizer/model/RecommendationSource.h>
22#include <aws/compute-optimizer/model/InferredWorkloadType.h>
23#include <aws/compute-optimizer/model/Tag.h>
24#include <utility>
25
26namespace Aws
27{
28namespace Utils
29{
30namespace Json
31{
32 class JsonValue;
33 class JsonView;
34} // namespace Json
35} // namespace Utils
36namespace ComputeOptimizer
37{
38namespace Model
39{
40
48 {
49 public:
50 AWS_COMPUTEOPTIMIZER_API InstanceRecommendation() = default;
51 AWS_COMPUTEOPTIMIZER_API InstanceRecommendation(Aws::Utils::Json::JsonView jsonValue);
52 AWS_COMPUTEOPTIMIZER_API InstanceRecommendation& operator=(Aws::Utils::Json::JsonView jsonValue);
53 AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const;
54
55
57
60 inline const Aws::String& GetInstanceArn() const { return m_instanceArn; }
61 inline bool InstanceArnHasBeenSet() const { return m_instanceArnHasBeenSet; }
62 template<typename InstanceArnT = Aws::String>
63 void SetInstanceArn(InstanceArnT&& value) { m_instanceArnHasBeenSet = true; m_instanceArn = std::forward<InstanceArnT>(value); }
64 template<typename InstanceArnT = Aws::String>
65 InstanceRecommendation& WithInstanceArn(InstanceArnT&& value) { SetInstanceArn(std::forward<InstanceArnT>(value)); return *this;}
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) { m_accountIdHasBeenSet = true; m_accountId = std::forward<AccountIdT>(value); }
76 template<typename AccountIdT = Aws::String>
77 InstanceRecommendation& WithAccountId(AccountIdT&& value) { SetAccountId(std::forward<AccountIdT>(value)); return *this;}
79
81
84 inline const Aws::String& GetInstanceName() const { return m_instanceName; }
85 inline bool InstanceNameHasBeenSet() const { return m_instanceNameHasBeenSet; }
86 template<typename InstanceNameT = Aws::String>
87 void SetInstanceName(InstanceNameT&& value) { m_instanceNameHasBeenSet = true; m_instanceName = std::forward<InstanceNameT>(value); }
88 template<typename InstanceNameT = Aws::String>
89 InstanceRecommendation& WithInstanceName(InstanceNameT&& value) { SetInstanceName(std::forward<InstanceNameT>(value)); return *this;}
91
93
96 inline const Aws::String& GetCurrentInstanceType() const { return m_currentInstanceType; }
97 inline bool CurrentInstanceTypeHasBeenSet() const { return m_currentInstanceTypeHasBeenSet; }
98 template<typename CurrentInstanceTypeT = Aws::String>
99 void SetCurrentInstanceType(CurrentInstanceTypeT&& value) { m_currentInstanceTypeHasBeenSet = true; m_currentInstanceType = std::forward<CurrentInstanceTypeT>(value); }
100 template<typename CurrentInstanceTypeT = Aws::String>
101 InstanceRecommendation& WithCurrentInstanceType(CurrentInstanceTypeT&& value) { SetCurrentInstanceType(std::forward<CurrentInstanceTypeT>(value)); return *this;}
103
105
124 inline Finding GetFinding() const { return m_finding; }
125 inline bool FindingHasBeenSet() const { return m_findingHasBeenSet; }
126 inline void SetFinding(Finding value) { m_findingHasBeenSet = true; m_finding = value; }
127 inline InstanceRecommendation& WithFinding(Finding value) { SetFinding(value); return *this;}
129
131
236 inline const Aws::Vector<InstanceRecommendationFindingReasonCode>& GetFindingReasonCodes() const { return m_findingReasonCodes; }
237 inline bool FindingReasonCodesHasBeenSet() const { return m_findingReasonCodesHasBeenSet; }
238 template<typename FindingReasonCodesT = Aws::Vector<InstanceRecommendationFindingReasonCode>>
239 void SetFindingReasonCodes(FindingReasonCodesT&& value) { m_findingReasonCodesHasBeenSet = true; m_findingReasonCodes = std::forward<FindingReasonCodesT>(value); }
240 template<typename FindingReasonCodesT = Aws::Vector<InstanceRecommendationFindingReasonCode>>
241 InstanceRecommendation& WithFindingReasonCodes(FindingReasonCodesT&& value) { SetFindingReasonCodes(std::forward<FindingReasonCodesT>(value)); return *this;}
242 inline InstanceRecommendation& AddFindingReasonCodes(InstanceRecommendationFindingReasonCode value) { m_findingReasonCodesHasBeenSet = true; m_findingReasonCodes.push_back(value); return *this; }
244
246
250 inline const Aws::Vector<UtilizationMetric>& GetUtilizationMetrics() const { return m_utilizationMetrics; }
251 inline bool UtilizationMetricsHasBeenSet() const { return m_utilizationMetricsHasBeenSet; }
252 template<typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
253 void SetUtilizationMetrics(UtilizationMetricsT&& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics = std::forward<UtilizationMetricsT>(value); }
254 template<typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
255 InstanceRecommendation& WithUtilizationMetrics(UtilizationMetricsT&& value) { SetUtilizationMetrics(std::forward<UtilizationMetricsT>(value)); return *this;}
256 template<typename UtilizationMetricsT = UtilizationMetric>
257 InstanceRecommendation& AddUtilizationMetrics(UtilizationMetricsT&& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics.emplace_back(std::forward<UtilizationMetricsT>(value)); return *this; }
259
261
265 inline double GetLookBackPeriodInDays() const { return m_lookBackPeriodInDays; }
266 inline bool LookBackPeriodInDaysHasBeenSet() const { return m_lookBackPeriodInDaysHasBeenSet; }
267 inline void SetLookBackPeriodInDays(double value) { m_lookBackPeriodInDaysHasBeenSet = true; m_lookBackPeriodInDays = value; }
268 inline InstanceRecommendation& WithLookBackPeriodInDays(double value) { SetLookBackPeriodInDays(value); return *this;}
270
272
276 inline const Aws::Vector<InstanceRecommendationOption>& GetRecommendationOptions() const { return m_recommendationOptions; }
277 inline bool RecommendationOptionsHasBeenSet() const { return m_recommendationOptionsHasBeenSet; }
278 template<typename RecommendationOptionsT = Aws::Vector<InstanceRecommendationOption>>
279 void SetRecommendationOptions(RecommendationOptionsT&& value) { m_recommendationOptionsHasBeenSet = true; m_recommendationOptions = std::forward<RecommendationOptionsT>(value); }
280 template<typename RecommendationOptionsT = Aws::Vector<InstanceRecommendationOption>>
281 InstanceRecommendation& WithRecommendationOptions(RecommendationOptionsT&& value) { SetRecommendationOptions(std::forward<RecommendationOptionsT>(value)); return *this;}
282 template<typename RecommendationOptionsT = InstanceRecommendationOption>
283 InstanceRecommendation& AddRecommendationOptions(RecommendationOptionsT&& value) { m_recommendationOptionsHasBeenSet = true; m_recommendationOptions.emplace_back(std::forward<RecommendationOptionsT>(value)); return *this; }
285
287
291 inline const Aws::Vector<RecommendationSource>& GetRecommendationSources() const { return m_recommendationSources; }
292 inline bool RecommendationSourcesHasBeenSet() const { return m_recommendationSourcesHasBeenSet; }
293 template<typename RecommendationSourcesT = Aws::Vector<RecommendationSource>>
294 void SetRecommendationSources(RecommendationSourcesT&& value) { m_recommendationSourcesHasBeenSet = true; m_recommendationSources = std::forward<RecommendationSourcesT>(value); }
295 template<typename RecommendationSourcesT = Aws::Vector<RecommendationSource>>
296 InstanceRecommendation& WithRecommendationSources(RecommendationSourcesT&& value) { SetRecommendationSources(std::forward<RecommendationSourcesT>(value)); return *this;}
297 template<typename RecommendationSourcesT = RecommendationSource>
298 InstanceRecommendation& AddRecommendationSources(RecommendationSourcesT&& value) { m_recommendationSourcesHasBeenSet = true; m_recommendationSources.emplace_back(std::forward<RecommendationSourcesT>(value)); return *this; }
300
302
305 inline const Aws::Utils::DateTime& GetLastRefreshTimestamp() const { return m_lastRefreshTimestamp; }
306 inline bool LastRefreshTimestampHasBeenSet() const { return m_lastRefreshTimestampHasBeenSet; }
307 template<typename LastRefreshTimestampT = Aws::Utils::DateTime>
308 void SetLastRefreshTimestamp(LastRefreshTimestampT&& value) { m_lastRefreshTimestampHasBeenSet = true; m_lastRefreshTimestamp = std::forward<LastRefreshTimestampT>(value); }
309 template<typename LastRefreshTimestampT = Aws::Utils::DateTime>
310 InstanceRecommendation& WithLastRefreshTimestamp(LastRefreshTimestampT&& value) { SetLastRefreshTimestamp(std::forward<LastRefreshTimestampT>(value)); return *this;}
312
314
319 inline CurrentPerformanceRisk GetCurrentPerformanceRisk() const { return m_currentPerformanceRisk; }
320 inline bool CurrentPerformanceRiskHasBeenSet() const { return m_currentPerformanceRiskHasBeenSet; }
321 inline void SetCurrentPerformanceRisk(CurrentPerformanceRisk value) { m_currentPerformanceRiskHasBeenSet = true; m_currentPerformanceRisk = value; }
324
326
330 inline const EffectiveRecommendationPreferences& GetEffectiveRecommendationPreferences() const { return m_effectiveRecommendationPreferences; }
331 inline bool EffectiveRecommendationPreferencesHasBeenSet() const { return m_effectiveRecommendationPreferencesHasBeenSet; }
332 template<typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
333 void SetEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT&& value) { m_effectiveRecommendationPreferencesHasBeenSet = true; m_effectiveRecommendationPreferences = std::forward<EffectiveRecommendationPreferencesT>(value); }
334 template<typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
335 InstanceRecommendation& WithEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT&& value) { SetEffectiveRecommendationPreferences(std::forward<EffectiveRecommendationPreferencesT>(value)); return *this;}
337
339
357 inline const Aws::Vector<InferredWorkloadType>& GetInferredWorkloadTypes() const { return m_inferredWorkloadTypes; }
358 inline bool InferredWorkloadTypesHasBeenSet() const { return m_inferredWorkloadTypesHasBeenSet; }
359 template<typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
360 void SetInferredWorkloadTypes(InferredWorkloadTypesT&& value) { m_inferredWorkloadTypesHasBeenSet = true; m_inferredWorkloadTypes = std::forward<InferredWorkloadTypesT>(value); }
361 template<typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
362 InstanceRecommendation& WithInferredWorkloadTypes(InferredWorkloadTypesT&& value) { SetInferredWorkloadTypes(std::forward<InferredWorkloadTypesT>(value)); return *this;}
363 inline InstanceRecommendation& AddInferredWorkloadTypes(InferredWorkloadType value) { m_inferredWorkloadTypesHasBeenSet = true; m_inferredWorkloadTypes.push_back(value); return *this; }
365
367
370 inline InstanceState GetInstanceState() const { return m_instanceState; }
371 inline bool InstanceStateHasBeenSet() const { return m_instanceStateHasBeenSet; }
372 inline void SetInstanceState(InstanceState value) { m_instanceStateHasBeenSet = true; m_instanceState = value; }
375
377
380 inline const Aws::Vector<Tag>& GetTags() const { return m_tags; }
381 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
382 template<typename TagsT = Aws::Vector<Tag>>
383 void SetTags(TagsT&& value) { m_tagsHasBeenSet = true; m_tags = std::forward<TagsT>(value); }
384 template<typename TagsT = Aws::Vector<Tag>>
385 InstanceRecommendation& WithTags(TagsT&& value) { SetTags(std::forward<TagsT>(value)); return *this;}
386 template<typename TagsT = Tag>
387 InstanceRecommendation& AddTags(TagsT&& value) { m_tagsHasBeenSet = true; m_tags.emplace_back(std::forward<TagsT>(value)); return *this; }
389
391
395 inline const ExternalMetricStatus& GetExternalMetricStatus() const { return m_externalMetricStatus; }
396 inline bool ExternalMetricStatusHasBeenSet() const { return m_externalMetricStatusHasBeenSet; }
397 template<typename ExternalMetricStatusT = ExternalMetricStatus>
398 void SetExternalMetricStatus(ExternalMetricStatusT&& value) { m_externalMetricStatusHasBeenSet = true; m_externalMetricStatus = std::forward<ExternalMetricStatusT>(value); }
399 template<typename ExternalMetricStatusT = ExternalMetricStatus>
400 InstanceRecommendation& WithExternalMetricStatus(ExternalMetricStatusT&& value) { SetExternalMetricStatus(std::forward<ExternalMetricStatusT>(value)); return *this;}
402
404
407 inline const GpuInfo& GetCurrentInstanceGpuInfo() const { return m_currentInstanceGpuInfo; }
408 inline bool CurrentInstanceGpuInfoHasBeenSet() const { return m_currentInstanceGpuInfoHasBeenSet; }
409 template<typename CurrentInstanceGpuInfoT = GpuInfo>
410 void SetCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT&& value) { m_currentInstanceGpuInfoHasBeenSet = true; m_currentInstanceGpuInfo = std::forward<CurrentInstanceGpuInfoT>(value); }
411 template<typename CurrentInstanceGpuInfoT = GpuInfo>
412 InstanceRecommendation& WithCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT&& value) { SetCurrentInstanceGpuInfo(std::forward<CurrentInstanceGpuInfoT>(value)); return *this;}
414
416
419 inline InstanceIdle GetIdle() const { return m_idle; }
420 inline bool IdleHasBeenSet() const { return m_idleHasBeenSet; }
421 inline void SetIdle(InstanceIdle value) { m_idleHasBeenSet = true; m_idle = value; }
422 inline InstanceRecommendation& WithIdle(InstanceIdle value) { SetIdle(value); return *this;}
424 private:
425
426 Aws::String m_instanceArn;
427 bool m_instanceArnHasBeenSet = false;
428
429 Aws::String m_accountId;
430 bool m_accountIdHasBeenSet = false;
431
432 Aws::String m_instanceName;
433 bool m_instanceNameHasBeenSet = false;
434
435 Aws::String m_currentInstanceType;
436 bool m_currentInstanceTypeHasBeenSet = false;
437
438 Finding m_finding{Finding::NOT_SET};
439 bool m_findingHasBeenSet = false;
440
442 bool m_findingReasonCodesHasBeenSet = false;
443
444 Aws::Vector<UtilizationMetric> m_utilizationMetrics;
445 bool m_utilizationMetricsHasBeenSet = false;
446
447 double m_lookBackPeriodInDays{0.0};
448 bool m_lookBackPeriodInDaysHasBeenSet = false;
449
450 Aws::Vector<InstanceRecommendationOption> m_recommendationOptions;
451 bool m_recommendationOptionsHasBeenSet = false;
452
453 Aws::Vector<RecommendationSource> m_recommendationSources;
454 bool m_recommendationSourcesHasBeenSet = false;
455
456 Aws::Utils::DateTime m_lastRefreshTimestamp{};
457 bool m_lastRefreshTimestampHasBeenSet = false;
458
460 bool m_currentPerformanceRiskHasBeenSet = false;
461
462 EffectiveRecommendationPreferences m_effectiveRecommendationPreferences;
463 bool m_effectiveRecommendationPreferencesHasBeenSet = false;
464
465 Aws::Vector<InferredWorkloadType> m_inferredWorkloadTypes;
466 bool m_inferredWorkloadTypesHasBeenSet = false;
467
468 InstanceState m_instanceState{InstanceState::NOT_SET};
469 bool m_instanceStateHasBeenSet = false;
470
471 Aws::Vector<Tag> m_tags;
472 bool m_tagsHasBeenSet = false;
473
474 ExternalMetricStatus m_externalMetricStatus;
475 bool m_externalMetricStatusHasBeenSet = false;
476
477 GpuInfo m_currentInstanceGpuInfo;
478 bool m_currentInstanceGpuInfoHasBeenSet = false;
479
481 bool m_idleHasBeenSet = false;
482 };
483
484} // namespace Model
485} // namespace ComputeOptimizer
486} // 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