/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ComputeOptimizer { namespace Model { /** *

Describes an Lambda function recommendation.

See Also:

AWS * API Reference

*/ class LambdaFunctionRecommendation { public: AWS_COMPUTEOPTIMIZER_API LambdaFunctionRecommendation(); AWS_COMPUTEOPTIMIZER_API LambdaFunctionRecommendation(Aws::Utils::Json::JsonView jsonValue); AWS_COMPUTEOPTIMIZER_API LambdaFunctionRecommendation& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The Amazon Resource Name (ARN) of the current function.

*/ inline const Aws::String& GetFunctionArn() const{ return m_functionArn; } /** *

The Amazon Resource Name (ARN) of the current function.

*/ inline bool FunctionArnHasBeenSet() const { return m_functionArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the current function.

*/ inline void SetFunctionArn(const Aws::String& value) { m_functionArnHasBeenSet = true; m_functionArn = value; } /** *

The Amazon Resource Name (ARN) of the current function.

*/ inline void SetFunctionArn(Aws::String&& value) { m_functionArnHasBeenSet = true; m_functionArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the current function.

*/ inline void SetFunctionArn(const char* value) { m_functionArnHasBeenSet = true; m_functionArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the current function.

*/ inline LambdaFunctionRecommendation& WithFunctionArn(const Aws::String& value) { SetFunctionArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the current function.

*/ inline LambdaFunctionRecommendation& WithFunctionArn(Aws::String&& value) { SetFunctionArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the current function.

*/ inline LambdaFunctionRecommendation& WithFunctionArn(const char* value) { SetFunctionArn(value); return *this;} /** *

The version number of the current function.

*/ inline const Aws::String& GetFunctionVersion() const{ return m_functionVersion; } /** *

The version number of the current function.

*/ inline bool FunctionVersionHasBeenSet() const { return m_functionVersionHasBeenSet; } /** *

The version number of the current function.

*/ inline void SetFunctionVersion(const Aws::String& value) { m_functionVersionHasBeenSet = true; m_functionVersion = value; } /** *

The version number of the current function.

*/ inline void SetFunctionVersion(Aws::String&& value) { m_functionVersionHasBeenSet = true; m_functionVersion = std::move(value); } /** *

The version number of the current function.

*/ inline void SetFunctionVersion(const char* value) { m_functionVersionHasBeenSet = true; m_functionVersion.assign(value); } /** *

The version number of the current function.

*/ inline LambdaFunctionRecommendation& WithFunctionVersion(const Aws::String& value) { SetFunctionVersion(value); return *this;} /** *

The version number of the current function.

*/ inline LambdaFunctionRecommendation& WithFunctionVersion(Aws::String&& value) { SetFunctionVersion(std::move(value)); return *this;} /** *

The version number of the current function.

*/ inline LambdaFunctionRecommendation& WithFunctionVersion(const char* value) { SetFunctionVersion(value); return *this;} /** *

The Amazon Web Services account ID of the function.

*/ inline const Aws::String& GetAccountId() const{ return m_accountId; } /** *

The Amazon Web Services account ID of the function.

*/ inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; } /** *

The Amazon Web Services account ID of the function.

*/ inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; } /** *

The Amazon Web Services account ID of the function.

*/ inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); } /** *

The Amazon Web Services account ID of the function.

*/ inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); } /** *

The Amazon Web Services account ID of the function.

*/ inline LambdaFunctionRecommendation& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;} /** *

The Amazon Web Services account ID of the function.

*/ inline LambdaFunctionRecommendation& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;} /** *

The Amazon Web Services account ID of the function.

*/ inline LambdaFunctionRecommendation& WithAccountId(const char* value) { SetAccountId(value); return *this;} /** *

The amount of memory, in MB, that's allocated to the current function.

*/ inline int GetCurrentMemorySize() const{ return m_currentMemorySize; } /** *

The amount of memory, in MB, that's allocated to the current function.

*/ inline bool CurrentMemorySizeHasBeenSet() const { return m_currentMemorySizeHasBeenSet; } /** *

The amount of memory, in MB, that's allocated to the current function.

*/ inline void SetCurrentMemorySize(int value) { m_currentMemorySizeHasBeenSet = true; m_currentMemorySize = value; } /** *

The amount of memory, in MB, that's allocated to the current function.

*/ inline LambdaFunctionRecommendation& WithCurrentMemorySize(int value) { SetCurrentMemorySize(value); return *this;} /** *

The number of times your function code was applied during the look-back * period.

*/ inline long long GetNumberOfInvocations() const{ return m_numberOfInvocations; } /** *

The number of times your function code was applied during the look-back * period.

*/ inline bool NumberOfInvocationsHasBeenSet() const { return m_numberOfInvocationsHasBeenSet; } /** *

The number of times your function code was applied during the look-back * period.

*/ inline void SetNumberOfInvocations(long long value) { m_numberOfInvocationsHasBeenSet = true; m_numberOfInvocations = value; } /** *

The number of times your function code was applied during the look-back * period.

*/ inline LambdaFunctionRecommendation& WithNumberOfInvocations(long long value) { SetNumberOfInvocations(value); return *this;} /** *

An array of objects that describe the utilization metrics of the * function.

*/ inline const Aws::Vector& GetUtilizationMetrics() const{ return m_utilizationMetrics; } /** *

An array of objects that describe the utilization metrics of the * function.

*/ inline bool UtilizationMetricsHasBeenSet() const { return m_utilizationMetricsHasBeenSet; } /** *

An array of objects that describe the utilization metrics of the * function.

*/ inline void SetUtilizationMetrics(const Aws::Vector& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics = value; } /** *

An array of objects that describe the utilization metrics of the * function.

*/ inline void SetUtilizationMetrics(Aws::Vector&& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics = std::move(value); } /** *

An array of objects that describe the utilization metrics of the * function.

*/ inline LambdaFunctionRecommendation& WithUtilizationMetrics(const Aws::Vector& value) { SetUtilizationMetrics(value); return *this;} /** *

An array of objects that describe the utilization metrics of the * function.

*/ inline LambdaFunctionRecommendation& WithUtilizationMetrics(Aws::Vector&& value) { SetUtilizationMetrics(std::move(value)); return *this;} /** *

An array of objects that describe the utilization metrics of the * function.

*/ inline LambdaFunctionRecommendation& AddUtilizationMetrics(const LambdaFunctionUtilizationMetric& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics.push_back(value); return *this; } /** *

An array of objects that describe the utilization metrics of the * function.

*/ inline LambdaFunctionRecommendation& AddUtilizationMetrics(LambdaFunctionUtilizationMetric&& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics.push_back(std::move(value)); return *this; } /** *

The number of days for which utilization metrics were analyzed for the * function.

*/ inline double GetLookbackPeriodInDays() const{ return m_lookbackPeriodInDays; } /** *

The number of days for which utilization metrics were analyzed for the * function.

*/ inline bool LookbackPeriodInDaysHasBeenSet() const { return m_lookbackPeriodInDaysHasBeenSet; } /** *

The number of days for which utilization metrics were analyzed for the * function.

*/ inline void SetLookbackPeriodInDays(double value) { m_lookbackPeriodInDaysHasBeenSet = true; m_lookbackPeriodInDays = value; } /** *

The number of days for which utilization metrics were analyzed for the * function.

*/ inline LambdaFunctionRecommendation& WithLookbackPeriodInDays(double value) { SetLookbackPeriodInDays(value); return *this;} /** *

The timestamp of when the function recommendation was last generated.

*/ inline const Aws::Utils::DateTime& GetLastRefreshTimestamp() const{ return m_lastRefreshTimestamp; } /** *

The timestamp of when the function recommendation was last generated.

*/ inline bool LastRefreshTimestampHasBeenSet() const { return m_lastRefreshTimestampHasBeenSet; } /** *

The timestamp of when the function recommendation was last generated.

*/ inline void SetLastRefreshTimestamp(const Aws::Utils::DateTime& value) { m_lastRefreshTimestampHasBeenSet = true; m_lastRefreshTimestamp = value; } /** *

The timestamp of when the function recommendation was last generated.

*/ inline void SetLastRefreshTimestamp(Aws::Utils::DateTime&& value) { m_lastRefreshTimestampHasBeenSet = true; m_lastRefreshTimestamp = std::move(value); } /** *

The timestamp of when the function recommendation was last generated.

*/ inline LambdaFunctionRecommendation& WithLastRefreshTimestamp(const Aws::Utils::DateTime& value) { SetLastRefreshTimestamp(value); return *this;} /** *

The timestamp of when the function recommendation was last generated.

*/ inline LambdaFunctionRecommendation& WithLastRefreshTimestamp(Aws::Utils::DateTime&& value) { SetLastRefreshTimestamp(std::move(value)); return *this;} /** *

The finding classification of the function.

Findings for functions * include:

  • Optimized — The function is * correctly provisioned to run your workload based on its current configuration * and its utilization history. This finding classification does not include * finding reason codes.

  • NotOptimized — * The function is performing at a higher level (over-provisioned) or at a lower * level (under-provisioned) than required for your workload because its current * configuration is not optimal. Over-provisioned resources might lead to * unnecessary infrastructure cost, and under-provisioned resources might lead to * poor application performance. This finding classification can include the * MemoryUnderprovisioned and MemoryUnderprovisioned * finding reason codes.

  • Unavailable — * Compute Optimizer was unable to generate a recommendation for the function. This * could be because the function has not accumulated sufficient metric data, or the * function does not qualify for a recommendation. This finding classification can * include the InsufficientData and Inconclusive finding * reason codes.

    Functions with a finding of unavailable are not * returned unless you specify the filter parameter with a value of * Unavailable in your GetLambdaFunctionRecommendations * request.

*/ inline const LambdaFunctionRecommendationFinding& GetFinding() const{ return m_finding; } /** *

The finding classification of the function.

Findings for functions * include:

  • Optimized — The function is * correctly provisioned to run your workload based on its current configuration * and its utilization history. This finding classification does not include * finding reason codes.

  • NotOptimized — * The function is performing at a higher level (over-provisioned) or at a lower * level (under-provisioned) than required for your workload because its current * configuration is not optimal. Over-provisioned resources might lead to * unnecessary infrastructure cost, and under-provisioned resources might lead to * poor application performance. This finding classification can include the * MemoryUnderprovisioned and MemoryUnderprovisioned * finding reason codes.

  • Unavailable — * Compute Optimizer was unable to generate a recommendation for the function. This * could be because the function has not accumulated sufficient metric data, or the * function does not qualify for a recommendation. This finding classification can * include the InsufficientData and Inconclusive finding * reason codes.

    Functions with a finding of unavailable are not * returned unless you specify the filter parameter with a value of * Unavailable in your GetLambdaFunctionRecommendations * request.

*/ inline bool FindingHasBeenSet() const { return m_findingHasBeenSet; } /** *

The finding classification of the function.

Findings for functions * include:

  • Optimized — The function is * correctly provisioned to run your workload based on its current configuration * and its utilization history. This finding classification does not include * finding reason codes.

  • NotOptimized — * The function is performing at a higher level (over-provisioned) or at a lower * level (under-provisioned) than required for your workload because its current * configuration is not optimal. Over-provisioned resources might lead to * unnecessary infrastructure cost, and under-provisioned resources might lead to * poor application performance. This finding classification can include the * MemoryUnderprovisioned and MemoryUnderprovisioned * finding reason codes.

  • Unavailable — * Compute Optimizer was unable to generate a recommendation for the function. This * could be because the function has not accumulated sufficient metric data, or the * function does not qualify for a recommendation. This finding classification can * include the InsufficientData and Inconclusive finding * reason codes.

    Functions with a finding of unavailable are not * returned unless you specify the filter parameter with a value of * Unavailable in your GetLambdaFunctionRecommendations * request.

*/ inline void SetFinding(const LambdaFunctionRecommendationFinding& value) { m_findingHasBeenSet = true; m_finding = value; } /** *

The finding classification of the function.

Findings for functions * include:

  • Optimized — The function is * correctly provisioned to run your workload based on its current configuration * and its utilization history. This finding classification does not include * finding reason codes.

  • NotOptimized — * The function is performing at a higher level (over-provisioned) or at a lower * level (under-provisioned) than required for your workload because its current * configuration is not optimal. Over-provisioned resources might lead to * unnecessary infrastructure cost, and under-provisioned resources might lead to * poor application performance. This finding classification can include the * MemoryUnderprovisioned and MemoryUnderprovisioned * finding reason codes.

  • Unavailable — * Compute Optimizer was unable to generate a recommendation for the function. This * could be because the function has not accumulated sufficient metric data, or the * function does not qualify for a recommendation. This finding classification can * include the InsufficientData and Inconclusive finding * reason codes.

    Functions with a finding of unavailable are not * returned unless you specify the filter parameter with a value of * Unavailable in your GetLambdaFunctionRecommendations * request.

*/ inline void SetFinding(LambdaFunctionRecommendationFinding&& value) { m_findingHasBeenSet = true; m_finding = std::move(value); } /** *

The finding classification of the function.

Findings for functions * include:

  • Optimized — The function is * correctly provisioned to run your workload based on its current configuration * and its utilization history. This finding classification does not include * finding reason codes.

  • NotOptimized — * The function is performing at a higher level (over-provisioned) or at a lower * level (under-provisioned) than required for your workload because its current * configuration is not optimal. Over-provisioned resources might lead to * unnecessary infrastructure cost, and under-provisioned resources might lead to * poor application performance. This finding classification can include the * MemoryUnderprovisioned and MemoryUnderprovisioned * finding reason codes.

  • Unavailable — * Compute Optimizer was unable to generate a recommendation for the function. This * could be because the function has not accumulated sufficient metric data, or the * function does not qualify for a recommendation. This finding classification can * include the InsufficientData and Inconclusive finding * reason codes.

    Functions with a finding of unavailable are not * returned unless you specify the filter parameter with a value of * Unavailable in your GetLambdaFunctionRecommendations * request.

*/ inline LambdaFunctionRecommendation& WithFinding(const LambdaFunctionRecommendationFinding& value) { SetFinding(value); return *this;} /** *

The finding classification of the function.

Findings for functions * include:

  • Optimized — The function is * correctly provisioned to run your workload based on its current configuration * and its utilization history. This finding classification does not include * finding reason codes.

  • NotOptimized — * The function is performing at a higher level (over-provisioned) or at a lower * level (under-provisioned) than required for your workload because its current * configuration is not optimal. Over-provisioned resources might lead to * unnecessary infrastructure cost, and under-provisioned resources might lead to * poor application performance. This finding classification can include the * MemoryUnderprovisioned and MemoryUnderprovisioned * finding reason codes.

  • Unavailable — * Compute Optimizer was unable to generate a recommendation for the function. This * could be because the function has not accumulated sufficient metric data, or the * function does not qualify for a recommendation. This finding classification can * include the InsufficientData and Inconclusive finding * reason codes.

    Functions with a finding of unavailable are not * returned unless you specify the filter parameter with a value of * Unavailable in your GetLambdaFunctionRecommendations * request.

*/ inline LambdaFunctionRecommendation& WithFinding(LambdaFunctionRecommendationFinding&& value) { SetFinding(std::move(value)); return *this;} /** *

The reason for the finding classification of the function.

*

Functions that have a finding classification of Optimized don't * have a finding reason code.

Finding reason codes for functions * include:

  • MemoryOverprovisioned — The * function is over-provisioned when its memory configuration can be sized down * while still meeting the performance requirements of your workload. An * over-provisioned function might lead to unnecessary infrastructure cost. This * finding reason code is part of the NotOptimized finding * classification.

  • MemoryUnderprovisioned * — The function is under-provisioned when its memory configuration doesn't meet * the performance requirements of the workload. An under-provisioned function * might lead to poor application performance. This finding reason code is part of * the NotOptimized finding classification.

  • * InsufficientData — The function does not have sufficient * metric data for Compute Optimizer to generate a recommendation. For more * information, see the Supported * resources and requirements in the Compute Optimizer User Guide. This * finding reason code is part of the Unavailable finding * classification.

  • Inconclusive — The * function does not qualify for a recommendation because Compute Optimizer cannot * generate a recommendation with a high degree of confidence. This finding reason * code is part of the Unavailable finding classification.

  • *
*/ inline const Aws::Vector& GetFindingReasonCodes() const{ return m_findingReasonCodes; } /** *

The reason for the finding classification of the function.

*

Functions that have a finding classification of Optimized don't * have a finding reason code.

Finding reason codes for functions * include:

  • MemoryOverprovisioned — The * function is over-provisioned when its memory configuration can be sized down * while still meeting the performance requirements of your workload. An * over-provisioned function might lead to unnecessary infrastructure cost. This * finding reason code is part of the NotOptimized finding * classification.

  • MemoryUnderprovisioned * — The function is under-provisioned when its memory configuration doesn't meet * the performance requirements of the workload. An under-provisioned function * might lead to poor application performance. This finding reason code is part of * the NotOptimized finding classification.

  • * InsufficientData — The function does not have sufficient * metric data for Compute Optimizer to generate a recommendation. For more * information, see the Supported * resources and requirements in the Compute Optimizer User Guide. This * finding reason code is part of the Unavailable finding * classification.

  • Inconclusive — The * function does not qualify for a recommendation because Compute Optimizer cannot * generate a recommendation with a high degree of confidence. This finding reason * code is part of the Unavailable finding classification.

  • *
*/ inline bool FindingReasonCodesHasBeenSet() const { return m_findingReasonCodesHasBeenSet; } /** *

The reason for the finding classification of the function.

*

Functions that have a finding classification of Optimized don't * have a finding reason code.

Finding reason codes for functions * include:

  • MemoryOverprovisioned — The * function is over-provisioned when its memory configuration can be sized down * while still meeting the performance requirements of your workload. An * over-provisioned function might lead to unnecessary infrastructure cost. This * finding reason code is part of the NotOptimized finding * classification.

  • MemoryUnderprovisioned * — The function is under-provisioned when its memory configuration doesn't meet * the performance requirements of the workload. An under-provisioned function * might lead to poor application performance. This finding reason code is part of * the NotOptimized finding classification.

  • * InsufficientData — The function does not have sufficient * metric data for Compute Optimizer to generate a recommendation. For more * information, see the Supported * resources and requirements in the Compute Optimizer User Guide. This * finding reason code is part of the Unavailable finding * classification.

  • Inconclusive — The * function does not qualify for a recommendation because Compute Optimizer cannot * generate a recommendation with a high degree of confidence. This finding reason * code is part of the Unavailable finding classification.

  • *
*/ inline void SetFindingReasonCodes(const Aws::Vector& value) { m_findingReasonCodesHasBeenSet = true; m_findingReasonCodes = value; } /** *

The reason for the finding classification of the function.

*

Functions that have a finding classification of Optimized don't * have a finding reason code.

Finding reason codes for functions * include:

  • MemoryOverprovisioned — The * function is over-provisioned when its memory configuration can be sized down * while still meeting the performance requirements of your workload. An * over-provisioned function might lead to unnecessary infrastructure cost. This * finding reason code is part of the NotOptimized finding * classification.

  • MemoryUnderprovisioned * — The function is under-provisioned when its memory configuration doesn't meet * the performance requirements of the workload. An under-provisioned function * might lead to poor application performance. This finding reason code is part of * the NotOptimized finding classification.

  • * InsufficientData — The function does not have sufficient * metric data for Compute Optimizer to generate a recommendation. For more * information, see the Supported * resources and requirements in the Compute Optimizer User Guide. This * finding reason code is part of the Unavailable finding * classification.

  • Inconclusive — The * function does not qualify for a recommendation because Compute Optimizer cannot * generate a recommendation with a high degree of confidence. This finding reason * code is part of the Unavailable finding classification.

  • *
*/ inline void SetFindingReasonCodes(Aws::Vector&& value) { m_findingReasonCodesHasBeenSet = true; m_findingReasonCodes = std::move(value); } /** *

The reason for the finding classification of the function.

*

Functions that have a finding classification of Optimized don't * have a finding reason code.

Finding reason codes for functions * include:

  • MemoryOverprovisioned — The * function is over-provisioned when its memory configuration can be sized down * while still meeting the performance requirements of your workload. An * over-provisioned function might lead to unnecessary infrastructure cost. This * finding reason code is part of the NotOptimized finding * classification.

  • MemoryUnderprovisioned * — The function is under-provisioned when its memory configuration doesn't meet * the performance requirements of the workload. An under-provisioned function * might lead to poor application performance. This finding reason code is part of * the NotOptimized finding classification.

  • * InsufficientData — The function does not have sufficient * metric data for Compute Optimizer to generate a recommendation. For more * information, see the Supported * resources and requirements in the Compute Optimizer User Guide. This * finding reason code is part of the Unavailable finding * classification.

  • Inconclusive — The * function does not qualify for a recommendation because Compute Optimizer cannot * generate a recommendation with a high degree of confidence. This finding reason * code is part of the Unavailable finding classification.

  • *
*/ inline LambdaFunctionRecommendation& WithFindingReasonCodes(const Aws::Vector& value) { SetFindingReasonCodes(value); return *this;} /** *

The reason for the finding classification of the function.

*

Functions that have a finding classification of Optimized don't * have a finding reason code.

Finding reason codes for functions * include:

  • MemoryOverprovisioned — The * function is over-provisioned when its memory configuration can be sized down * while still meeting the performance requirements of your workload. An * over-provisioned function might lead to unnecessary infrastructure cost. This * finding reason code is part of the NotOptimized finding * classification.

  • MemoryUnderprovisioned * — The function is under-provisioned when its memory configuration doesn't meet * the performance requirements of the workload. An under-provisioned function * might lead to poor application performance. This finding reason code is part of * the NotOptimized finding classification.

  • * InsufficientData — The function does not have sufficient * metric data for Compute Optimizer to generate a recommendation. For more * information, see the Supported * resources and requirements in the Compute Optimizer User Guide. This * finding reason code is part of the Unavailable finding * classification.

  • Inconclusive — The * function does not qualify for a recommendation because Compute Optimizer cannot * generate a recommendation with a high degree of confidence. This finding reason * code is part of the Unavailable finding classification.

  • *
*/ inline LambdaFunctionRecommendation& WithFindingReasonCodes(Aws::Vector&& value) { SetFindingReasonCodes(std::move(value)); return *this;} /** *

The reason for the finding classification of the function.

*

Functions that have a finding classification of Optimized don't * have a finding reason code.

Finding reason codes for functions * include:

  • MemoryOverprovisioned — The * function is over-provisioned when its memory configuration can be sized down * while still meeting the performance requirements of your workload. An * over-provisioned function might lead to unnecessary infrastructure cost. This * finding reason code is part of the NotOptimized finding * classification.

  • MemoryUnderprovisioned * — The function is under-provisioned when its memory configuration doesn't meet * the performance requirements of the workload. An under-provisioned function * might lead to poor application performance. This finding reason code is part of * the NotOptimized finding classification.

  • * InsufficientData — The function does not have sufficient * metric data for Compute Optimizer to generate a recommendation. For more * information, see the Supported * resources and requirements in the Compute Optimizer User Guide. This * finding reason code is part of the Unavailable finding * classification.

  • Inconclusive — The * function does not qualify for a recommendation because Compute Optimizer cannot * generate a recommendation with a high degree of confidence. This finding reason * code is part of the Unavailable finding classification.

  • *
*/ inline LambdaFunctionRecommendation& AddFindingReasonCodes(const LambdaFunctionRecommendationFindingReasonCode& value) { m_findingReasonCodesHasBeenSet = true; m_findingReasonCodes.push_back(value); return *this; } /** *

The reason for the finding classification of the function.

*

Functions that have a finding classification of Optimized don't * have a finding reason code.

Finding reason codes for functions * include:

  • MemoryOverprovisioned — The * function is over-provisioned when its memory configuration can be sized down * while still meeting the performance requirements of your workload. An * over-provisioned function might lead to unnecessary infrastructure cost. This * finding reason code is part of the NotOptimized finding * classification.

  • MemoryUnderprovisioned * — The function is under-provisioned when its memory configuration doesn't meet * the performance requirements of the workload. An under-provisioned function * might lead to poor application performance. This finding reason code is part of * the NotOptimized finding classification.

  • * InsufficientData — The function does not have sufficient * metric data for Compute Optimizer to generate a recommendation. For more * information, see the Supported * resources and requirements in the Compute Optimizer User Guide. This * finding reason code is part of the Unavailable finding * classification.

  • Inconclusive — The * function does not qualify for a recommendation because Compute Optimizer cannot * generate a recommendation with a high degree of confidence. This finding reason * code is part of the Unavailable finding classification.

  • *
*/ inline LambdaFunctionRecommendation& AddFindingReasonCodes(LambdaFunctionRecommendationFindingReasonCode&& value) { m_findingReasonCodesHasBeenSet = true; m_findingReasonCodes.push_back(std::move(value)); return *this; } /** *

An array of objects that describe the memory configuration recommendation * options for the function.

*/ inline const Aws::Vector& GetMemorySizeRecommendationOptions() const{ return m_memorySizeRecommendationOptions; } /** *

An array of objects that describe the memory configuration recommendation * options for the function.

*/ inline bool MemorySizeRecommendationOptionsHasBeenSet() const { return m_memorySizeRecommendationOptionsHasBeenSet; } /** *

An array of objects that describe the memory configuration recommendation * options for the function.

*/ inline void SetMemorySizeRecommendationOptions(const Aws::Vector& value) { m_memorySizeRecommendationOptionsHasBeenSet = true; m_memorySizeRecommendationOptions = value; } /** *

An array of objects that describe the memory configuration recommendation * options for the function.

*/ inline void SetMemorySizeRecommendationOptions(Aws::Vector&& value) { m_memorySizeRecommendationOptionsHasBeenSet = true; m_memorySizeRecommendationOptions = std::move(value); } /** *

An array of objects that describe the memory configuration recommendation * options for the function.

*/ inline LambdaFunctionRecommendation& WithMemorySizeRecommendationOptions(const Aws::Vector& value) { SetMemorySizeRecommendationOptions(value); return *this;} /** *

An array of objects that describe the memory configuration recommendation * options for the function.

*/ inline LambdaFunctionRecommendation& WithMemorySizeRecommendationOptions(Aws::Vector&& value) { SetMemorySizeRecommendationOptions(std::move(value)); return *this;} /** *

An array of objects that describe the memory configuration recommendation * options for the function.

*/ inline LambdaFunctionRecommendation& AddMemorySizeRecommendationOptions(const LambdaFunctionMemoryRecommendationOption& value) { m_memorySizeRecommendationOptionsHasBeenSet = true; m_memorySizeRecommendationOptions.push_back(value); return *this; } /** *

An array of objects that describe the memory configuration recommendation * options for the function.

*/ inline LambdaFunctionRecommendation& AddMemorySizeRecommendationOptions(LambdaFunctionMemoryRecommendationOption&& value) { m_memorySizeRecommendationOptionsHasBeenSet = true; m_memorySizeRecommendationOptions.push_back(std::move(value)); return *this; } /** *

The risk of the current Lambda function not meeting the performance needs of * its workloads. The higher the risk, the more likely the current Lambda function * requires more memory.

*/ inline const CurrentPerformanceRisk& GetCurrentPerformanceRisk() const{ return m_currentPerformanceRisk; } /** *

The risk of the current Lambda function not meeting the performance needs of * its workloads. The higher the risk, the more likely the current Lambda function * requires more memory.

*/ inline bool CurrentPerformanceRiskHasBeenSet() const { return m_currentPerformanceRiskHasBeenSet; } /** *

The risk of the current Lambda function not meeting the performance needs of * its workloads. The higher the risk, the more likely the current Lambda function * requires more memory.

*/ inline void SetCurrentPerformanceRisk(const CurrentPerformanceRisk& value) { m_currentPerformanceRiskHasBeenSet = true; m_currentPerformanceRisk = value; } /** *

The risk of the current Lambda function not meeting the performance needs of * its workloads. The higher the risk, the more likely the current Lambda function * requires more memory.

*/ inline void SetCurrentPerformanceRisk(CurrentPerformanceRisk&& value) { m_currentPerformanceRiskHasBeenSet = true; m_currentPerformanceRisk = std::move(value); } /** *

The risk of the current Lambda function not meeting the performance needs of * its workloads. The higher the risk, the more likely the current Lambda function * requires more memory.

*/ inline LambdaFunctionRecommendation& WithCurrentPerformanceRisk(const CurrentPerformanceRisk& value) { SetCurrentPerformanceRisk(value); return *this;} /** *

The risk of the current Lambda function not meeting the performance needs of * its workloads. The higher the risk, the more likely the current Lambda function * requires more memory.

*/ inline LambdaFunctionRecommendation& WithCurrentPerformanceRisk(CurrentPerformanceRisk&& value) { SetCurrentPerformanceRisk(std::move(value)); return *this;} /** *

A list of tags assigned to your Lambda function recommendations.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

A list of tags assigned to your Lambda function recommendations.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A list of tags assigned to your Lambda function recommendations.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of tags assigned to your Lambda function recommendations.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of tags assigned to your Lambda function recommendations.

*/ inline LambdaFunctionRecommendation& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A list of tags assigned to your Lambda function recommendations.

*/ inline LambdaFunctionRecommendation& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A list of tags assigned to your Lambda function recommendations.

*/ inline LambdaFunctionRecommendation& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

A list of tags assigned to your Lambda function recommendations.

*/ inline LambdaFunctionRecommendation& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_functionArn; bool m_functionArnHasBeenSet = false; Aws::String m_functionVersion; bool m_functionVersionHasBeenSet = false; Aws::String m_accountId; bool m_accountIdHasBeenSet = false; int m_currentMemorySize; bool m_currentMemorySizeHasBeenSet = false; long long m_numberOfInvocations; bool m_numberOfInvocationsHasBeenSet = false; Aws::Vector m_utilizationMetrics; bool m_utilizationMetricsHasBeenSet = false; double m_lookbackPeriodInDays; bool m_lookbackPeriodInDaysHasBeenSet = false; Aws::Utils::DateTime m_lastRefreshTimestamp; bool m_lastRefreshTimestampHasBeenSet = false; LambdaFunctionRecommendationFinding m_finding; bool m_findingHasBeenSet = false; Aws::Vector m_findingReasonCodes; bool m_findingReasonCodesHasBeenSet = false; Aws::Vector m_memorySizeRecommendationOptions; bool m_memorySizeRecommendationOptionsHasBeenSet = false; CurrentPerformanceRisk m_currentPerformanceRisk; bool m_currentPerformanceRiskHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws