# WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
# See https://github.com/aws-beam/aws-codegen for more details.
defmodule AWS.ComputeOptimizer do
@moduledoc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/).
"""
alias AWS.Client
alias AWS.Request
def metadata do
%{
abbreviation: nil,
api_version: "2019-11-01",
content_type: "application/x-amz-json-1.0",
credential_scope: nil,
endpoint_prefix: "compute-optimizer",
global?: false,
protocol: "json",
service_id: "Compute Optimizer",
signature_version: "v4",
signing_name: "compute-optimizer",
target_prefix: "ComputeOptimizerService"
}
end
@doc """
Deletes a recommendation preference, such as enhanced infrastructure metrics.
For more information, see [Activating enhanced infrastructure metrics](https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html)
in the *Compute Optimizer User Guide*.
"""
def delete_recommendation_preferences(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "DeleteRecommendationPreferences", input, options)
end
@doc """
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.
"""
def describe_recommendation_export_jobs(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "DescribeRecommendationExportJobs", input, options)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html)
in the *Compute Optimizer User Guide*.
You can have only one Auto Scaling group export job in progress per Amazon Web
Services Region.
"""
def export_auto_scaling_group_recommendations(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "ExportAutoScalingGroupRecommendations", input, options)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html)
in the *Compute Optimizer User Guide*.
You can only have one Amazon ECS service export job in progress per Amazon Web
Services Region.
"""
def export_e_c_s_service_recommendations(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "ExportECSServiceRecommendations", input, options)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html)
in the *Compute Optimizer User Guide*.
You can have only one Amazon EBS volume export job in progress per Amazon Web
Services Region.
"""
def export_ebs_volume_recommendations(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "ExportEBSVolumeRecommendations", input, options)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html)
in the *Compute Optimizer User Guide*.
You can have only one Amazon EC2 instance export job in progress per Amazon Web
Services Region.
"""
def export_ec2_instance_recommendations(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "ExportEC2InstanceRecommendations", input, options)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html)
in the *Compute Optimizer User Guide*.
You can have only one Lambda function export job in progress per Amazon Web
Services Region.
"""
def export_lambda_function_recommendations(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "ExportLambdaFunctionRecommendations", input, options)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html)
in the *Compute Optimizer User Guide*.
"""
def get_auto_scaling_group_recommendations(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "GetAutoScalingGroupRecommendations", input, options)
end
@doc """
Returns the projected metrics of Amazon ECS service recommendations.
"""
def get_e_c_s_service_recommendation_projected_metrics(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(
client,
meta,
"GetECSServiceRecommendationProjectedMetrics",
input,
options
)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html)
in the *Compute Optimizer User Guide*.
"""
def get_e_c_s_service_recommendations(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "GetECSServiceRecommendations", input, options)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html)
in the *Compute Optimizer User Guide*.
"""
def get_ebs_volume_recommendations(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "GetEBSVolumeRecommendations", input, options)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html)
in the *Compute Optimizer User Guide*.
"""
def get_ec2_instance_recommendations(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "GetEC2InstanceRecommendations", input, options)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
"""
def get_ec2_recommendation_projected_metrics(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "GetEC2RecommendationProjectedMetrics", input, options)
end
@doc """
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`.
"""
def get_effective_recommendation_preferences(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "GetEffectiveRecommendationPreferences", input, options)
end
@doc """
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.
"""
def get_enrollment_status(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "GetEnrollmentStatus", input, options)
end
@doc """
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.
"""
def get_enrollment_statuses_for_organization(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "GetEnrollmentStatusesForOrganization", input, options)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html)
in the *Compute Optimizer User Guide*.
"""
def get_lambda_function_recommendations(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "GetLambdaFunctionRecommendations", input, options)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html)
in the *Compute Optimizer User Guide*.
"""
def get_recommendation_preferences(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "GetRecommendationPreferences", input, options)
end
@doc """
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`.
"""
def get_recommendation_summaries(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "GetRecommendationSummaries", input, options)
end
@doc """
Creates a new recommendation preference or updates an existing recommendation
preference, such as enhanced infrastructure metrics.
For more information, see [Activating enhanced infrastructure metrics](https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html)
in the *Compute Optimizer User Guide*.
"""
def put_recommendation_preferences(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "PutRecommendationPreferences", input, options)
end
@doc """
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html)
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](https://docs.aws.amazon.com/compute-optimizer/latest/ug/using-service-linked-roles.html)
in the *Compute Optimizer User Guide*.
"""
def update_enrollment_status(%Client{} = client, input, options \\ []) do
meta = metadata()
Request.request_post(client, meta, "UpdateEnrollmentStatus", input, options)
end
end