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>
36namespace ComputeOptimizer
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>
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>
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>
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>
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>>
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>>
256 template<
typename UtilizationMetricsT = UtilizationMetric>
267 inline void SetLookBackPeriodInDays(
double value) { m_lookBackPeriodInDaysHasBeenSet =
true; m_lookBackPeriodInDays = value; }
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>>
282 template<
typename RecommendationOptionsT = InstanceRecommendationOption>
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>>
297 template<
typename RecommendationSourcesT = RecommendationSource>
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>
332 template<
typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
333 void SetEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT&& value) { m_effectiveRecommendationPreferencesHasBeenSet =
true; m_effectiveRecommendationPreferences = std::forward<EffectiveRecommendationPreferencesT>(value); }
334 template<
typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
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>>
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>>
386 template<
typename TagsT = Tag>
397 template<
typename ExternalMetricStatusT = ExternalMetricStatus>
398 void SetExternalMetricStatus(ExternalMetricStatusT&& value) { m_externalMetricStatusHasBeenSet =
true; m_externalMetricStatus = std::forward<ExternalMetricStatusT>(value); }
399 template<
typename ExternalMetricStatusT = ExternalMetricStatus>
409 template<
typename CurrentInstanceGpuInfoT = GpuInfo>
410 void SetCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT&& value) { m_currentInstanceGpuInfoHasBeenSet =
true; m_currentInstanceGpuInfo = std::forward<CurrentInstanceGpuInfoT>(value); }
411 template<
typename CurrentInstanceGpuInfoT = GpuInfo>
427 bool m_instanceArnHasBeenSet =
false;
430 bool m_accountIdHasBeenSet =
false;
433 bool m_instanceNameHasBeenSet =
false;
436 bool m_currentInstanceTypeHasBeenSet =
false;
439 bool m_findingHasBeenSet =
false;
442 bool m_findingReasonCodesHasBeenSet =
false;
445 bool m_utilizationMetricsHasBeenSet =
false;
447 double m_lookBackPeriodInDays{0.0};
448 bool m_lookBackPeriodInDaysHasBeenSet =
false;
451 bool m_recommendationOptionsHasBeenSet =
false;
454 bool m_recommendationSourcesHasBeenSet =
false;
457 bool m_lastRefreshTimestampHasBeenSet =
false;
460 bool m_currentPerformanceRiskHasBeenSet =
false;
462 EffectiveRecommendationPreferences m_effectiveRecommendationPreferences;
463 bool m_effectiveRecommendationPreferencesHasBeenSet =
false;
466 bool m_inferredWorkloadTypesHasBeenSet =
false;
469 bool m_instanceStateHasBeenSet =
false;
472 bool m_tagsHasBeenSet =
false;
474 ExternalMetricStatus m_externalMetricStatus;
475 bool m_externalMetricStatusHasBeenSet =
false;
477 GpuInfo m_currentInstanceGpuInfo;
478 bool m_currentInstanceGpuInfoHasBeenSet =
false;
481 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