/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
namespace Aws
{
namespace ComputeOptimizer
{
/**
* Compute Optimizer is a service that analyzes the configuration and
* utilization metrics of your Amazon Web Services compute resources, such as
* Amazon EC2 instances, Amazon EC2 Auto Scaling groups, Lambda functions, Amazon
* EBS volumes, and Amazon ECS services on Fargate. It reports whether your
* resources are optimal, and generates optimization recommendations to reduce the
* cost and improve the performance of your workloads. Compute Optimizer also
* provides recent utilization metric data, in addition to projected utilization
* metric data for the recommendations, which you can use to evaluate which
* recommendation provides the best price-performance trade-off. The analysis of
* your usage patterns can help you decide when to move or resize your running
* resources, and still meet your performance and capacity requirements. For more
* information about Compute Optimizer, including the required permissions to use
* the service, see the Compute
* Optimizer User Guide.
*/
class AWS_COMPUTEOPTIMIZER_API ComputeOptimizerClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods
{
public:
typedef Aws::Client::AWSJsonClient BASECLASS;
static const char* SERVICE_NAME;
static const char* ALLOCATION_TAG;
typedef ComputeOptimizerClientConfiguration ClientConfigurationType;
typedef ComputeOptimizerEndpointProvider EndpointProviderType;
/**
* Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
ComputeOptimizerClient(const Aws::ComputeOptimizer::ComputeOptimizerClientConfiguration& clientConfiguration = Aws::ComputeOptimizer::ComputeOptimizerClientConfiguration(),
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG));
/**
* Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
ComputeOptimizerClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::ComputeOptimizer::ComputeOptimizerClientConfiguration& clientConfiguration = Aws::ComputeOptimizer::ComputeOptimizerClientConfiguration());
/**
* Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
* the default http client factory will be used
*/
ComputeOptimizerClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::ComputeOptimizer::ComputeOptimizerClientConfiguration& clientConfiguration = Aws::ComputeOptimizer::ComputeOptimizerClientConfiguration());
/* Legacy constructors due deprecation */
/**
* Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
ComputeOptimizerClient(const Aws::Client::ClientConfiguration& clientConfiguration);
/**
* Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
ComputeOptimizerClient(const Aws::Auth::AWSCredentials& credentials,
const Aws::Client::ClientConfiguration& clientConfiguration);
/**
* Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
* the default http client factory will be used
*/
ComputeOptimizerClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~ComputeOptimizerClient();
/**
* Deletes a recommendation preference, such as enhanced infrastructure
* metrics.
For more information, see Activating
* enhanced infrastructure metrics in the Compute Optimizer User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteRecommendationPreferencesOutcome DeleteRecommendationPreferences(const Model::DeleteRecommendationPreferencesRequest& request) const;
/**
* A Callable wrapper for DeleteRecommendationPreferences that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteRecommendationPreferencesOutcomeCallable DeleteRecommendationPreferencesCallable(const DeleteRecommendationPreferencesRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::DeleteRecommendationPreferences, request);
}
/**
* An Async wrapper for DeleteRecommendationPreferences that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteRecommendationPreferencesAsync(const DeleteRecommendationPreferencesRequestT& request, const DeleteRecommendationPreferencesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::DeleteRecommendationPreferences, request, handler, context);
}
/**
* Describes recommendation export jobs created in the last seven days.
* Use the ExportAutoScalingGroupRecommendations or
* ExportEC2InstanceRecommendations actions to request an export of your
* recommendations. Then use the DescribeRecommendationExportJobs action to
* view your export jobs.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeRecommendationExportJobsOutcome DescribeRecommendationExportJobs(const Model::DescribeRecommendationExportJobsRequest& request) const;
/**
* A Callable wrapper for DescribeRecommendationExportJobs that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeRecommendationExportJobsOutcomeCallable DescribeRecommendationExportJobsCallable(const DescribeRecommendationExportJobsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::DescribeRecommendationExportJobs, request);
}
/**
* An Async wrapper for DescribeRecommendationExportJobs that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeRecommendationExportJobsAsync(const DescribeRecommendationExportJobsRequestT& request, const DescribeRecommendationExportJobsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::DescribeRecommendationExportJobs, request, handler, context);
}
/**
* Exports optimization recommendations for Auto Scaling groups.
* Recommendations are exported in a comma-separated values (.csv) file, and its
* metadata in a JavaScript Object Notation (JSON) (.json) file, to an existing
* Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more
* information, see Exporting
* Recommendations in the Compute Optimizer User Guide.
You can
* have only one Auto Scaling group export job in progress per Amazon Web Services
* Region.
See Also:
AWS
* API Reference
*/
virtual Model::ExportAutoScalingGroupRecommendationsOutcome ExportAutoScalingGroupRecommendations(const Model::ExportAutoScalingGroupRecommendationsRequest& request) const;
/**
* A Callable wrapper for ExportAutoScalingGroupRecommendations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ExportAutoScalingGroupRecommendationsOutcomeCallable ExportAutoScalingGroupRecommendationsCallable(const ExportAutoScalingGroupRecommendationsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::ExportAutoScalingGroupRecommendations, request);
}
/**
* An Async wrapper for ExportAutoScalingGroupRecommendations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ExportAutoScalingGroupRecommendationsAsync(const ExportAutoScalingGroupRecommendationsRequestT& request, const ExportAutoScalingGroupRecommendationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::ExportAutoScalingGroupRecommendations, request, handler, context);
}
/**
* Exports optimization recommendations for Amazon EBS volumes.
* Recommendations are exported in a comma-separated values (.csv) file, and its
* metadata in a JavaScript Object Notation (JSON) (.json) file, to an existing
* Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more
* information, see Exporting
* Recommendations in the Compute Optimizer User Guide.
You can
* have only one Amazon EBS volume export job in progress per Amazon Web Services
* Region.
See Also:
AWS
* API Reference
*/
virtual Model::ExportEBSVolumeRecommendationsOutcome ExportEBSVolumeRecommendations(const Model::ExportEBSVolumeRecommendationsRequest& request) const;
/**
* A Callable wrapper for ExportEBSVolumeRecommendations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ExportEBSVolumeRecommendationsOutcomeCallable ExportEBSVolumeRecommendationsCallable(const ExportEBSVolumeRecommendationsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::ExportEBSVolumeRecommendations, request);
}
/**
* An Async wrapper for ExportEBSVolumeRecommendations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ExportEBSVolumeRecommendationsAsync(const ExportEBSVolumeRecommendationsRequestT& request, const ExportEBSVolumeRecommendationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::ExportEBSVolumeRecommendations, request, handler, context);
}
/**
* Exports optimization recommendations for Amazon EC2 instances.
* Recommendations are exported in a comma-separated values (.csv) file, and its
* metadata in a JavaScript Object Notation (JSON) (.json) file, to an existing
* Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more
* information, see Exporting
* Recommendations in the Compute Optimizer User Guide.
You can
* have only one Amazon EC2 instance export job in progress per Amazon Web Services
* Region.
See Also:
AWS
* API Reference
*/
virtual Model::ExportEC2InstanceRecommendationsOutcome ExportEC2InstanceRecommendations(const Model::ExportEC2InstanceRecommendationsRequest& request) const;
/**
* A Callable wrapper for ExportEC2InstanceRecommendations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ExportEC2InstanceRecommendationsOutcomeCallable ExportEC2InstanceRecommendationsCallable(const ExportEC2InstanceRecommendationsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::ExportEC2InstanceRecommendations, request);
}
/**
* An Async wrapper for ExportEC2InstanceRecommendations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ExportEC2InstanceRecommendationsAsync(const ExportEC2InstanceRecommendationsRequestT& request, const ExportEC2InstanceRecommendationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::ExportEC2InstanceRecommendations, request, handler, context);
}
/**
* Exports optimization recommendations for Amazon ECS services on Fargate.
*
Recommendations are exported in a CSV file, and its metadata in a JSON
* file, to an existing Amazon Simple Storage Service (Amazon S3) bucket that you
* specify. For more information, see Exporting
* Recommendations in the Compute Optimizer User Guide.
You can
* only have one Amazon ECS service export job in progress per Amazon Web Services
* Region.
See Also:
AWS
* API Reference
*/
virtual Model::ExportECSServiceRecommendationsOutcome ExportECSServiceRecommendations(const Model::ExportECSServiceRecommendationsRequest& request) const;
/**
* A Callable wrapper for ExportECSServiceRecommendations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ExportECSServiceRecommendationsOutcomeCallable ExportECSServiceRecommendationsCallable(const ExportECSServiceRecommendationsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::ExportECSServiceRecommendations, request);
}
/**
* An Async wrapper for ExportECSServiceRecommendations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ExportECSServiceRecommendationsAsync(const ExportECSServiceRecommendationsRequestT& request, const ExportECSServiceRecommendationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::ExportECSServiceRecommendations, request, handler, context);
}
/**
* Exports optimization recommendations for Lambda functions.
* Recommendations are exported in a comma-separated values (.csv) file, and its
* metadata in a JavaScript Object Notation (JSON) (.json) file, to an existing
* Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more
* information, see Exporting
* Recommendations in the Compute Optimizer User Guide.
You can
* have only one Lambda function export job in progress per Amazon Web Services
* Region.
See Also:
AWS
* API Reference
*/
virtual Model::ExportLambdaFunctionRecommendationsOutcome ExportLambdaFunctionRecommendations(const Model::ExportLambdaFunctionRecommendationsRequest& request) const;
/**
* A Callable wrapper for ExportLambdaFunctionRecommendations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ExportLambdaFunctionRecommendationsOutcomeCallable ExportLambdaFunctionRecommendationsCallable(const ExportLambdaFunctionRecommendationsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::ExportLambdaFunctionRecommendations, request);
}
/**
* An Async wrapper for ExportLambdaFunctionRecommendations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ExportLambdaFunctionRecommendationsAsync(const ExportLambdaFunctionRecommendationsRequestT& request, const ExportLambdaFunctionRecommendationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::ExportLambdaFunctionRecommendations, request, handler, context);
}
/**
* Returns Auto Scaling group recommendations.
Compute Optimizer
* generates recommendations for Amazon EC2 Auto Scaling groups that meet a
* specific set of requirements. For more information, see the Supported
* resources and requirements in the Compute Optimizer User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::GetAutoScalingGroupRecommendationsOutcome GetAutoScalingGroupRecommendations(const Model::GetAutoScalingGroupRecommendationsRequest& request) const;
/**
* A Callable wrapper for GetAutoScalingGroupRecommendations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetAutoScalingGroupRecommendationsOutcomeCallable GetAutoScalingGroupRecommendationsCallable(const GetAutoScalingGroupRecommendationsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::GetAutoScalingGroupRecommendations, request);
}
/**
* An Async wrapper for GetAutoScalingGroupRecommendations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetAutoScalingGroupRecommendationsAsync(const GetAutoScalingGroupRecommendationsRequestT& request, const GetAutoScalingGroupRecommendationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::GetAutoScalingGroupRecommendations, request, handler, context);
}
/**
* Returns Amazon Elastic Block Store (Amazon EBS) volume recommendations.
* Compute Optimizer generates recommendations for Amazon EBS volumes that meet
* a specific set of requirements. For more information, see the Supported
* resources and requirements in the Compute Optimizer User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::GetEBSVolumeRecommendationsOutcome GetEBSVolumeRecommendations(const Model::GetEBSVolumeRecommendationsRequest& request) const;
/**
* A Callable wrapper for GetEBSVolumeRecommendations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetEBSVolumeRecommendationsOutcomeCallable GetEBSVolumeRecommendationsCallable(const GetEBSVolumeRecommendationsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::GetEBSVolumeRecommendations, request);
}
/**
* An Async wrapper for GetEBSVolumeRecommendations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetEBSVolumeRecommendationsAsync(const GetEBSVolumeRecommendationsRequestT& request, const GetEBSVolumeRecommendationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::GetEBSVolumeRecommendations, request, handler, context);
}
/**
* Returns Amazon EC2 instance recommendations.
Compute Optimizer
* generates recommendations for Amazon Elastic Compute Cloud (Amazon EC2)
* instances that meet a specific set of requirements. For more information, see
* the Supported
* resources and requirements in the Compute Optimizer User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::GetEC2InstanceRecommendationsOutcome GetEC2InstanceRecommendations(const Model::GetEC2InstanceRecommendationsRequest& request) const;
/**
* A Callable wrapper for GetEC2InstanceRecommendations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetEC2InstanceRecommendationsOutcomeCallable GetEC2InstanceRecommendationsCallable(const GetEC2InstanceRecommendationsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::GetEC2InstanceRecommendations, request);
}
/**
* An Async wrapper for GetEC2InstanceRecommendations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetEC2InstanceRecommendationsAsync(const GetEC2InstanceRecommendationsRequestT& request, const GetEC2InstanceRecommendationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::GetEC2InstanceRecommendations, request, handler, context);
}
/**
* Returns the projected utilization metrics of Amazon EC2 instance
* recommendations.
The Cpu
and Memory
* metrics are the only projected utilization metrics returned when you run this
* action. Additionally, the Memory
metric is returned only for
* resources that have the unified CloudWatch agent installed on them. For more
* information, see Enabling
* Memory Utilization with the CloudWatch Agent.
See
* Also:
AWS
* API Reference
*/
virtual Model::GetEC2RecommendationProjectedMetricsOutcome GetEC2RecommendationProjectedMetrics(const Model::GetEC2RecommendationProjectedMetricsRequest& request) const;
/**
* A Callable wrapper for GetEC2RecommendationProjectedMetrics that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetEC2RecommendationProjectedMetricsOutcomeCallable GetEC2RecommendationProjectedMetricsCallable(const GetEC2RecommendationProjectedMetricsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::GetEC2RecommendationProjectedMetrics, request);
}
/**
* An Async wrapper for GetEC2RecommendationProjectedMetrics that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetEC2RecommendationProjectedMetricsAsync(const GetEC2RecommendationProjectedMetricsRequestT& request, const GetEC2RecommendationProjectedMetricsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::GetEC2RecommendationProjectedMetrics, request, handler, context);
}
/**
* Returns the projected metrics of Amazon ECS service recommendations.
*
See Also:
AWS
* API Reference
*/
virtual Model::GetECSServiceRecommendationProjectedMetricsOutcome GetECSServiceRecommendationProjectedMetrics(const Model::GetECSServiceRecommendationProjectedMetricsRequest& request) const;
/**
* A Callable wrapper for GetECSServiceRecommendationProjectedMetrics that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetECSServiceRecommendationProjectedMetricsOutcomeCallable GetECSServiceRecommendationProjectedMetricsCallable(const GetECSServiceRecommendationProjectedMetricsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::GetECSServiceRecommendationProjectedMetrics, request);
}
/**
* An Async wrapper for GetECSServiceRecommendationProjectedMetrics that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetECSServiceRecommendationProjectedMetricsAsync(const GetECSServiceRecommendationProjectedMetricsRequestT& request, const GetECSServiceRecommendationProjectedMetricsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::GetECSServiceRecommendationProjectedMetrics, request, handler, context);
}
/**
* Returns Amazon ECS service recommendations.
Compute Optimizer
* generates recommendations for Amazon ECS services on Fargate that meet a
* specific set of requirements. For more information, see the Supported
* resources and requirements in the Compute Optimizer User Guide.
*
See Also:
AWS
* API Reference
*/
virtual Model::GetECSServiceRecommendationsOutcome GetECSServiceRecommendations(const Model::GetECSServiceRecommendationsRequest& request) const;
/**
* A Callable wrapper for GetECSServiceRecommendations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetECSServiceRecommendationsOutcomeCallable GetECSServiceRecommendationsCallable(const GetECSServiceRecommendationsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::GetECSServiceRecommendations, request);
}
/**
* An Async wrapper for GetECSServiceRecommendations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetECSServiceRecommendationsAsync(const GetECSServiceRecommendationsRequestT& request, const GetECSServiceRecommendationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::GetECSServiceRecommendations, request, handler, context);
}
/**
* Returns the recommendation preferences that are in effect for a given
* resource, such as enhanced infrastructure metrics. Considers all applicable
* preferences that you might have set at the resource, account, and organization
* level.
When you create a recommendation preference, you can set its
* status to Active
or Inactive
. Use this action to view
* the recommendation preferences that are in effect, or
* Active
.
See Also:
AWS
* API Reference
*/
virtual Model::GetEffectiveRecommendationPreferencesOutcome GetEffectiveRecommendationPreferences(const Model::GetEffectiveRecommendationPreferencesRequest& request) const;
/**
* A Callable wrapper for GetEffectiveRecommendationPreferences that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetEffectiveRecommendationPreferencesOutcomeCallable GetEffectiveRecommendationPreferencesCallable(const GetEffectiveRecommendationPreferencesRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::GetEffectiveRecommendationPreferences, request);
}
/**
* An Async wrapper for GetEffectiveRecommendationPreferences that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetEffectiveRecommendationPreferencesAsync(const GetEffectiveRecommendationPreferencesRequestT& request, const GetEffectiveRecommendationPreferencesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::GetEffectiveRecommendationPreferences, request, handler, context);
}
/**
* Returns the enrollment (opt in) status of an account to the Compute Optimizer
* service.
If the account is the management account of an organization,
* this action also confirms the enrollment status of member accounts of the
* organization. Use the GetEnrollmentStatusesForOrganization action to get
* detailed information about the enrollment status of member accounts of an
* organization.
See Also:
AWS
* API Reference
*/
virtual Model::GetEnrollmentStatusOutcome GetEnrollmentStatus(const Model::GetEnrollmentStatusRequest& request) const;
/**
* A Callable wrapper for GetEnrollmentStatus that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetEnrollmentStatusOutcomeCallable GetEnrollmentStatusCallable(const GetEnrollmentStatusRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::GetEnrollmentStatus, request);
}
/**
* An Async wrapper for GetEnrollmentStatus that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetEnrollmentStatusAsync(const GetEnrollmentStatusRequestT& request, const GetEnrollmentStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::GetEnrollmentStatus, request, handler, context);
}
/**
* Returns the Compute Optimizer enrollment (opt-in) status of organization
* member accounts, if your account is an organization management account.
* To get the enrollment status of standalone accounts, use the
* GetEnrollmentStatus action.
See Also:
AWS
* API Reference
*/
virtual Model::GetEnrollmentStatusesForOrganizationOutcome GetEnrollmentStatusesForOrganization(const Model::GetEnrollmentStatusesForOrganizationRequest& request) const;
/**
* A Callable wrapper for GetEnrollmentStatusesForOrganization that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetEnrollmentStatusesForOrganizationOutcomeCallable GetEnrollmentStatusesForOrganizationCallable(const GetEnrollmentStatusesForOrganizationRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::GetEnrollmentStatusesForOrganization, request);
}
/**
* An Async wrapper for GetEnrollmentStatusesForOrganization that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetEnrollmentStatusesForOrganizationAsync(const GetEnrollmentStatusesForOrganizationRequestT& request, const GetEnrollmentStatusesForOrganizationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::GetEnrollmentStatusesForOrganization, request, handler, context);
}
/**
* Returns Lambda function recommendations.
Compute Optimizer generates
* recommendations for functions that meet a specific set of requirements. For more
* information, see the Supported
* resources and requirements in the Compute Optimizer User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::GetLambdaFunctionRecommendationsOutcome GetLambdaFunctionRecommendations(const Model::GetLambdaFunctionRecommendationsRequest& request) const;
/**
* A Callable wrapper for GetLambdaFunctionRecommendations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetLambdaFunctionRecommendationsOutcomeCallable GetLambdaFunctionRecommendationsCallable(const GetLambdaFunctionRecommendationsRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::GetLambdaFunctionRecommendations, request);
}
/**
* An Async wrapper for GetLambdaFunctionRecommendations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetLambdaFunctionRecommendationsAsync(const GetLambdaFunctionRecommendationsRequestT& request, const GetLambdaFunctionRecommendationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::GetLambdaFunctionRecommendations, request, handler, context);
}
/**
* Returns existing recommendation preferences, such as enhanced infrastructure
* metrics.
Use the scope
parameter to specify which
* preferences to return. You can specify to return preferences for an
* organization, a specific account ID, or a specific EC2 instance or Auto Scaling
* group Amazon Resource Name (ARN).
For more information, see Activating
* enhanced infrastructure metrics in the Compute Optimizer User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::GetRecommendationPreferencesOutcome GetRecommendationPreferences(const Model::GetRecommendationPreferencesRequest& request) const;
/**
* A Callable wrapper for GetRecommendationPreferences that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetRecommendationPreferencesOutcomeCallable GetRecommendationPreferencesCallable(const GetRecommendationPreferencesRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::GetRecommendationPreferences, request);
}
/**
* An Async wrapper for GetRecommendationPreferences that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetRecommendationPreferencesAsync(const GetRecommendationPreferencesRequestT& request, const GetRecommendationPreferencesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::GetRecommendationPreferences, request, handler, context);
}
/**
* Returns the optimization findings for an account.
It returns the
* number of:
-
Amazon EC2 instances in an account that are
* Underprovisioned
, Overprovisioned
, or
* Optimized
.
-
Auto Scaling groups in an account that
* are NotOptimized
, or Optimized
.
-
*
Amazon EBS volumes in an account that are NotOptimized
, or
* Optimized
.
-
Lambda functions in an account that
* are NotOptimized
, or Optimized
.
-
*
Amazon ECS services in an account that are Underprovisioned
,
* Overprovisioned
, or Optimized
.
*
See Also:
AWS
* API Reference
*/
virtual Model::GetRecommendationSummariesOutcome GetRecommendationSummaries(const Model::GetRecommendationSummariesRequest& request) const;
/**
* A Callable wrapper for GetRecommendationSummaries that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetRecommendationSummariesOutcomeCallable GetRecommendationSummariesCallable(const GetRecommendationSummariesRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::GetRecommendationSummaries, request);
}
/**
* An Async wrapper for GetRecommendationSummaries that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetRecommendationSummariesAsync(const GetRecommendationSummariesRequestT& request, const GetRecommendationSummariesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::GetRecommendationSummaries, request, handler, context);
}
/**
* Creates a new recommendation preference or updates an existing recommendation
* preference, such as enhanced infrastructure metrics.
For more
* information, see Activating
* enhanced infrastructure metrics in the Compute Optimizer User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::PutRecommendationPreferencesOutcome PutRecommendationPreferences(const Model::PutRecommendationPreferencesRequest& request) const;
/**
* A Callable wrapper for PutRecommendationPreferences that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutRecommendationPreferencesOutcomeCallable PutRecommendationPreferencesCallable(const PutRecommendationPreferencesRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::PutRecommendationPreferences, request);
}
/**
* An Async wrapper for PutRecommendationPreferences that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutRecommendationPreferencesAsync(const PutRecommendationPreferencesRequestT& request, const PutRecommendationPreferencesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::PutRecommendationPreferences, request, handler, context);
}
/**
* Updates the enrollment (opt in and opt out) status of an account to the
* Compute Optimizer service.
If the account is a management account of an
* organization, this action can also be used to enroll member accounts of the
* organization.
You must have the appropriate permissions to opt in to
* Compute Optimizer, to view its recommendations, and to opt out. For more
* information, see Controlling
* access with Amazon Web Services Identity and Access Management in the
* Compute Optimizer User Guide.
When you opt in, Compute Optimizer
* automatically creates a service-linked role in your account to access its data.
* For more information, see Using
* Service-Linked Roles for Compute Optimizer in the Compute Optimizer User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateEnrollmentStatusOutcome UpdateEnrollmentStatus(const Model::UpdateEnrollmentStatusRequest& request) const;
/**
* A Callable wrapper for UpdateEnrollmentStatus that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateEnrollmentStatusOutcomeCallable UpdateEnrollmentStatusCallable(const UpdateEnrollmentStatusRequestT& request) const
{
return SubmitCallable(&ComputeOptimizerClient::UpdateEnrollmentStatus, request);
}
/**
* An Async wrapper for UpdateEnrollmentStatus that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateEnrollmentStatusAsync(const UpdateEnrollmentStatusRequestT& request, const UpdateEnrollmentStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ComputeOptimizerClient::UpdateEnrollmentStatus, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const ComputeOptimizerClientConfiguration& clientConfiguration);
ComputeOptimizerClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace ComputeOptimizer
} // namespace Aws