/** * 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