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>
34namespace ComputeOptimizer {
56 template <
typename InstanceArnT = Aws::String>
58 m_instanceArnHasBeenSet =
true;
59 m_instanceArn = std::forward<InstanceArnT>(value);
61 template <
typename InstanceArnT = Aws::String>
74 template <
typename AccountIdT = Aws::String>
76 m_accountIdHasBeenSet =
true;
77 m_accountId = std::forward<AccountIdT>(value);
79 template <
typename AccountIdT = Aws::String>
92 template <
typename InstanceNameT = Aws::String>
94 m_instanceNameHasBeenSet =
true;
95 m_instanceName = std::forward<InstanceNameT>(value);
97 template <
typename InstanceNameT = Aws::String>
110 template <
typename CurrentInstanceTypeT = Aws::String>
112 m_currentInstanceTypeHasBeenSet =
true;
113 m_currentInstanceType = std::forward<CurrentInstanceTypeT>(value);
115 template <
typename CurrentInstanceTypeT = Aws::String>
145 m_findingHasBeenSet =
true;
262 template <
typename FindingReasonCodesT = Aws::Vector<InstanceRecommendationFindingReasonCode>>
264 m_findingReasonCodesHasBeenSet =
true;
265 m_findingReasonCodes = std::forward<FindingReasonCodesT>(value);
267 template <
typename FindingReasonCodesT = Aws::Vector<InstanceRecommendationFindingReasonCode>>
273 m_findingReasonCodesHasBeenSet =
true;
274 m_findingReasonCodes.push_back(value);
286 template <
typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
288 m_utilizationMetricsHasBeenSet =
true;
289 m_utilizationMetrics = std::forward<UtilizationMetricsT>(value);
291 template <
typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
296 template <
typename UtilizationMetricsT = UtilizationMetric>
298 m_utilizationMetricsHasBeenSet =
true;
299 m_utilizationMetrics.emplace_back(std::forward<UtilizationMetricsT>(value));
312 m_lookBackPeriodInDaysHasBeenSet =
true;
313 m_lookBackPeriodInDays = value;
328 template <
typename RecommendationOptionsT = Aws::Vector<InstanceRecommendationOption>>
330 m_recommendationOptionsHasBeenSet =
true;
331 m_recommendationOptions = std::forward<RecommendationOptionsT>(value);
333 template <
typename RecommendationOptionsT = Aws::Vector<InstanceRecommendationOption>>
338 template <
typename RecommendationOptionsT = InstanceRecommendationOption>
340 m_recommendationOptionsHasBeenSet =
true;
341 m_recommendationOptions.emplace_back(std::forward<RecommendationOptionsT>(value));
353 template <
typename RecommendationSourcesT = Aws::Vector<RecommendationSource>>
355 m_recommendationSourcesHasBeenSet =
true;
356 m_recommendationSources = std::forward<RecommendationSourcesT>(value);
358 template <
typename RecommendationSourcesT = Aws::Vector<RecommendationSource>>
363 template <
typename RecommendationSourcesT = RecommendationSource>
365 m_recommendationSourcesHasBeenSet =
true;
366 m_recommendationSources.emplace_back(std::forward<RecommendationSourcesT>(value));
377 template <
typename LastRefreshTimestampT = Aws::Utils::DateTime>
379 m_lastRefreshTimestampHasBeenSet =
true;
380 m_lastRefreshTimestamp = std::forward<LastRefreshTimestampT>(value);
382 template <
typename LastRefreshTimestampT = Aws::Utils::DateTime>
398 m_currentPerformanceRiskHasBeenSet =
true;
399 m_currentPerformanceRisk = value;
413 return m_effectiveRecommendationPreferences;
416 template <
typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
418 m_effectiveRecommendationPreferencesHasBeenSet =
true;
419 m_effectiveRecommendationPreferences = std::forward<EffectiveRecommendationPreferencesT>(value);
421 template <
typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
449 template <
typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
451 m_inferredWorkloadTypesHasBeenSet =
true;
452 m_inferredWorkloadTypes = std::forward<InferredWorkloadTypesT>(value);
454 template <
typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
460 m_inferredWorkloadTypesHasBeenSet =
true;
461 m_inferredWorkloadTypes.push_back(value);
473 m_instanceStateHasBeenSet =
true;
474 m_instanceState = value;
488 template <
typename TagsT = Aws::Vector<Tag>>
490 m_tagsHasBeenSet =
true;
491 m_tags = std::forward<TagsT>(value);
493 template <
typename TagsT = Aws::Vector<Tag>>
495 SetTags(std::forward<TagsT>(value));
498 template <
typename TagsT = Tag>
500 m_tagsHasBeenSet =
true;
501 m_tags.emplace_back(std::forward<TagsT>(value));
513 template <
typename ExternalMetricStatusT = ExternalMetricStatus>
515 m_externalMetricStatusHasBeenSet =
true;
516 m_externalMetricStatus = std::forward<ExternalMetricStatusT>(value);
518 template <
typename ExternalMetricStatusT = ExternalMetricStatus>
531 template <
typename CurrentInstanceGpuInfoT = GpuInfo>
533 m_currentInstanceGpuInfoHasBeenSet =
true;
534 m_currentInstanceGpuInfo = std::forward<CurrentInstanceGpuInfoT>(value);
536 template <
typename CurrentInstanceGpuInfoT = GpuInfo>
550 m_idleHasBeenSet =
true;
573 double m_lookBackPeriodInDays{0.0};
583 EffectiveRecommendationPreferences m_effectiveRecommendationPreferences;
591 ExternalMetricStatus m_externalMetricStatus;
593 GpuInfo m_currentInstanceGpuInfo;
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;
const EffectiveRecommendationPreferences & GetEffectiveRecommendationPreferences() const
InstanceRecommendation & AddRecommendationSources(RecommendationSourcesT &&value)
void SetIdle(InstanceIdle value)
InstanceRecommendation & WithIdle(InstanceIdle value)
const Aws::String & GetAccountId() const
InstanceRecommendation & AddFindingReasonCodes(InstanceRecommendationFindingReasonCode value)
AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const
bool CurrentInstanceGpuInfoHasBeenSet() const
const Aws::Vector< InstanceRecommendationOption > & GetRecommendationOptions() const
InstanceRecommendation & WithLastRefreshTimestamp(LastRefreshTimestampT &&value)
bool InstanceNameHasBeenSet() const
void SetAccountId(AccountIdT &&value)
void SetInstanceState(InstanceState value)
Finding GetFinding() const
InstanceRecommendation & WithCurrentPerformanceRisk(CurrentPerformanceRisk value)
void SetInstanceName(InstanceNameT &&value)
InstanceIdle GetIdle() const
bool TagsHasBeenSet() const
bool RecommendationSourcesHasBeenSet() const
void SetRecommendationSources(RecommendationSourcesT &&value)
const Aws::Vector< UtilizationMetric > & GetUtilizationMetrics() const
bool FindingReasonCodesHasBeenSet() const
bool CurrentPerformanceRiskHasBeenSet() const
void SetRecommendationOptions(RecommendationOptionsT &&value)
InstanceRecommendation & WithRecommendationOptions(RecommendationOptionsT &&value)
InstanceRecommendation & AddTags(TagsT &&value)
InstanceRecommendation & WithInstanceArn(InstanceArnT &&value)
void SetLookBackPeriodInDays(double value)
InstanceRecommendation & WithCurrentInstanceType(CurrentInstanceTypeT &&value)
void SetCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT &&value)
InstanceRecommendation & WithAccountId(AccountIdT &&value)
double GetLookBackPeriodInDays() const
InstanceRecommendation & WithInstanceName(InstanceNameT &&value)
CurrentPerformanceRisk GetCurrentPerformanceRisk() const
void SetFindingReasonCodes(FindingReasonCodesT &&value)
InstanceRecommendation & WithRecommendationSources(RecommendationSourcesT &&value)
InstanceRecommendation & AddInferredWorkloadTypes(InferredWorkloadType value)
InstanceState GetInstanceState() const
bool LastRefreshTimestampHasBeenSet() const
void SetEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT &&value)
bool InstanceArnHasBeenSet() const
InstanceRecommendation & AddUtilizationMetrics(UtilizationMetricsT &&value)
const Aws::String & GetInstanceArn() const
void SetLastRefreshTimestamp(LastRefreshTimestampT &&value)
void SetTags(TagsT &&value)
InstanceRecommendation & WithTags(TagsT &&value)
bool EffectiveRecommendationPreferencesHasBeenSet() const
bool InferredWorkloadTypesHasBeenSet() const
AWS_COMPUTEOPTIMIZER_API InstanceRecommendation()=default
bool IdleHasBeenSet() const
InstanceRecommendation & WithInstanceState(InstanceState value)
const Aws::Vector< InstanceRecommendationFindingReasonCode > & GetFindingReasonCodes() const
InstanceRecommendation & WithFindingReasonCodes(FindingReasonCodesT &&value)
bool RecommendationOptionsHasBeenSet() const
InstanceRecommendation & WithUtilizationMetrics(UtilizationMetricsT &&value)
bool AccountIdHasBeenSet() const
void SetUtilizationMetrics(UtilizationMetricsT &&value)
bool CurrentInstanceTypeHasBeenSet() const
InstanceRecommendation & WithCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT &&value)
InstanceRecommendation & WithLookBackPeriodInDays(double value)
void SetCurrentInstanceType(CurrentInstanceTypeT &&value)
const Aws::String & GetInstanceName() const
AWS_COMPUTEOPTIMIZER_API InstanceRecommendation(Aws::Utils::Json::JsonView jsonValue)
void SetInferredWorkloadTypes(InferredWorkloadTypesT &&value)
const GpuInfo & GetCurrentInstanceGpuInfo() const
const ExternalMetricStatus & GetExternalMetricStatus() const
const Aws::String & GetCurrentInstanceType() const
AWS_COMPUTEOPTIMIZER_API InstanceRecommendation & operator=(Aws::Utils::Json::JsonView jsonValue)
InstanceRecommendation & AddRecommendationOptions(RecommendationOptionsT &&value)
InstanceRecommendation & WithEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT &&value)
bool LookBackPeriodInDaysHasBeenSet() const
InstanceRecommendation & WithInferredWorkloadTypes(InferredWorkloadTypesT &&value)
const Aws::Vector< Tag > & GetTags() const
bool FindingHasBeenSet() const
void SetFinding(Finding value)
void SetCurrentPerformanceRisk(CurrentPerformanceRisk value)
void SetInstanceArn(InstanceArnT &&value)
bool UtilizationMetricsHasBeenSet() const
bool InstanceStateHasBeenSet() const
const Aws::Utils::DateTime & GetLastRefreshTimestamp() const
bool ExternalMetricStatusHasBeenSet() 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
InstanceRecommendationFindingReasonCode
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue