
eaming.smithy.aws-compute-optimizer-spec.2023.02.09.source-code.computeoptimizer.smithy Maven / Gradle / Ivy
$version: "2.0"
metadata suppressions = [
{
id: "HttpMethodSemantics"
namespace: "*"
}
{
id: "HttpResponseCodeSemantics"
namespace: "*"
}
{
id: "PaginatedTrait"
namespace: "*"
}
{
id: "HttpHeaderTrait"
namespace: "*"
}
{
id: "HttpUriConflict"
namespace: "*"
}
{
id: "Service"
namespace: "*"
}
]
namespace com.amazonaws.computeoptimizer
use aws.api#service
use aws.auth#sigv4
use aws.protocols#awsJson1_0
/// 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.
@service(
sdkId: "Compute Optimizer"
arnNamespace: "compute-optimizer"
cloudFormationName: "ComputeOptimizer"
cloudTrailEventSource: "computeoptimizer.amazonaws.com"
endpointPrefix: "compute-optimizer"
)
@sigv4(
name: "compute-optimizer"
)
@awsJson1_0
@title("AWS Compute Optimizer")
service ComputeOptimizerService {
version: "2019-11-01"
operations: [
DeleteRecommendationPreferences
DescribeRecommendationExportJobs
ExportAutoScalingGroupRecommendations
ExportEBSVolumeRecommendations
ExportEC2InstanceRecommendations
ExportECSServiceRecommendations
ExportLambdaFunctionRecommendations
GetAutoScalingGroupRecommendations
GetEBSVolumeRecommendations
GetEC2InstanceRecommendations
GetEC2RecommendationProjectedMetrics
GetECSServiceRecommendationProjectedMetrics
GetECSServiceRecommendations
GetEffectiveRecommendationPreferences
GetEnrollmentStatus
GetEnrollmentStatusesForOrganization
GetLambdaFunctionRecommendations
GetRecommendationPreferences
GetRecommendationSummaries
PutRecommendationPreferences
UpdateEnrollmentStatus
]
}
/// Deletes a recommendation preference, such as enhanced infrastructure metrics.
/// For more information, see Activating
/// enhanced infrastructure metrics in the Compute Optimizer User
/// Guide.
operation DeleteRecommendationPreferences {
input: DeleteRecommendationPreferencesRequest
output: DeleteRecommendationPreferencesResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
OptInRequiredException
ResourceNotFoundException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
@paginated(
inputToken: "nextToken"
outputToken: "nextToken"
items: "recommendationExportJobs"
pageSize: "maxResults"
)
operation DescribeRecommendationExportJobs {
input: DescribeRecommendationExportJobsRequest
output: DescribeRecommendationExportJobsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
OptInRequiredException
ResourceNotFoundException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
operation ExportAutoScalingGroupRecommendations {
input: ExportAutoScalingGroupRecommendationsRequest
output: ExportAutoScalingGroupRecommendationsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
LimitExceededException
MissingAuthenticationToken
OptInRequiredException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
operation ExportEBSVolumeRecommendations {
input: ExportEBSVolumeRecommendationsRequest
output: ExportEBSVolumeRecommendationsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
LimitExceededException
MissingAuthenticationToken
OptInRequiredException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
operation ExportEC2InstanceRecommendations {
input: ExportEC2InstanceRecommendationsRequest
output: ExportEC2InstanceRecommendationsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
LimitExceededException
MissingAuthenticationToken
OptInRequiredException
ServiceUnavailableException
ThrottlingException
]
}
///
/// 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.
operation ExportECSServiceRecommendations {
input: ExportECSServiceRecommendationsRequest
output: ExportECSServiceRecommendationsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
LimitExceededException
MissingAuthenticationToken
OptInRequiredException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
operation ExportLambdaFunctionRecommendations {
input: ExportLambdaFunctionRecommendationsRequest
output: ExportLambdaFunctionRecommendationsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
LimitExceededException
MissingAuthenticationToken
OptInRequiredException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
operation GetAutoScalingGroupRecommendations {
input: GetAutoScalingGroupRecommendationsRequest
output: GetAutoScalingGroupRecommendationsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
OptInRequiredException
ResourceNotFoundException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
operation GetEBSVolumeRecommendations {
input: GetEBSVolumeRecommendationsRequest
output: GetEBSVolumeRecommendationsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
OptInRequiredException
ResourceNotFoundException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
operation GetEC2InstanceRecommendations {
input: GetEC2InstanceRecommendationsRequest
output: GetEC2InstanceRecommendationsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
OptInRequiredException
ResourceNotFoundException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
///
operation GetEC2RecommendationProjectedMetrics {
input: GetEC2RecommendationProjectedMetricsRequest
output: GetEC2RecommendationProjectedMetricsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
OptInRequiredException
ResourceNotFoundException
ServiceUnavailableException
ThrottlingException
]
}
///
/// Returns the projected metrics of Amazon ECS service recommendations.
///
operation GetECSServiceRecommendationProjectedMetrics {
input: GetECSServiceRecommendationProjectedMetricsRequest
output: GetECSServiceRecommendationProjectedMetricsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
OptInRequiredException
ResourceNotFoundException
ServiceUnavailableException
ThrottlingException
]
}
///
/// 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.
///
operation GetECSServiceRecommendations {
input: GetECSServiceRecommendationsRequest
output: GetECSServiceRecommendationsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
OptInRequiredException
ResourceNotFoundException
ServiceUnavailableException
ThrottlingException
]
}
/// 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
.
operation GetEffectiveRecommendationPreferences {
input: GetEffectiveRecommendationPreferencesRequest
output: GetEffectiveRecommendationPreferencesResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
OptInRequiredException
ResourceNotFoundException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
operation GetEnrollmentStatus {
input: GetEnrollmentStatusRequest
output: GetEnrollmentStatusResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
@paginated(
inputToken: "nextToken"
outputToken: "nextToken"
items: "accountEnrollmentStatuses"
pageSize: "maxResults"
)
operation GetEnrollmentStatusesForOrganization {
input: GetEnrollmentStatusesForOrganizationRequest
output: GetEnrollmentStatusesForOrganizationResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
@paginated(
inputToken: "nextToken"
outputToken: "nextToken"
items: "lambdaFunctionRecommendations"
pageSize: "maxResults"
)
operation GetLambdaFunctionRecommendations {
input: GetLambdaFunctionRecommendationsRequest
output: GetLambdaFunctionRecommendationsResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
LimitExceededException
MissingAuthenticationToken
OptInRequiredException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
@paginated(
inputToken: "nextToken"
outputToken: "nextToken"
items: "recommendationPreferencesDetails"
pageSize: "maxResults"
)
operation GetRecommendationPreferences {
input: GetRecommendationPreferencesRequest
output: GetRecommendationPreferencesResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
OptInRequiredException
ResourceNotFoundException
ServiceUnavailableException
ThrottlingException
]
}
/// 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
.
///
///
@paginated(
inputToken: "nextToken"
outputToken: "nextToken"
items: "recommendationSummaries"
pageSize: "maxResults"
)
operation GetRecommendationSummaries {
input: GetRecommendationSummariesRequest
output: GetRecommendationSummariesResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
OptInRequiredException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
operation PutRecommendationPreferences {
input: PutRecommendationPreferencesRequest
output: PutRecommendationPreferencesResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
OptInRequiredException
ResourceNotFoundException
ServiceUnavailableException
ThrottlingException
]
}
/// 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.
operation UpdateEnrollmentStatus {
input: UpdateEnrollmentStatusRequest
output: UpdateEnrollmentStatusResponse
errors: [
AccessDeniedException
InternalServerException
InvalidParameterValueException
MissingAuthenticationToken
ServiceUnavailableException
ThrottlingException
]
}
/// You do not have sufficient access to perform this action.
@error("client")
@httpError(403)
structure AccessDeniedException {
message: ErrorMessage
}
/// Describes the enrollment status of an organization's member accounts in Compute Optimizer.
structure AccountEnrollmentStatus {
/// The Amazon Web Services account ID.
accountId: AccountId
/// The account enrollment status.
status: Status
/// The reason for the account enrollment status.
/// For example, an account might show a status of Pending
because member
/// accounts of an organization require more time to be enrolled in the service.
statusReason: StatusReason
/// The Unix epoch timestamp, in seconds, of when the account enrollment status was last
/// updated.
lastUpdatedTimestamp: LastUpdatedTimestamp
}
/// Describes the configuration of an Auto Scaling group.
structure AutoScalingGroupConfiguration {
/// The desired capacity, or number of instances, for the Auto Scaling group.
desiredCapacity: DesiredCapacity = 0
/// The minimum size, or minimum number of instances, for the Auto Scaling
/// group.
minSize: MinSize = 0
/// The maximum size, or maximum number of instances, for the Auto Scaling
/// group.
maxSize: MaxSize = 0
/// The instance type for the Auto Scaling group.
instanceType: InstanceType
}
/// Describes an Auto Scaling group recommendation.
structure AutoScalingGroupRecommendation {
/// The Amazon Web Services account ID of the Auto Scaling group.
accountId: AccountId
/// The Amazon Resource Name (ARN) of the Auto Scaling group.
autoScalingGroupArn: AutoScalingGroupArn
/// The name of the Auto Scaling group.
autoScalingGroupName: AutoScalingGroupName
/// The finding classification of the Auto Scaling group.
/// Findings for Auto Scaling groups include:
///
/// -
///
///
/// NotOptimized
/// —An Auto Scaling group is considered not optimized when Compute Optimizer identifies a
/// recommendation that can provide better performance for your workload.
///
/// -
///
///
/// Optimized
/// —An Auto Scaling
/// group is considered optimized when Compute Optimizer determines that the group
/// is correctly provisioned to run your workload based on the chosen instance type.
/// For optimized resources, Compute Optimizer might recommend a new generation
/// instance type.
///
///
finding: Finding
/// An array of objects that describe the utilization metrics of the Auto Scaling
/// group.
utilizationMetrics: UtilizationMetrics
/// The number of days for which utilization metrics were analyzed for the Auto Scaling group.
lookBackPeriodInDays: LookBackPeriodInDays = 0
/// An array of objects that describe the current configuration of the Auto Scaling
/// group.
currentConfiguration: AutoScalingGroupConfiguration
/// An array of objects that describe the recommendation options for the Auto Scaling
/// group.
recommendationOptions: AutoScalingGroupRecommendationOptions
/// The timestamp of when the Auto Scaling group recommendation was last
/// generated.
lastRefreshTimestamp: LastRefreshTimestamp
/// The risk of the current Auto Scaling group not meeting the performance needs of
/// its workloads. The higher the risk, the more likely the current Auto Scaling group
/// configuration has insufficient capacity and cannot meet workload requirements.
currentPerformanceRisk: CurrentPerformanceRisk
/// An object that describes the effective recommendation preferences for the Auto Scaling group.
effectiveRecommendationPreferences: EffectiveRecommendationPreferences
/// The applications that might be running on the instances in the Auto Scaling group
/// as inferred by Compute Optimizer.
/// Compute Optimizer can infer if one of the following applications might be running on
/// the instances:
///
/// -
///
/// AmazonEmr
- Infers that Amazon EMR might be running on
/// the instances.
///
/// -
///
/// ApacheCassandra
- Infers that Apache Cassandra might be running
/// on the instances.
///
/// -
///
/// ApacheHadoop
- Infers that Apache Hadoop might be running on the
/// instances.
///
/// -
///
/// Memcached
- Infers that Memcached might be running on the
/// instances.
///
/// -
///
/// NGINX
- Infers that NGINX might be running on the
/// instances.
///
/// -
///
/// PostgreSql
- Infers that PostgreSQL might be running on the
/// instances.
///
/// -
///
/// Redis
- Infers that Redis might be running on the
/// instances.
///
///
inferredWorkloadTypes: InferredWorkloadTypes
}
/// Describes a recommendation option for an Auto Scaling group.
structure AutoScalingGroupRecommendationOption {
/// An array of objects that describe an Auto Scaling group configuration.
configuration: AutoScalingGroupConfiguration
/// An array of objects that describe the projected utilization metrics of the Auto Scaling group recommendation option.
///
/// The Cpu
and Memory
metrics are the only projected
/// utilization metrics returned. 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.
///
projectedUtilizationMetrics: ProjectedUtilizationMetrics
/// The performance risk of the Auto Scaling group configuration
/// recommendation.
/// Performance risk indicates the likelihood of the recommended instance type not meeting
/// the resource needs of your workload. Compute Optimizer calculates an individual
/// performance risk score for each specification of the recommended instance, including
/// CPU, memory, EBS throughput, EBS IOPS, disk throughput, disk IOPS, network throughput,
/// and network PPS.
/// The performance
/// risk of the recommended instance is calculated as the maximum performance risk score
/// across the analyzed resource specifications.
/// The value ranges from 0
- 4
, with 0
meaning
/// that the recommended resource is predicted to always provide enough hardware capability.
/// The higher the performance risk is, the more likely you should validate whether the
/// recommendation will meet the performance requirements of your workload before migrating
/// your resource.
performanceRisk: PerformanceRisk = 0
/// The rank of the Auto Scaling group recommendation option.
/// The top recommendation option is ranked as 1
.
rank: Rank = 0
/// An object that describes the savings opportunity for the Auto Scaling group
/// recommendation option. Savings opportunity includes the estimated monthly savings amount
/// and percentage.
savingsOpportunity: SavingsOpportunity
/// The level of effort required to migrate from the current instance type to the
/// recommended instance type.
/// For example, the migration effort is Low
if Amazon EMR is the
/// inferred workload type and an Amazon Web Services Graviton instance type is recommended.
/// The migration effort is Medium
if a workload type couldn't be inferred but
/// an Amazon Web Services Graviton instance type is recommended. The migration effort is
/// VeryLow
if both the current and recommended instance types are of the
/// same CPU architecture.
migrationEffort: MigrationEffort
}
///
/// Describes the container configurations within the tasks of your Amazon ECS service.
///
structure ContainerConfiguration {
///
/// The name of the container.
///
containerName: ContainerName
///
/// The memory size configurations for the container.
///
memorySizeConfiguration: MemorySizeConfiguration
///
/// The number of CPU units reserved for the container.
///
cpu: NullableCpu
}
///
/// The CPU and memory recommendations for a container within the tasks of your Amazon ECS service.
///
structure ContainerRecommendation {
///
/// The name of the container.
///
containerName: ContainerName
///
/// The recommended memory size configurations for the container.
///
memorySizeConfiguration: MemorySizeConfiguration
///
/// The recommended number of CPU units reserved for the container.
///
cpu: NullableCpu
}
/// Describes the performance risk ratings for a given resource type.
/// Resources with a high
or medium
rating are at risk of not
/// meeting the performance needs of their workloads, while resources with a
/// low
rating are performing well in their workloads.
structure CurrentPerformanceRiskRatings {
/// A count of the applicable resource types with a high performance risk rating.
high: High = 0
/// A count of the applicable resource types with a medium performance risk rating.
medium: Medium = 0
/// A count of the applicable resource types with a low performance risk rating.
low: Low = 0
/// A count of the applicable resource types with a very low performance risk
/// rating.
veryLow: VeryLow = 0
}
structure DeleteRecommendationPreferencesRequest {
/// The target resource type of the recommendation preference to delete.
/// The Ec2Instance
option encompasses standalone instances and instances
/// that are part of Auto Scaling groups. The AutoScalingGroup
option
/// encompasses only instances that are part of an Auto Scaling group.
///
/// The valid values for this parameter are Ec2Instance
and
/// AutoScalingGroup
.
///
@required
resourceType: ResourceType
/// An object that describes the scope of the recommendation preference to delete.
/// You can delete recommendation preferences that are created at the organization level
/// (for management accounts of an organization only), account level, and resource level.
/// For more information, see Activating
/// enhanced infrastructure metrics in the Compute Optimizer User
/// Guide.
scope: Scope
/// The name of the recommendation preference to delete.
@required
recommendationPreferenceNames: RecommendationPreferenceNames
}
structure DeleteRecommendationPreferencesResponse {}
structure DescribeRecommendationExportJobsRequest {
/// The identification numbers of the export jobs to return.
/// An export job ID is returned when you create an export using the ExportAutoScalingGroupRecommendations or ExportEC2InstanceRecommendations actions.
/// All export jobs created in the last seven days are returned if this parameter is
/// omitted.
jobIds: JobIds
/// An array of objects to specify a filter that returns a more specific list of export
/// jobs.
filters: JobFilters
/// The token to advance to the next page of export jobs.
nextToken: NextToken
/// The maximum number of export jobs to return with a single request.
/// To retrieve the remaining results, make another request with the returned
/// nextToken
value.
maxResults: MaxResults
}
structure DescribeRecommendationExportJobsResponse {
/// An array of objects that describe recommendation export jobs.
recommendationExportJobs: RecommendationExportJobs
/// The token to use to advance to the next page of export jobs.
/// This value is null when there are no more pages of export jobs to return.
nextToken: NextToken
}
/// Describes a filter that returns a more specific list of Amazon Elastic Block Store
/// (Amazon EBS) volume recommendations. Use this filter with the GetEBSVolumeRecommendations action.
/// You can use LambdaFunctionRecommendationFilter
with the GetLambdaFunctionRecommendations action, JobFilter
with the
/// DescribeRecommendationExportJobs action, and Filter
/// with the GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations actions.
structure EBSFilter {
/// The name of the filter.
/// Specify Finding
to return recommendations with a specific finding
/// classification (for example, NotOptimized
).
name: EBSFilterName
/// The value of the filter.
/// The valid values are Optimized
, or NotOptimized
.
values: FilterValues
}
/// Describes a utilization metric of an Amazon Elastic Block Store (Amazon EBS)
/// volume.
/// Compare the utilization metric data of your resource against its projected utilization
/// metric data to determine the performance difference between your current resource and
/// the recommended option.
structure EBSUtilizationMetric {
/// The name of the utilization metric.
/// The following utilization metrics are available:
///
/// -
///
/// VolumeReadOpsPerSecond
- The completed read operations per second
/// from the volume in a specified period of time.
/// Unit: Count
///
/// -
///
/// VolumeWriteOpsPerSecond
- The completed write operations per
/// second to the volume in a specified period of time.
/// Unit: Count
///
/// -
///
/// VolumeReadBytesPerSecond
- The bytes read per second from the
/// volume in a specified period of time.
/// Unit: Bytes
///
/// -
///
/// VolumeWriteBytesPerSecond
- The bytes written to the volume in a
/// specified period of time.
/// Unit: Bytes
///
///
name: EBSMetricName
/// The statistic of the utilization metric.
/// The Compute Optimizer API, Command Line Interface (CLI), and SDKs
/// return utilization metrics using only the Maximum
statistic, which is the
/// highest value observed during the specified period.
/// The Compute Optimizer console displays graphs for some utilization metrics using the
/// Average
statistic, which is the value of Sum
/
/// SampleCount
during the specified period. For more information, see
/// Viewing resource
/// recommendations in the Compute Optimizer User
/// Guide. You can also get averaged utilization metric data for your resources
/// using Amazon CloudWatch. For more information, see the Amazon CloudWatch
/// User Guide.
statistic: MetricStatistic
/// The value of the utilization metric.
value: MetricValue = 0
}
///
/// Describes the projected metrics of an Amazon ECS service recommendation option.
///
/// To determine the performance difference between your current Amazon ECS service and the recommended option,
/// compare the metric data of your service against its projected metric data.
structure ECSServiceProjectedMetric {
///
/// The name of the projected metric.
///
/// The following metrics are available:
///
/// -
///
/// Cpu
— The percentage of allocated compute units
/// that are currently in use on the service tasks.
///
/// -
///
/// Memory
— The percentage of memory that's
/// currently in use on the service tasks.
///
///
name: ECSServiceMetricName
///
/// The timestamps of the projected metric.
///
timestamps: Timestamps
///
/// The upper bound values for the projected metric.
///
upperBoundValues: MetricValues
///
/// The lower bound values for the projected metric.
///
lowerBoundValues: MetricValues
}
///
/// Describes the projected utilization metrics of an Amazon ECS service recommendation option.
///
/// To determine the performance difference between your current Amazon ECS service and the recommended option,
/// compare the utilization metric data of your service against its projected utilization metric data.
structure ECSServiceProjectedUtilizationMetric {
///
/// The name of the projected utilization metric.
///
/// The following utilization metrics are available:
///
/// -
///
/// Cpu
— The percentage of allocated compute units
/// that are currently in use on the service tasks.
///
/// -
///
/// Memory
— The percentage of memory that's
/// currently in use on the service tasks.
///
///
name: ECSServiceMetricName
/// The statistic of the projected utilization metric.
/// The Compute Optimizer API, Command Line Interface (CLI), and SDKs
/// return utilization metrics using only the Maximum
statistic, which is the
/// highest value observed during the specified period.
/// The Compute Optimizer console displays graphs for some utilization metrics using the
/// Average
statistic, which is the value of Sum
/
/// SampleCount
during the specified period. For more information, see
/// Viewing resource
/// recommendations in the Compute Optimizer User
/// Guide. You can also get averaged utilization metric data for your resources
/// using Amazon CloudWatch. For more information, see the Amazon CloudWatch
/// User Guide.
statistic: ECSServiceMetricStatistic
///
/// The lower bound values for the projected utilization metrics.
///
lowerBoundValue: LowerBoundValue = 0
///
/// The upper bound values for the projected utilization metrics.
///
upperBoundValue: UpperBoundValue = 0
}
///
/// Describes an Amazon ECS service recommendation.
///
structure ECSServiceRecommendation {
///
/// The Amazon Resource Name (ARN) of the current Amazon ECS service.
///
///
/// The following is the format of the ARN:
///
///
/// arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name
///
serviceArn: ServiceArn
///
/// The Amazon Web Services account ID of the Amazon ECS service.
///
accountId: AccountId
///
/// The configuration of the current Amazon ECS service.
///
currentServiceConfiguration: ServiceConfiguration
///
/// An array of objects that describe the utilization metrics of the Amazon ECS service.
///
utilizationMetrics: ECSServiceUtilizationMetrics
///
/// The number of days the Amazon ECS service utilization metrics were analyzed.
///
lookbackPeriodInDays: LookBackPeriodInDays = 0
///
/// The launch type the Amazon ECS service is using.
///
///
/// Compute Optimizer only supports the Fargate launch type.
///
launchType: ECSServiceLaunchType
///
/// The timestamp of when the Amazon ECS service recommendation was last generated.
///
lastRefreshTimestamp: LastRefreshTimestamp
///
/// The finding classification of an Amazon ECS service.
///
/// Findings for Amazon ECS services include:
///
/// -
///
///
/// Underprovisioned
/// —
/// When Compute Optimizer detects that there’s not enough memory or CPU, an Amazon ECS
/// service is considered under-provisioned. An under-provisioned service might
/// result in poor application performance.
///
/// -
///
///
/// Overprovisioned
/// —
/// When Compute Optimizer detects that there’s excessive memory or CPU, an Amazon ECS
/// service is considered over-provisioned. An over-provisioned service might
/// result in additional infrastructure costs.
///
/// -
///
///
/// Optimized
/// —
/// When both the CPU and memory of your Amazon ECS service meet the performance requirements
/// of your workload, the service is considered optimized.
///
///
finding: ECSServiceRecommendationFinding
///
/// The reason for the finding classification of an Amazon ECS service.
///
/// Finding reason codes for Amazon ECS services include:
///
/// -
///
///
/// CPUUnderprovisioned
/// —
/// The service CPU configuration can be sized up to enhance the performance of
/// your workload. This is identified by analyzing the CPUUtilization
metric of the
/// current service during the look-back period.
///
/// -
///
///
/// CPUOverprovisioned
/// —
/// The service CPU configuration can be sized down while still meeting the performance
/// requirements of your workload. This is identified by analyzing the CPUUtilization
/// metric of the current service during the look-back period.
///
/// -
///
///
/// MemoryUnderprovisioned
/// —
/// The service memory configuration can be sized up to enhance the performance of
/// your workload. This is identified by analyzing the MemoryUtilization
metric of the
/// current service during the look-back period.
///
/// -
///
///
/// MemoryOverprovisioned
/// —
/// The service memory configuration can be sized down while still meeting the
/// performance requirements of your workload. This is identified by analyzing the
/// MemoryUtilization
metric of the current service during the look-back period.
///
///
findingReasonCodes: ECSServiceRecommendationFindingReasonCodes
///
/// An array of objects that describe the recommendation options for the Amazon ECS service.
///
serviceRecommendationOptions: ECSServiceRecommendationOptions
///
/// The risk of the current Amazon ECS service not meeting the performance needs of its workloads.
/// The higher the risk, the more likely the current service can't meet the performance
/// requirements of its workload.
///
currentPerformanceRisk: CurrentPerformanceRisk
}
///
/// Describes a filter that returns a more specific list of Amazon ECS service
/// recommendations. Use this filter with the GetECSServiceRecommendations action.
///
structure ECSServiceRecommendationFilter {
///
/// The name of the filter.
///
///
/// Specify Finding
to return recommendations with a specific finding classification.
///
///
/// Specify FindingReasonCode
to return recommendations with a specific finding reason code.
///
name: ECSServiceRecommendationFilterName
///
/// The value of the filter.
///
/// The valid values for this parameter are as follows:
///
/// -
///
If you specify the name
parameter as Finding
, specify
/// Optimized
, NotOptimized
, or Unavailable
.
///
/// -
///
If you specify the name
parameter as FindingReasonCode
, specify
/// CPUUnderprovisioned
, CPUOverprovisioned
,
/// MemoryUnderprovisioned
, or MemoryOverprovisioned
.
///
///
values: FilterValues
}
///
/// Describes the recommendation options for an Amazon ECS service.
///
structure ECSServiceRecommendationOption {
///
/// The memory size of the Amazon ECS service recommendation option.
///
memory: NullableMemory
///
/// The CPU size of the Amazon ECS service recommendation option.
///
cpu: NullableCpu
savingsOpportunity: SavingsOpportunity
///
/// An array of objects that describe the projected utilization metrics of the Amazon ECS service recommendation option.
///
projectedUtilizationMetrics: ECSServiceProjectedUtilizationMetrics
///
/// The CPU and memory size recommendations for the containers within the task of your Amazon ECS service.
///
containerRecommendations: ContainerRecommendations
}
///
/// Describes the projected metrics of an Amazon ECS service recommendation option.
///
/// To determine the performance difference between your current Amazon ECS service and the recommended option,
/// compare the metric data of your service against its projected metric data.
structure ECSServiceRecommendedOptionProjectedMetric {
///
/// The recommended CPU size for the Amazon ECS service.
///
recommendedCpuUnits: CpuSize = 0
///
/// The recommended memory size for the Amazon ECS service.
///
recommendedMemorySize: MemorySize = 0
///
/// An array of objects that describe the projected metric.
///
projectedMetrics: ECSServiceProjectedMetrics
}
///
/// Describes the utilization metric of an Amazon ECS service.
///
/// To determine the performance difference between your current Amazon ECS service and the recommended option,
/// compare the utilization metric data of your service against its projected utilization metric data.
structure ECSServiceUtilizationMetric {
///
/// The name of the utilization metric.
///
/// The following utilization metrics are available:
///
/// -
///
/// Cpu
— The amount of CPU capacity that's used in the service.
///
/// -
///
/// Memory
— The amount of memory that's used in the service.
///
///
name: ECSServiceMetricName
/// The statistic of the utilization metric.
/// The Compute Optimizer API, Command Line Interface (CLI), and SDKs
/// return utilization metrics using only the Maximum
statistic, which is the
/// highest value observed during the specified period.
/// The Compute Optimizer console displays graphs for some utilization metrics using the
/// Average
statistic, which is the value of Sum
/
/// SampleCount
during the specified period. For more information, see
/// Viewing resource
/// recommendations in the Compute Optimizer User
/// Guide. You can also get averaged utilization metric data for your resources
/// using Amazon CloudWatch. For more information, see the Amazon CloudWatch
/// User Guide.
statistic: ECSServiceMetricStatistic
///
/// The value of the utilization metric.
///
value: MetricValue = 0
}
/// Describes the effective recommendation preferences for a resource.
structure EffectiveRecommendationPreferences {
/// Describes the CPU vendor and architecture for an instance or Auto Scaling group
/// recommendations.
/// For example, when you specify AWS_ARM64
with:
///
/// -
///
A GetEC2InstanceRecommendations or GetAutoScalingGroupRecommendations request, Compute Optimizer
/// returns recommendations that consist of Graviton2 instance types only.
///
/// -
///
A GetEC2RecommendationProjectedMetrics request, Compute Optimizer returns projected utilization metrics for Graviton2 instance type
/// recommendations only.
///
/// -
///
A ExportEC2InstanceRecommendations or ExportAutoScalingGroupRecommendations request, Compute Optimizer
/// exports recommendations that consist of Graviton2 instance types only.
///
///
cpuVendorArchitectures: CpuVendorArchitectures
/// Describes the activation status of the enhanced infrastructure metrics
/// preference.
/// A status of Active
confirms that the preference is applied in the latest
/// recommendation refresh, and a status of Inactive
confirms that it's not yet
/// applied to recommendations.
/// For more information, see Enhanced
/// infrastructure metrics in the Compute Optimizer User
/// Guide.
enhancedInfrastructureMetrics: EnhancedInfrastructureMetrics
/// Describes the activation status of the inferred workload types preference.
/// A status of Active
confirms that the preference is applied in the latest
/// recommendation refresh. A status of Inactive
confirms that it's not yet
/// applied to recommendations.
inferredWorkloadTypes: InferredWorkloadTypesPreference
/// An object that describes the external metrics recommendation preference.
/// If the preference is applied in the latest recommendation refresh, an object with a
/// valid source
value appears in the response. If the preference isn't applied
/// to the recommendations already, then this object doesn't appear in the response.
externalMetricsPreference: ExternalMetricsPreference
}
/// Describes a filter that returns a more specific list of account enrollment statuses.
/// Use this filter with the GetEnrollmentStatusesForOrganization
/// action.
structure EnrollmentFilter {
/// The name of the filter.
/// Specify Status
to return accounts with a specific enrollment status (for
/// example, Active
).
name: EnrollmentFilterName
/// The value of the filter.
/// The valid values are Active
, Inactive
, Pending
,
/// and Failed
.
values: FilterValues
}
/// Describes the estimated monthly savings amount possible, based on On-Demand instance
/// pricing, by adopting Compute Optimizer recommendations for a given resource.
/// For more information, see Estimated monthly savings and savings opportunities in the
/// Compute Optimizer User Guide.
structure EstimatedMonthlySavings {
/// The currency of the estimated monthly
/// savings.
currency: Currency
/// The value of the estimated monthly savings.
value: Value = 0
}
structure ExportAutoScalingGroupRecommendationsRequest {
/// The IDs of the Amazon Web Services accounts for which to export Auto Scaling group
/// recommendations.
/// If your account is the management account of an organization, use this parameter to
/// specify the member account for which you want to export recommendations.
/// This parameter cannot be specified together with the include member accounts
/// parameter. The parameters are mutually exclusive.
/// Recommendations for member accounts are not included in the export if this parameter,
/// or the include member accounts parameter, is omitted.
/// You can specify multiple account IDs per request.
accountIds: AccountIds
/// An array of objects to specify a filter that exports a more specific set of Auto Scaling group recommendations.
filters: Filters
/// The recommendations data to include in the export file. For more information about the
/// fields that can be exported, see Exported files in the Compute Optimizer User
/// Guide.
fieldsToExport: ExportableAutoScalingGroupFields
/// An object to specify the destination Amazon Simple Storage Service (Amazon S3) bucket
/// name and key prefix for the export job.
/// You must create the destination Amazon S3 bucket for your recommendations
/// export before you create the export job. Compute Optimizer does not create the S3 bucket
/// for you. After you create the S3 bucket, ensure that it has the required permissions
/// policy to allow Compute Optimizer to write the export file to it. If you plan to specify
/// an object prefix when you create the export job, you must include the object prefix in
/// the policy that you add to the S3 bucket. For more information, see Amazon S3 Bucket Policy for Compute Optimizer in the
/// Compute Optimizer User Guide.
@required
s3DestinationConfig: S3DestinationConfig
/// The format of the export file.
/// The only export file format currently supported is Csv
.
fileFormat: FileFormat
/// Indicates whether to include recommendations for resources in all member accounts of
/// the organization if your account is the management account of an organization.
/// The member accounts must also be opted in to Compute Optimizer, and trusted access for
/// Compute Optimizer must be enabled in the organization account. For more information,
/// see Compute Optimizer and Amazon Web Services Organizations trusted access in the
/// Compute Optimizer User Guide.
/// Recommendations for member accounts of the organization are not included in the export
/// file if this parameter is omitted.
/// This parameter cannot be specified together with the account IDs parameter. The
/// parameters are mutually exclusive.
/// Recommendations for member accounts are not included in the export if this parameter,
/// or the account IDs parameter, is omitted.
includeMemberAccounts: IncludeMemberAccounts = false
/// An object to specify the preferences for the Auto Scaling group recommendations
/// to export.
recommendationPreferences: RecommendationPreferences
}
structure ExportAutoScalingGroupRecommendationsResponse {
/// The identification number of the export job.
/// Use the DescribeRecommendationExportJobs action, and specify the job
/// ID to view the status of an export job.
jobId: JobId
/// An object that describes the destination Amazon S3 bucket of a recommendations
/// export file.
s3Destination: S3Destination
}
/// Describes the destination of the recommendations export and metadata files.
structure ExportDestination {
/// An object that describes the destination Amazon Simple Storage Service (Amazon S3)
/// bucket name and object keys of a recommendations export file, and its associated
/// metadata file.
s3: S3Destination
}
structure ExportEBSVolumeRecommendationsRequest {
/// The IDs of the Amazon Web Services accounts for which to export Amazon EBS
/// volume recommendations.
/// If your account is the management account of an organization, use this parameter to
/// specify the member account for which you want to export recommendations.
/// This parameter cannot be specified together with the include member accounts
/// parameter. The parameters are mutually exclusive.
/// Recommendations for member accounts are not included in the export if this parameter,
/// or the include member accounts parameter, is omitted.
/// You can specify multiple account IDs per request.
accountIds: AccountIds
/// An array of objects to specify a filter that exports a more specific set of Amazon EBS volume recommendations.
filters: EBSFilters
/// The recommendations data to include in the export file. For more information about the
/// fields that can be exported, see Exported files in the Compute Optimizer User
/// Guide.
fieldsToExport: ExportableVolumeFields
@required
s3DestinationConfig: S3DestinationConfig
/// The format of the export file.
/// The only export file format currently supported is Csv
.
fileFormat: FileFormat
/// Indicates whether to include recommendations for resources in all member accounts of
/// the organization if your account is the management account of an organization.
/// The member accounts must also be opted in to Compute Optimizer, and trusted access for
/// Compute Optimizer must be enabled in the organization account. For more information,
/// see Compute Optimizer and Amazon Web Services Organizations trusted access in the
/// Compute Optimizer User Guide.
/// Recommendations for member accounts of the organization are not included in the export
/// file if this parameter is omitted.
/// This parameter cannot be specified together with the account IDs parameter. The
/// parameters are mutually exclusive.
/// Recommendations for member accounts are not included in the export if this parameter,
/// or the account IDs parameter, is omitted.
includeMemberAccounts: IncludeMemberAccounts = false
}
structure ExportEBSVolumeRecommendationsResponse {
/// The identification number of the export job.
/// Use the DescribeRecommendationExportJobs action, and specify the job
/// ID to view the status of an export job.
jobId: JobId
s3Destination: S3Destination
}
structure ExportEC2InstanceRecommendationsRequest {
/// The IDs of the Amazon Web Services accounts for which to export instance
/// recommendations.
/// If your account is the management account of an organization, use this parameter to
/// specify the member account for which you want to export recommendations.
/// This parameter cannot be specified together with the include member accounts
/// parameter. The parameters are mutually exclusive.
/// Recommendations for member accounts are not included in the export if this parameter,
/// or the include member accounts parameter, is omitted.
/// You can specify multiple account IDs per request.
accountIds: AccountIds
/// An array of objects to specify a filter that exports a more specific set of instance
/// recommendations.
filters: Filters
/// The recommendations data to include in the export file. For more information about the
/// fields that can be exported, see Exported files in the Compute Optimizer User
/// Guide.
fieldsToExport: ExportableInstanceFields
/// An object to specify the destination Amazon Simple Storage Service (Amazon S3) bucket
/// name and key prefix for the export job.
/// You must create the destination Amazon S3 bucket for your recommendations
/// export before you create the export job. Compute Optimizer does not create the S3 bucket
/// for you. After you create the S3 bucket, ensure that it has the required permissions
/// policy to allow Compute Optimizer to write the export file to it.
/// If you plan to
/// specify an object prefix when you create the export job, you must include the object
/// prefix in the policy that you add to the S3 bucket. For more information, see Amazon S3 Bucket Policy for Compute Optimizer in the
/// Compute Optimizer User Guide.
@required
s3DestinationConfig: S3DestinationConfig
/// The format of the export file.
/// The only export file format currently supported is Csv
.
fileFormat: FileFormat
/// Indicates whether to include recommendations for resources in all member accounts of
/// the organization if your account is the management account of an organization.
/// The member accounts must also be opted in to Compute Optimizer, and trusted access for
/// Compute Optimizer must be enabled in the organization account. For more information,
/// see Compute Optimizer and Amazon Web Services Organizations trusted access in the
/// Compute Optimizer User Guide.
/// Recommendations for member accounts of the organization are not included in the export
/// file if this parameter is omitted.
/// Recommendations for member accounts are not included in the export if this parameter,
/// or the account IDs parameter, is omitted.
includeMemberAccounts: IncludeMemberAccounts = false
/// An object to specify the preferences for the Amazon EC2 instance
/// recommendations to export.
recommendationPreferences: RecommendationPreferences
}
structure ExportEC2InstanceRecommendationsResponse {
/// The identification number of the export job.
/// Use the DescribeRecommendationExportJobs action, and specify the job
/// ID to view the status of an export job.
jobId: JobId
/// An object that describes the destination Amazon S3 bucket of a recommendations
/// export file.
s3Destination: S3Destination
}
structure ExportECSServiceRecommendationsRequest {
///
/// The Amazon Web Services account IDs for the export Amazon ECS service recommendations.
///
/// If your account is the management account or the delegated administrator
/// of an organization, use this parameter to specify the member account you want to
/// export recommendations to.
/// This parameter can't be specified together with the include member accounts
/// parameter. The parameters are mutually exclusive.
/// If this parameter or the include member accounts parameter is omitted,
/// the recommendations for member accounts aren't included in the export.
/// You can specify multiple account IDs per request.
accountIds: AccountIds
///
/// An array of objects to specify a filter that exports a more specific set
/// of Amazon ECS service recommendations.
///
filters: ECSServiceRecommendationFilters
/// The recommendations data to include in the export file. For more information about the
/// fields that can be exported, see Exported files in the Compute Optimizer User
/// Guide.
fieldsToExport: ExportableECSServiceFields
@required
s3DestinationConfig: S3DestinationConfig
///
/// The format of the export file.
///
/// The CSV file is the only export file format currently supported.
fileFormat: FileFormat
/// If your account is the management account or the delegated administrator of an organization,
/// this parameter indicates whether to include recommendations for resources in all member accounts of
/// the organization.
/// The member accounts must also be opted in to Compute Optimizer, and trusted access for
/// Compute Optimizer must be enabled in the organization account. For more information,
/// see Compute Optimizer and Amazon Web Services Organizations trusted access in the
/// Compute Optimizer User Guide.
/// If this parameter is omitted, recommendations for member accounts of the
/// organization aren't included in the export file.
/// If this parameter or the account ID parameter is omitted, recommendations for
/// member accounts aren't included in the export.
includeMemberAccounts: IncludeMemberAccounts = false
}
structure ExportECSServiceRecommendationsResponse {
///
/// The identification number of the export job.
///
/// To view the status of an export job, use the
/// DescribeRecommendationExportJobs action and specify the job ID.
///
jobId: JobId
s3Destination: S3Destination
}
structure ExportLambdaFunctionRecommendationsRequest {
/// The IDs of the Amazon Web Services accounts for which to export Lambda
/// function recommendations.
/// If your account is the management account of an organization, use this parameter to
/// specify the member account for which you want to export recommendations.
/// This parameter cannot be specified together with the include member accounts
/// parameter. The parameters are mutually exclusive.
/// Recommendations for member accounts are not included in the export if this parameter,
/// or the include member accounts parameter, is omitted.
/// You can specify multiple account IDs per request.
accountIds: AccountIds
/// An array of objects to specify a filter that exports a more specific set of Lambda function recommendations.
filters: LambdaFunctionRecommendationFilters
/// The recommendations data to include in the export file. For more information about the
/// fields that can be exported, see Exported files in the Compute Optimizer User
/// Guide.
fieldsToExport: ExportableLambdaFunctionFields
@required
s3DestinationConfig: S3DestinationConfig
/// The format of the export file.
/// The only export file format currently supported is Csv
.
fileFormat: FileFormat
/// Indicates whether to include recommendations for resources in all member accounts of
/// the organization if your account is the management account of an organization.
/// The member accounts must also be opted in to Compute Optimizer, and trusted access for
/// Compute Optimizer must be enabled in the organization account. For more information,
/// see Compute Optimizer and Amazon Web Services Organizations trusted access in the
/// Compute Optimizer User Guide.
/// Recommendations for member accounts of the organization are not included in the export
/// file if this parameter is omitted.
/// This parameter cannot be specified together with the account IDs parameter. The
/// parameters are mutually exclusive.
/// Recommendations for member accounts are not included in the export if this parameter,
/// or the account IDs parameter, is omitted.
includeMemberAccounts: IncludeMemberAccounts = false
}
structure ExportLambdaFunctionRecommendationsResponse {
/// The identification number of the export job.
/// Use the DescribeRecommendationExportJobs action, and specify the job
/// ID to view the status of an export job.
jobId: JobId
s3Destination: S3Destination
}
/// Describes the external metrics preferences for EC2 rightsizing recommendations.
///
structure ExternalMetricsPreference {
/// Contains the source options for external metrics preferences.
source: ExternalMetricsSource
}
/// Describes a filter that returns a more specific list of recommendations. Use this
/// filter with the GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations actions.
/// You can use EBSFilter
with the GetEBSVolumeRecommendations action,
/// LambdaFunctionRecommendationFilter
with the GetLambdaFunctionRecommendations action, and JobFilter
with
/// the DescribeRecommendationExportJobs action.
structure Filter {
/// The name of the filter.
/// Specify Finding
to return recommendations with a specific finding
/// classification (for example, Underprovisioned
).
/// Specify RecommendationSourceType
to return recommendations of a specific
/// resource type (for example, Ec2Instance
).
/// Specify FindingReasonCodes
to return recommendations with a specific
/// finding reason code (for example, CPUUnderprovisioned
).
name: FilterName
/// The value of the filter.
/// The valid values for this parameter are as follows, depending on what you specify for
/// the name
parameter and the resource type that you wish to filter results
/// for:
///
/// -
///
Specify Optimized
or NotOptimized
if you specify the
/// name
parameter as Finding
and you want to filter
/// results for Auto Scaling groups.
///
/// -
///
Specify Underprovisioned
, Overprovisioned
, or
/// Optimized
if you specify the name
parameter as
/// Finding
and you want to filter results for EC2
/// instances.
///
/// -
///
Specify Ec2Instance
or AutoScalingGroup
if you
/// specify the name
parameter as
/// RecommendationSourceType
.
///
/// -
///
Specify one of the following options if you specify the name
/// parameter as FindingReasonCodes
:
///
/// -
///
///
/// CPUOverprovisioned
/// — The
/// instance’s CPU configuration can be sized down while still meeting the
/// performance requirements of your workload.
///
/// -
///
///
/// CPUUnderprovisioned
/// —
/// The instance’s CPU configuration doesn't meet the performance
/// requirements of your workload and there is an alternative instance type
/// that provides better CPU performance.
///
/// -
///
///
/// MemoryOverprovisioned
/// —
/// The instance’s memory configuration can be sized down while still
/// meeting the performance requirements of your workload.
///
/// -
///
///
/// MemoryUnderprovisioned
/// —
/// The instance’s memory configuration doesn't meet the performance
/// requirements of your workload and there is an alternative instance type
/// that provides better memory performance.
///
/// -
///
///
/// EBSThroughputOverprovisioned
/// — The
/// instance’s EBS throughput configuration can be sized down while still
/// meeting the performance requirements of your workload.
///
/// -
///
///
/// EBSThroughputUnderprovisioned
/// — The
/// instance’s EBS throughput configuration doesn't meet the performance
/// requirements of your workload and there is an alternative instance type
/// that provides better EBS throughput performance.
///
/// -
///
///
/// EBSIOPSOverprovisioned
/// —
/// The instance’s EBS IOPS configuration can be sized down while still
/// meeting the performance requirements of your workload.
///
/// -
///
///
/// EBSIOPSUnderprovisioned
///
/// — The instance’s EBS IOPS configuration doesn't meet the performance
/// requirements of your workload and there is an alternative instance type
/// that provides better EBS IOPS performance.
///
/// -
///
///
/// NetworkBandwidthOverprovisioned
/// — The
/// instance’s network bandwidth configuration can be sized down while still
/// meeting the performance requirements of your workload.
///
/// -
///
///
/// NetworkBandwidthUnderprovisioned
/// — The
/// instance’s network bandwidth configuration doesn't meet the performance
/// requirements of your workload and there is an alternative instance type
/// that provides better network bandwidth performance. This finding reason
/// happens when the NetworkIn
or NetworkOut
/// performance of an instance is impacted.
///
/// -
///
///
/// NetworkPPSOverprovisioned
/// — The instance’s
/// network PPS (packets per second) configuration can be sized down while
/// still meeting the performance requirements of your workload.
///
/// -
///
///
/// NetworkPPSUnderprovisioned
/// — The instance’s
/// network PPS (packets per second) configuration doesn't meet the
/// performance requirements of your workload and there is an alternative
/// instance type that provides better network PPS performance.
///
/// -
///
///
/// DiskIOPSOverprovisioned
///
/// — The instance’s disk IOPS configuration can be sized down while still
/// meeting the performance requirements of your workload.
///
/// -
///
///
/// DiskIOPSUnderprovisioned
///
/// — The instance’s disk IOPS configuration doesn't meet the performance
/// requirements of your workload and there is an alternative instance type
/// that provides better disk IOPS performance.
///
/// -
///
///
/// DiskThroughputOverprovisioned
/// — The
/// instance’s disk throughput configuration can be sized down while still
/// meeting the performance requirements of your workload.
///
/// -
///
///
/// DiskThroughputUnderprovisioned
/// — The
/// instance’s disk throughput configuration doesn't meet the performance
/// requirements of your workload and there is an alternative instance type
/// that provides better disk throughput performance.
///
///
///
///
values: FilterValues
}
structure GetAutoScalingGroupRecommendationsRequest {
/// The ID of the Amazon Web Services account for which to return Auto Scaling group
/// recommendations.
/// If your account is the management account of an organization, use this parameter to
/// specify the member account for which you want to return Auto Scaling group
/// recommendations.
/// Only one account ID can be specified per request.
accountIds: AccountIds
/// The Amazon Resource Name (ARN) of the Auto Scaling groups for which to return
/// recommendations.
autoScalingGroupArns: AutoScalingGroupArns
/// The token to advance to the next page of Auto Scaling group
/// recommendations.
nextToken: NextToken
/// The maximum number of Auto Scaling group recommendations to return with a single
/// request.
/// To retrieve the remaining results, make another request with the returned
/// nextToken
value.
maxResults: MaxResults
/// An array of objects to specify a filter that returns a more specific list of Auto Scaling group recommendations.
filters: Filters
/// An object to specify the preferences for the Auto Scaling group recommendations
/// to return in the response.
recommendationPreferences: RecommendationPreferences
}
structure GetAutoScalingGroupRecommendationsResponse {
/// The token to use to advance to the next page of Auto Scaling group
/// recommendations.
/// This value is null when there are no more pages of Auto Scaling group
/// recommendations to return.
nextToken: NextToken
/// An array of objects that describe Auto Scaling group recommendations.
autoScalingGroupRecommendations: AutoScalingGroupRecommendations
/// An array of objects that describe errors of the request.
/// For example, an error is returned if you request recommendations for an unsupported
/// Auto Scaling group.
errors: GetRecommendationErrors
}
structure GetEBSVolumeRecommendationsRequest {
/// The Amazon Resource Name (ARN) of the volumes for which to return
/// recommendations.
volumeArns: VolumeArns
/// The token to advance to the next page of volume recommendations.
nextToken: NextToken
/// The maximum number of volume recommendations to return with a single request.
/// To retrieve the remaining results, make another request with the returned
/// nextToken
value.
maxResults: MaxResults
/// An array of objects to specify a filter that returns a more specific list of volume
/// recommendations.
filters: EBSFilters
/// The ID of the Amazon Web Services account for which to return volume
/// recommendations.
/// If your account is the management account of an organization, use this parameter to
/// specify the member account for which you want to return volume recommendations.
/// Only one account ID can be specified per request.
accountIds: AccountIds
}
structure GetEBSVolumeRecommendationsResponse {
/// The token to use to advance to the next page of volume recommendations.
/// This value is null when there are no more pages of volume recommendations to
/// return.
nextToken: NextToken
/// An array of objects that describe volume recommendations.
volumeRecommendations: VolumeRecommendations
/// An array of objects that describe errors of the request.
/// For example, an error is returned if you request recommendations for an unsupported
/// volume.
errors: GetRecommendationErrors
}
structure GetEC2InstanceRecommendationsRequest {
/// The Amazon Resource Name (ARN) of the instances for which to return
/// recommendations.
instanceArns: InstanceArns
/// The token to advance to the next page of instance recommendations.
nextToken: NextToken
/// The maximum number of instance recommendations to return with a single request.
/// To retrieve the remaining results, make another request with the returned
/// nextToken
value.
maxResults: MaxResults
/// An array of objects to specify a filter that returns a more specific list of instance
/// recommendations.
filters: Filters
/// The ID of the Amazon Web Services account for which to return instance
/// recommendations.
/// If your account is the management account of an organization, use this parameter to
/// specify the member account for which you want to return instance recommendations.
/// Only one account ID can be specified per request.
accountIds: AccountIds
/// An object to specify the preferences for the Amazon EC2 instance
/// recommendations to return in the response.
recommendationPreferences: RecommendationPreferences
}
structure GetEC2InstanceRecommendationsResponse {
/// The token to use to advance to the next page of instance recommendations.
/// This value is null when there are no more pages of instance recommendations to
/// return.
nextToken: NextToken
/// An array of objects that describe instance recommendations.
instanceRecommendations: InstanceRecommendations
/// An array of objects that describe errors of the request.
/// For example, an error is returned if you request recommendations for an instance of an
/// unsupported instance family.
errors: GetRecommendationErrors
}
structure GetEC2RecommendationProjectedMetricsRequest {
/// The Amazon Resource Name (ARN) of the instances for which to return recommendation
/// projected metrics.
@required
instanceArn: InstanceArn
/// The statistic of the projected metrics.
@required
stat: MetricStatistic
/// The granularity, in seconds, of the projected metrics data points.
@required
period: Period = 0
/// The timestamp of the first projected metrics data point to return.
@required
startTime: Timestamp
/// The timestamp of the last projected metrics data point to return.
@required
endTime: Timestamp
/// An object to specify the preferences for the Amazon EC2 recommendation
/// projected metrics to return in the response.
recommendationPreferences: RecommendationPreferences
}
structure GetEC2RecommendationProjectedMetricsResponse {
/// An array of objects that describes projected metrics.
recommendedOptionProjectedMetrics: RecommendedOptionProjectedMetrics
}
structure GetECSServiceRecommendationProjectedMetricsRequest {
///
/// The ARN that identifies the Amazon ECS service.
///
///
/// The following is the format of the ARN:
///
///
/// arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name
///
@required
serviceArn: ServiceArn
///
/// The statistic of the projected metrics.
///
@required
stat: MetricStatistic
///
/// The granularity, in seconds, of the projected metrics data points.
///
@required
period: Period = 0
///
/// The timestamp of the first projected metrics data point to return.
///
@required
startTime: Timestamp
///
/// The timestamp of the last projected metrics data point to return.
///
@required
endTime: Timestamp
}
structure GetECSServiceRecommendationProjectedMetricsResponse {
///
/// An array of objects that describes the projected metrics.
///
recommendedOptionProjectedMetrics: ECSServiceRecommendedOptionProjectedMetrics
}
structure GetECSServiceRecommendationsRequest {
///
/// The ARN that identifies the Amazon ECS service.
///
///
/// The following is the format of the ARN:
///
///
/// arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name
///
serviceArns: ServiceArns
///
/// The token to advance to the next page of Amazon ECS service recommendations.
///
nextToken: NextToken
///
/// The maximum number of Amazon ECS service recommendations to return with a single request.
///
/// To retrieve the remaining results, make another request with the returned
/// nextToken
value.
maxResults: MaxResults
///
/// An array of objects to specify a filter that returns a more specific list of Amazon ECS service recommendations.
///
filters: ECSServiceRecommendationFilters
///
/// Return the Amazon ECS service recommendations to the specified Amazon Web Services account IDs.
///
/// If your account is the management account or the delegated administrator
/// of an organization, use this parameter to return the Amazon ECS service recommendations to specific
/// member accounts.
/// You can only specify one account ID per request.
accountIds: AccountIds
}
structure GetECSServiceRecommendationsResponse {
///
/// The token to advance to the next page of Amazon ECS service recommendations.
///
nextToken: NextToken
///
/// An array of objects that describe the Amazon ECS service recommendations.
///
ecsServiceRecommendations: ECSServiceRecommendations
///
/// An array of objects that describe errors of the request.
///
errors: GetRecommendationErrors
}
structure GetEffectiveRecommendationPreferencesRequest {
/// The Amazon Resource Name (ARN) of the resource for which to confirm effective
/// recommendation preferences. Only EC2 instance and Auto Scaling group ARNs are
/// currently supported.
@required
resourceArn: ResourceArn
}
structure GetEffectiveRecommendationPreferencesResponse {
/// The status of the enhanced infrastructure metrics recommendation preference. Considers
/// all applicable preferences that you might have set at the resource, account, and
/// organization level.
/// A status of Active
confirms that the preference is applied in the latest
/// recommendation refresh, and a status of Inactive
confirms that it's not yet
/// applied to recommendations.
/// To validate whether the preference is applied to your last generated set of
/// recommendations, review the effectiveRecommendationPreferences
value in the
/// response of the GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations actions.
/// For more information, see Enhanced
/// infrastructure metrics in the Compute Optimizer User
/// Guide.
enhancedInfrastructureMetrics: EnhancedInfrastructureMetrics
/// The provider of the external metrics recommendation preference. Considers all
/// applicable preferences that you might have set at the account and organization
/// level.
/// If the preference is applied in the latest recommendation refresh, an object with a
/// valid source
value appears in the response. If the preference isn't applied
/// to the recommendations already, then this object doesn't appear in the response.
/// To validate whether the preference is applied to your last generated set of
/// recommendations, review the effectiveRecommendationPreferences
value in the
/// response of the GetEC2InstanceRecommendations actions.
/// For more information, see Enhanced
/// infrastructure metrics in the Compute Optimizer User
/// Guide.
externalMetricsPreference: ExternalMetricsPreference
}
structure GetEnrollmentStatusesForOrganizationRequest {
/// An array of objects to specify a filter that returns a more specific list of account
/// enrollment statuses.
filters: EnrollmentFilters
/// The token to advance to the next page of account enrollment statuses.
nextToken: NextToken
/// The maximum number of account enrollment statuses to return with a single request. You
/// can specify up to 100 statuses to return with each request.
/// To retrieve the remaining results, make another request with the returned
/// nextToken
value.
maxResults: MaxResults
}
structure GetEnrollmentStatusesForOrganizationResponse {
/// An array of objects that describe the enrollment statuses of organization member
/// accounts.
accountEnrollmentStatuses: AccountEnrollmentStatuses
/// The token to use to advance to the next page of account enrollment statuses.
/// This value is null when there are no more pages of account enrollment statuses to
/// return.
nextToken: NextToken
}
structure GetEnrollmentStatusRequest {}
structure GetEnrollmentStatusResponse {
/// The enrollment status of the account.
status: Status
/// The reason for the enrollment status of the account.
/// For example, an account might show a status of Pending
because member
/// accounts of an organization require more time to be enrolled in the service.
statusReason: StatusReason
/// Confirms the enrollment status of member accounts of the organization, if the account
/// is a management account of an organization.
memberAccountsEnrolled: MemberAccountsEnrolled = false
/// The Unix epoch timestamp, in seconds, of when the account enrollment status was last
/// updated.
lastUpdatedTimestamp: LastUpdatedTimestamp
/// The count of organization member accounts that are opted in to the service, if your
/// account is an organization management account.
numberOfMemberAccountsOptedIn: NumberOfMemberAccountsOptedIn
}
structure GetLambdaFunctionRecommendationsRequest {
/// The Amazon Resource Name (ARN) of the functions for which to return
/// recommendations.
/// You can specify a qualified or unqualified ARN. If you specify an unqualified ARN
/// without a function version suffix, Compute Optimizer will return recommendations for the
/// latest ($LATEST
) version of the function. If you specify a qualified ARN
/// with a version suffix, Compute Optimizer will return recommendations for the specified
/// function version. For more information about using function versions, see Using
/// versions in the Lambda Developer
/// Guide.
functionArns: FunctionArns
/// The ID of the Amazon Web Services account for which to return function
/// recommendations.
/// If your account is the management account of an organization, use this parameter to
/// specify the member account for which you want to return function recommendations.
/// Only one account ID can be specified per request.
accountIds: AccountIds
/// An array of objects to specify a filter that returns a more specific list of function
/// recommendations.
filters: LambdaFunctionRecommendationFilters
/// The token to advance to the next page of function recommendations.
nextToken: NextToken
/// The maximum number of function recommendations to return with a single request.
/// To retrieve the remaining results, make another request with the returned
/// nextToken
value.
maxResults: MaxResults
}
structure GetLambdaFunctionRecommendationsResponse {
/// The token to use to advance to the next page of function recommendations.
/// This value is null when there are no more pages of function recommendations to
/// return.
nextToken: NextToken
/// An array of objects that describe function recommendations.
lambdaFunctionRecommendations: LambdaFunctionRecommendations
}
/// Describes an error experienced when getting recommendations.
/// For example, an error is returned if you request recommendations for an unsupported
/// Auto Scaling group, or if you request recommendations for an instance of an
/// unsupported instance family.
structure GetRecommendationError {
/// The ID of the error.
identifier: Identifier
/// The error code.
code: Code
/// The message, or reason, for the error.
message: Message
}
structure GetRecommendationPreferencesRequest {
/// The target resource type of the recommendation preference for which to return
/// preferences.
/// The Ec2Instance
option encompasses standalone instances and instances
/// that are part of Auto Scaling groups. The AutoScalingGroup
option
/// encompasses only instances that are part of an Auto Scaling group.
///
/// The valid values for this parameter are Ec2Instance
and
/// AutoScalingGroup
.
///
@required
resourceType: ResourceType
/// An object that describes the scope of the recommendation preference to return.
/// You can return recommendation preferences that are created at the organization level
/// (for management accounts of an organization only), account level, and resource level.
/// For more information, see Activating
/// enhanced infrastructure metrics in the Compute Optimizer User
/// Guide.
scope: Scope
/// The token to advance to the next page of recommendation preferences.
nextToken: NextToken
/// The maximum number of recommendation preferences to return with a single
/// request.
/// To retrieve the remaining results, make another request with the returned
/// nextToken
value.
maxResults: MaxResults
}
structure GetRecommendationPreferencesResponse {
/// The token to use to advance to the next page of recommendation preferences.
/// This value is null when there are no more pages of recommendation preferences to
/// return.
nextToken: NextToken
/// An array of objects that describe recommendation preferences.
recommendationPreferencesDetails: RecommendationPreferencesDetails
}
structure GetRecommendationSummariesRequest {
/// The ID of the Amazon Web Services account for which to return recommendation
/// summaries.
/// If your account is the management account of an organization, use this parameter to
/// specify the member account for which you want to return recommendation summaries.
/// Only one account ID can be specified per request.
accountIds: AccountIds
/// The token to advance to the next page of recommendation summaries.
nextToken: NextToken
/// The maximum number of recommendation summaries to return with a single request.
/// To retrieve the remaining results, make another request with the returned
/// nextToken
value.
maxResults: MaxResults
}
structure GetRecommendationSummariesResponse {
/// The token to use to advance to the next page of recommendation summaries.
/// This value is null when there are no more pages of recommendation summaries to
/// return.
nextToken: NextToken
/// An array of objects that summarize a recommendation.
recommendationSummaries: RecommendationSummaries
}
/// Describes an Amazon EC2 instance recommendation.
structure InstanceRecommendation {
/// The Amazon Resource Name (ARN) of the current instance.
instanceArn: InstanceArn
/// The Amazon Web Services account ID of the instance.
accountId: AccountId
/// The name of the current instance.
instanceName: InstanceName
/// The instance type of the current instance.
currentInstanceType: CurrentInstanceType
/// The finding classification of the instance.
/// Findings for instances include:
///
/// -
///
///
/// Underprovisioned
/// —An instance is
/// considered under-provisioned when at least one specification of your instance,
/// such as CPU, memory, or network, does not meet the performance requirements of
/// your workload. Under-provisioned instances may lead to poor application
/// performance.
///
/// -
///
///
/// Overprovisioned
/// —An instance is
/// considered over-provisioned when at least one specification of your instance,
/// such as CPU, memory, or network, can be sized down while still meeting the
/// performance requirements of your workload, and no specification is
/// under-provisioned. Over-provisioned instances may lead to unnecessary
/// infrastructure cost.
///
/// -
///
///
/// Optimized
/// —An instance is
/// considered optimized when all specifications of your instance, such as CPU,
/// memory, and network, meet the performance requirements of your workload and is
/// not over provisioned. For optimized resources, Compute Optimizer might
/// recommend a new generation instance type.
///
///
finding: Finding
/// The reason for the finding classification of the instance.
/// Finding reason codes for instances include:
///
/// -
///
///
/// CPUOverprovisioned
/// — The
/// instance’s CPU configuration can be sized down while still meeting the
/// performance requirements of your workload. This is identified by analyzing the
/// CPUUtilization
metric of the current instance during the
/// look-back period.
///
/// -
///
///
/// CPUUnderprovisioned
/// — The
/// instance’s CPU configuration doesn't meet the performance requirements of your
/// workload and there is an alternative instance type that provides better CPU
/// performance. This is identified by analyzing the CPUUtilization
/// metric of the current instance during the look-back period.
///
/// -
///
///
/// MemoryOverprovisioned
/// — The
/// instance’s memory configuration can be sized down while still meeting the
/// performance requirements of your workload. This is identified by analyzing the
/// memory utilization metric of the current instance during the look-back
/// period.
///
/// -
///
///
/// MemoryUnderprovisioned
/// — The
/// instance’s memory configuration doesn't meet the performance requirements of
/// your workload and there is an alternative instance type that provides better
/// memory performance. This is identified by analyzing the memory utilization
/// metric of the current instance during the look-back period.
///
/// Memory utilization is analyzed only for resources that have the unified
/// CloudWatch agent installed on them. For more information, see
/// Enabling memory
/// utilization with the Amazon CloudWatch Agent in the
/// Compute Optimizer User Guide. On Linux
/// instances, Compute Optimizer analyses the mem_used_percent
/// metric in the CWAgent
namespace, or the legacy
/// MemoryUtilization
metric in the System/Linux
/// namespace. On Windows instances, Compute Optimizer analyses the Memory
/// % Committed Bytes In Use
metric in the CWAgent
/// namespace.
///
///
/// -
///
///
/// EBSThroughputOverprovisioned
/// —
/// The instance’s EBS throughput configuration can be sized down while still
/// meeting the performance requirements of your workload. This is identified by
/// analyzing the VolumeReadOps
and VolumeWriteOps
metrics
/// of EBS volumes attached to the current instance during the look-back
/// period.
///
/// -
///
///
/// EBSThroughputUnderprovisioned
/// —
/// The instance’s EBS throughput configuration doesn't meet the performance
/// requirements of your workload and there is an alternative instance type that
/// provides better EBS throughput performance. This is identified by analyzing the
/// VolumeReadOps
and VolumeWriteOps
metrics of EBS
/// volumes attached to the current instance during the look-back period.
///
/// -
///
///
/// EBSIOPSOverprovisioned
/// — The
/// instance’s EBS IOPS configuration can be sized down while still meeting the
/// performance requirements of your workload. This is identified by analyzing the
/// VolumeReadBytes
and VolumeWriteBytes
metric of EBS
/// volumes attached to the current instance during the look-back period.
///
/// -
///
///
/// EBSIOPSUnderprovisioned
/// — The
/// instance’s EBS IOPS configuration doesn't meet the performance requirements of
/// your workload and there is an alternative instance type that provides better EBS
/// IOPS performance. This is identified by analyzing the
/// VolumeReadBytes
and VolumeWriteBytes
metric of EBS
/// volumes attached to the current instance during the look-back period.
///
/// -
///
///
/// NetworkBandwidthOverprovisioned
///
/// — The instance’s network bandwidth configuration can be sized down while still
/// meeting the performance requirements of your workload. This is identified by
/// analyzing the NetworkIn
and NetworkOut
metrics of the
/// current instance during the look-back period.
///
/// -
///
///
/// NetworkBandwidthUnderprovisioned
///
/// — The instance’s network bandwidth configuration doesn't meet the performance
/// requirements of your workload and there is an alternative instance type that
/// provides better network bandwidth performance. This is identified by analyzing
/// the NetworkIn
and NetworkOut
metrics of the current
/// instance during the look-back period. This finding reason happens when the
/// NetworkIn
or NetworkOut
performance of an instance
/// is impacted.
///
/// -
///
///
/// NetworkPPSOverprovisioned
/// — The
/// instance’s network PPS (packets per second) configuration can be sized down
/// while still meeting the performance requirements of your workload. This is
/// identified by analyzing the NetworkPacketsIn
and
/// NetworkPacketsIn
metrics of the current instance during the
/// look-back period.
///
/// -
///
///
/// NetworkPPSUnderprovisioned
/// — The
/// instance’s network PPS (packets per second) configuration doesn't meet the
/// performance requirements of your workload and there is an alternative instance
/// type that provides better network PPS performance. This is identified by
/// analyzing the NetworkPacketsIn
and NetworkPacketsIn
/// metrics of the current instance during the look-back period.
///
/// -
///
///
/// DiskIOPSOverprovisioned
/// — The
/// instance’s disk IOPS configuration can be sized down while still meeting the
/// performance requirements of your workload. This is identified by analyzing the
/// DiskReadOps
and DiskWriteOps
metrics of the
/// current instance during the look-back period.
///
/// -
///
///
/// DiskIOPSUnderprovisioned
/// — The
/// instance’s disk IOPS configuration doesn't meet the performance requirements of
/// your workload and there is an alternative instance type that provides better
/// disk IOPS performance. This is identified by analyzing the
/// DiskReadOps
and DiskWriteOps
metrics of the
/// current instance during the look-back period.
///
/// -
///
///
/// DiskThroughputOverprovisioned
/// —
/// The instance’s disk throughput configuration can be sized down while still
/// meeting the performance requirements of your workload. This is identified by
/// analyzing the DiskReadBytes
and DiskWriteBytes
metrics
/// of the current instance during the look-back period.
///
/// -
///
///
/// DiskThroughputUnderprovisioned
/// —
/// The instance’s disk throughput configuration doesn't meet the performance
/// requirements of your workload and there is an alternative instance type that
/// provides better disk throughput performance. This is identified by analyzing the
/// DiskReadBytes
and DiskWriteBytes
metrics of the
/// current instance during the look-back period.
///
///
///
/// For more information about instance metrics, see List the
/// available CloudWatch metrics for your instances in the
/// Amazon Elastic Compute Cloud User Guide. For more information
/// about EBS volume metrics, see Amazon CloudWatch
/// metrics for Amazon EBS in the Amazon Elastic Compute Cloud
/// User Guide.
///
findingReasonCodes: InstanceRecommendationFindingReasonCodes
/// An array of objects that describe the utilization metrics of the instance.
utilizationMetrics: UtilizationMetrics
/// The number of days for which utilization metrics were analyzed for the
/// instance.
lookBackPeriodInDays: LookBackPeriodInDays = 0
/// An array of objects that describe the recommendation options for the instance.
recommendationOptions: RecommendationOptions
/// An array of objects that describe the source resource of the recommendation.
recommendationSources: RecommendationSources
/// The timestamp of when the instance recommendation was last generated.
lastRefreshTimestamp: LastRefreshTimestamp
/// The risk of the current instance not meeting the performance needs of its workloads.
/// The higher the risk, the more likely the current instance cannot meet the performance
/// requirements of its workload.
currentPerformanceRisk: CurrentPerformanceRisk
/// An object that describes the effective recommendation preferences for the
/// instance.
effectiveRecommendationPreferences: EffectiveRecommendationPreferences
/// The applications that might be running on the instance as inferred by Compute Optimizer.
/// Compute Optimizer can infer if one of the following applications might be running on
/// the instance:
///
/// -
///
/// AmazonEmr
- Infers that Amazon EMR might be running on
/// the instance.
///
/// -
///
/// ApacheCassandra
- Infers that Apache Cassandra might be running
/// on the instance.
///
/// -
///
/// ApacheHadoop
- Infers that Apache Hadoop might be running on the
/// instance.
///
/// -
///
/// Memcached
- Infers that Memcached might be running on the
/// instance.
///
/// -
///
/// NGINX
- Infers that NGINX might be running on the
/// instance.
///
/// -
///
/// PostgreSql
- Infers that PostgreSQL might be running on the
/// instance.
///
/// -
///
/// Redis
- Infers that Redis might be running on the
/// instance.
///
/// -
///
/// Kafka
- Infers that Kafka might be running on the
/// instance.
///
///
inferredWorkloadTypes: InferredWorkloadTypes
}
/// Describes a recommendation option for an Amazon EC2 instance.
structure InstanceRecommendationOption {
/// The instance type of the instance recommendation.
instanceType: InstanceType
/// An array of objects that describe the projected utilization metrics of the instance
/// recommendation option.
///
/// The Cpu
and Memory
metrics are the only projected
/// utilization metrics returned. 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.
///
projectedUtilizationMetrics: ProjectedUtilizationMetrics
/// Describes the configuration differences between the current instance and the
/// recommended instance type. You should consider the configuration differences before
/// migrating your workloads from the current instance to the recommended instance type. The
/// Change the instance type guide for Linux and Change the instance type
/// guide for Windows provide general guidance for getting started with an
/// instance migration.
/// Platform differences include:
///
/// -
///
///
/// Hypervisor
/// — The hypervisor of
/// the recommended instance type is different than that of the current instance.
/// For example, the recommended instance type uses a Nitro hypervisor and the
/// current instance uses a Xen hypervisor. The differences that you should consider
/// between these hypervisors are covered in the Nitro Hypervisor section of the
/// Amazon EC2 frequently asked questions. For more information, see
/// Instances built on the Nitro System in the Amazon EC2
/// User Guide for Linux, or Instances built on the Nitro System in the Amazon EC2
/// User Guide for Windows.
///
/// -
///
///
/// NetworkInterface
/// — The network
/// interface of the recommended instance type is different than that of the current
/// instance. For example, the recommended instance type supports enhanced
/// networking and the current instance might not. To enable enhanced networking for
/// the recommended instance type, you must install the Elastic Network Adapter
/// (ENA) driver or the Intel 82599 Virtual Function driver. For more information,
/// see Networking and storage features and Enhanced networking
/// on Linux in the Amazon EC2 User Guide for
/// Linux, or Networking and storage features and Enhanced
/// networking on Windows in the Amazon EC2 User Guide for
/// Windows.
///
/// -
///
///
/// StorageInterface
/// — The storage
/// interface of the recommended instance type is different than that of the current
/// instance. For example, the recommended instance type uses an NVMe storage
/// interface and the current instance does not. To access NVMe volumes for the
/// recommended instance type, you will need to install or upgrade the NVMe driver.
/// For more information, see Networking and storage features and Amazon EBS and NVMe on
/// Linux instances in the Amazon EC2 User Guide for
/// Linux, or Networking and storage features and Amazon EBS and NVMe
/// on Windows instances in the Amazon EC2 User Guide for
/// Windows.
///
/// -
///
///
/// InstanceStoreAvailability
/// — The
/// recommended instance type does not support instance store volumes and the
/// current instance does. Before migrating, you might need to back up the data on
/// your instance store volumes if you want to preserve them. For more information,
/// see How do I back up an instance store volume on my Amazon EC2 instance
/// to Amazon EBS? in the Amazon Web Services Premium
/// Support Knowledge Base. For more information, see Networking and storage features and Amazon EC2
/// instance store in the Amazon EC2 User Guide for
/// Linux, or see Networking and storage features and Amazon EC2
/// instance store in the Amazon EC2 User Guide for
/// Windows.
///
/// -
///
///
/// VirtualizationType
/// — The
/// recommended instance type uses the hardware virtual machine (HVM) virtualization
/// type and the current instance uses the paravirtual (PV) virtualization type. For
/// more information about the differences between these virtualization types, see
/// Linux AMI
/// virtualization types in the Amazon EC2 User Guide for
/// Linux, or Windows AMI virtualization types in the Amazon EC2 User
/// Guide for Windows.
///
/// -
///
///
/// Architecture
/// — The CPU
/// architecture between the recommended instance type and the current instance is
/// different. For example, the recommended instance type might use an Arm CPU
/// architecture and the current instance type might use a different one, such as
/// x86. Before migrating, you should consider recompiling the software on your
/// instance for the new architecture. Alternatively, you might switch to an Amazon
/// Machine Image (AMI) that supports the new architecture. For more information
/// about the CPU architecture for each instance type, see Amazon EC2 Instance Types.
///
///
platformDifferences: PlatformDifferences
/// The performance risk of the instance recommendation option.
/// Performance risk indicates the likelihood of the recommended instance type not meeting
/// the resource needs of your workload. Compute Optimizer calculates an individual
/// performance risk score for each specification of the recommended instance, including
/// CPU, memory, EBS throughput, EBS IOPS, disk throughput, disk IOPS, network throughput,
/// and network PPS.
/// The performance
/// risk of the recommended instance is calculated as the maximum performance risk score
/// across the analyzed resource specifications.
/// The value ranges from 0
- 4
, with 0
meaning
/// that the recommended resource is predicted to always provide enough hardware capability.
/// The higher the performance risk is, the more likely you should validate whether the
/// recommendation will meet the performance requirements of your workload before migrating
/// your resource.
performanceRisk: PerformanceRisk = 0
/// The rank of the instance recommendation option.
/// The top recommendation option is ranked as 1
.
rank: Rank = 0
/// An object that describes the savings opportunity for the instance recommendation
/// option. Savings opportunity includes the estimated monthly savings amount and
/// percentage.
savingsOpportunity: SavingsOpportunity
/// The level of effort required to migrate from the current instance type to the
/// recommended instance type.
/// For example, the migration effort is Low
if Amazon EMR is the
/// inferred workload type and an Amazon Web Services Graviton instance type is recommended.
/// The migration effort is Medium
if a workload type couldn't be inferred but
/// an Amazon Web Services Graviton instance type is recommended. The migration effort is
/// VeryLow
if both the current and recommended instance types are of the
/// same CPU architecture.
migrationEffort: MigrationEffort
}
/// An internal error has occurred. Try your call again.
@error("server")
@httpError(500)
structure InternalServerException {
message: ErrorMessage
}
/// The value supplied for the input parameter is out of range or not valid.
@error("client")
@httpError(400)
structure InvalidParameterValueException {
message: ErrorMessage
}
/// Describes a filter that returns a more specific list of recommendation export jobs.
/// Use this filter with the DescribeRecommendationExportJobs
/// action.
/// You can use EBSFilter
with the GetEBSVolumeRecommendations action,
/// LambdaFunctionRecommendationFilter
with the GetLambdaFunctionRecommendations action, and Filter
with
/// the GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations actions.
structure JobFilter {
/// The name of the filter.
/// Specify ResourceType
to return export jobs of a specific resource type
/// (for example, Ec2Instance
).
/// Specify JobStatus
to return export jobs with a specific status (e.g,
/// Complete
).
name: JobFilterName
/// The value of the filter.
/// The valid values for this parameter are as follows, depending on what you specify for
/// the name
parameter:
///
/// -
///
Specify Ec2Instance
or AutoScalingGroup
if you
/// specify the name
parameter as ResourceType
. There is
/// no filter for EBS volumes because volume recommendations cannot be exported at
/// this time.
///
/// -
///
Specify Queued
, InProgress
, Complete
,
/// or Failed
if you specify the name
parameter as
/// JobStatus
.
///
///
values: FilterValues
}
/// Describes a projected utilization metric of an Lambda function
/// recommendation option.
structure LambdaFunctionMemoryProjectedMetric {
/// The name of the projected utilization metric.
name: LambdaFunctionMemoryMetricName
/// The statistic of the projected utilization metric.
statistic: LambdaFunctionMemoryMetricStatistic
/// The values of the projected utilization metrics.
value: MetricValue = 0
}
/// Describes a recommendation option for an Lambda function.
structure LambdaFunctionMemoryRecommendationOption {
/// The rank of the function recommendation option.
/// The top recommendation option is ranked as 1
.
rank: Rank = 0
/// The memory size, in MB, of the function recommendation option.
memorySize: MemorySize = 0
/// An array of objects that describe the projected utilization metrics of the function
/// recommendation option.
projectedUtilizationMetrics: LambdaFunctionMemoryProjectedMetrics
/// An object that describes the savings opportunity for the Lambda function
/// recommendation option. Savings opportunity includes the estimated monthly savings amount
/// and percentage.
savingsOpportunity: SavingsOpportunity
}
/// Describes an Lambda function recommendation.
structure LambdaFunctionRecommendation {
/// The Amazon Resource Name (ARN) of the current function.
functionArn: FunctionArn
/// The version number of the current function.
functionVersion: FunctionVersion
/// The Amazon Web Services account ID of the function.
accountId: AccountId
/// The amount of memory, in MB, that's allocated to the current function.
currentMemorySize: MemorySize = 0
/// The number of times your function code was applied during the look-back period.
numberOfInvocations: NumberOfInvocations = 0
/// An array of objects that describe the utilization metrics of the function.
utilizationMetrics: LambdaFunctionUtilizationMetrics
/// The number of days for which utilization metrics were analyzed for the
/// function.
lookbackPeriodInDays: LookBackPeriodInDays = 0
/// The timestamp of when the function recommendation was last generated.
lastRefreshTimestamp: LastRefreshTimestamp
/// 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.
///
///
///
finding: LambdaFunctionRecommendationFinding
/// 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.
///
///
findingReasonCodes: LambdaFunctionRecommendationFindingReasonCodes
/// An array of objects that describe the memory configuration recommendation options for
/// the function.
memorySizeRecommendationOptions: LambdaFunctionMemoryRecommendationOptions
/// 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.
currentPerformanceRisk: CurrentPerformanceRisk
}
/// Describes a filter that returns a more specific list of Lambda
/// function recommendations. Use this filter with the GetLambdaFunctionRecommendations action.
/// You can use EBSFilter
with the GetEBSVolumeRecommendations action, JobFilter
with the
/// DescribeRecommendationExportJobs action, and Filter
/// with the GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations actions.
structure LambdaFunctionRecommendationFilter {
/// The name of the filter.
/// Specify Finding
to return recommendations with a specific finding
/// classification (for example, NotOptimized
).
/// Specify FindingReasonCode
to return recommendations with a specific
/// finding reason code (for example, MemoryUnderprovisioned
).
name: LambdaFunctionRecommendationFilterName
/// The value of the filter.
/// The valid values for this parameter are as follows, depending on what you specify for
/// the name
parameter:
///
/// -
///
Specify Optimized
, NotOptimized
, or
/// Unavailable
if you specify the name
parameter as
/// Finding
.
///
/// -
///
Specify MemoryOverprovisioned
,
/// MemoryUnderprovisioned
, InsufficientData
, or
/// Inconclusive
if you specify the name
parameter as
/// FindingReasonCode
.
///
///
values: FilterValues
}
/// Describes a utilization metric of an Lambda function.
structure LambdaFunctionUtilizationMetric {
/// The name of the utilization metric.
/// The following utilization metrics are available:
///
/// -
///
/// Duration
- The amount of time that your function code spends
/// processing an event.
///
/// -
///
/// Memory
- The amount of memory used per invocation.
///
///
name: LambdaFunctionMetricName
/// The statistic of the utilization metric.
/// The Compute Optimizer API, Command Line Interface (CLI), and SDKs
/// return utilization metrics using only the Maximum
statistic, which is the
/// highest value observed during the specified period.
/// The Compute Optimizer console displays graphs for some utilization metrics using the
/// Average
statistic, which is the value of Sum
/
/// SampleCount
during the specified period. For more information, see
/// Viewing resource
/// recommendations in the Compute Optimizer User
/// Guide. You can also get averaged utilization metric data for your resources
/// using Amazon CloudWatch. For more information, see the Amazon CloudWatch
/// User Guide.
statistic: LambdaFunctionMetricStatistic
/// The value of the utilization metric.
value: MetricValue = 0
}
/// The request exceeds a limit of the service.
@error("client")
@httpError(400)
structure LimitExceededException {
message: ErrorMessage
}
///
/// The memory size configurations of a container.
///
structure MemorySizeConfiguration {
///
/// The amount of memory in the container.
///
memory: NullableMemory
///
/// The limit of memory reserve for the container.
///
memoryReservation: NullableMemoryReservation
}
/// The request must contain either a valid (registered) Amazon Web Services access key ID
/// or X.509 certificate.
@error("client")
@httpError(403)
structure MissingAuthenticationToken {
message: ErrorMessage
}
/// The account is not opted in to Compute Optimizer.
@error("client")
@httpError(403)
structure OptInRequiredException {
message: ErrorMessage
}
/// Describes a projected utilization metric of a recommendation option, such as an
/// Amazon EC2 instance. This represents the projected utilization of a
/// recommendation option had you used that resource during the analyzed period.
/// Compare the utilization metric data of your resource against its projected utilization
/// metric data to determine the performance difference between your current resource and
/// the recommended option.
///
/// The Cpu
and Memory
metrics are the only projected
/// utilization metrics returned when you run the GetEC2RecommendationProjectedMetrics 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.
///
structure ProjectedMetric {
/// The name of the projected utilization metric.
/// The following projected utilization metrics are returned:
///
/// -
///
/// Cpu
- The projected percentage of allocated EC2 compute units
/// that would be in use on the recommendation option had you used that resource
/// during the analyzed period. This metric identifies the processing power required
/// to run an application on the recommendation option.
/// Depending on the instance type, tools in your operating system can show a
/// lower percentage than CloudWatch when the instance is not allocated a full
/// processor core.
/// Units: Percent
///
/// -
///
/// Memory
- The percentage of memory that would be in use on the
/// recommendation option had you used that resource during the analyzed period.
/// This metric identifies the amount of memory required to run an application on
/// the recommendation option.
/// Units: Percent
///
/// 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.
///
///
///
name: MetricName
/// The timestamps of the projected utilization metric.
timestamps: Timestamps
/// The values of the projected utilization metrics.
values: MetricValues
}
structure PutRecommendationPreferencesRequest {
/// The target resource type of the recommendation preference to create.
/// The Ec2Instance
option encompasses standalone instances and instances
/// that are part of Auto Scaling groups. The AutoScalingGroup
option
/// encompasses only instances that are part of an Auto Scaling group.
///
/// The valid values for this parameter are Ec2Instance
and
/// AutoScalingGroup
.
///
@required
resourceType: ResourceType
/// An object that describes the scope of the recommendation preference to create.
/// You can create recommendation preferences at the organization level (for management
/// accounts of an organization only), account level, and resource level. For more
/// information, see Activating
/// enhanced infrastructure metrics in the Compute Optimizer User
/// Guide.
///
/// You cannot create recommendation preferences for Auto Scaling groups at the
/// organization and account levels. You can create recommendation preferences for
/// Auto Scaling groups only at the resource level by specifying a scope name
/// of ResourceArn
and a scope value of the Auto Scaling group Amazon
/// Resource Name (ARN). This will configure the preference for all instances that are
/// part of the specified Auto Scaling group. You also cannot create recommendation
/// preferences at the resource level for instances that are part of an Auto Scaling group. You can create recommendation preferences at the resource level only for
/// standalone instances.
///
scope: Scope
/// The status of the enhanced infrastructure metrics recommendation preference to create
/// or update.
/// Specify the Active
status to activate the preference, or specify
/// Inactive
to deactivate the preference.
/// For more information, see Enhanced
/// infrastructure metrics in the Compute Optimizer User
/// Guide.
enhancedInfrastructureMetrics: EnhancedInfrastructureMetrics
/// The status of the inferred workload types recommendation preference to create or
/// update.
///
/// The inferred workload type feature is active by default. To deactivate it, create
/// a recommendation preference.
///
/// Specify the Inactive
status to deactivate the feature, or specify
/// Active
to activate it.
/// For more information, see Inferred workload
/// types in the Compute Optimizer User Guide.
inferredWorkloadTypes: InferredWorkloadTypesPreference
/// The provider of the external metrics recommendation preference to create or
/// update.
/// Specify a valid provider in the source
field to activate the preference.
/// To delete this preference, see the DeleteRecommendationPreferences
/// action.
/// This preference can only be set for the Ec2Instance
resource type.
/// For more information, see External metrics
/// ingestion in the Compute Optimizer User
/// Guide.
externalMetricsPreference: ExternalMetricsPreference
}
structure PutRecommendationPreferencesResponse {}
/// A summary of a finding reason code.
structure ReasonCodeSummary {
/// The name of the finding reason code.
name: FindingReasonCode
/// The value of the finding reason code summary.
value: SummaryValue = 0
}
/// Describes a recommendation export job.
/// Use the DescribeRecommendationExportJobs action to view your
/// recommendation export jobs.
/// Use the ExportAutoScalingGroupRecommendations or ExportEC2InstanceRecommendations actions to request an export of your
/// recommendations.
structure RecommendationExportJob {
/// The identification number of the export job.
jobId: JobId
/// An object that describes the destination of the export file.
destination: ExportDestination
/// The resource type of the exported recommendations.
resourceType: ResourceType
/// The status of the export job.
status: JobStatus
/// The timestamp of when the export job was created.
creationTimestamp: CreationTimestamp
/// The timestamp of when the export job was last updated.
lastUpdatedTimestamp: LastUpdatedTimestamp
/// The reason for an export job failure.
failureReason: FailureReason
}
/// Describes the recommendation preferences to return in the response of a GetAutoScalingGroupRecommendations, GetEC2InstanceRecommendations, and GetEC2RecommendationProjectedMetrics request.
structure RecommendationPreferences {
/// Specifies the CPU vendor and architecture for Amazon EC2 instance and Auto Scaling group recommendations.
/// For example, when you specify AWS_ARM64
with:
///
/// -
///
A GetEC2InstanceRecommendations or GetAutoScalingGroupRecommendations request, Compute Optimizer
/// returns recommendations that consist of Graviton2 instance types only.
///
/// -
///
A GetEC2RecommendationProjectedMetrics request, Compute Optimizer returns projected utilization metrics for Graviton2 instance type
/// recommendations only.
///
/// -
///
A ExportEC2InstanceRecommendations or ExportAutoScalingGroupRecommendations request, Compute Optimizer
/// exports recommendations that consist of Graviton2 instance types only.
///
///
cpuVendorArchitectures: CpuVendorArchitectures
}
/// Describes a recommendation preference.
structure RecommendationPreferencesDetail {
/// An object that describes the scope of the recommendation preference.
/// Recommendation preferences can be created at the organization level (for management
/// accounts of an organization only), account level, and resource level. For more
/// information, see Activating
/// enhanced infrastructure metrics in the Compute Optimizer User
/// Guide.
scope: Scope
/// The target resource type of the recommendation preference to create.
/// The Ec2Instance
option encompasses standalone instances and instances
/// that are part of Auto Scaling groups. The AutoScalingGroup
option
/// encompasses only instances that are part of an Auto Scaling group.
resourceType: ResourceType
/// The status of the enhanced infrastructure metrics recommendation preference.
/// When the recommendations page is refreshed, a status of Active
confirms
/// that the preference is applied to the recommendations, and a status of
/// Inactive
confirms that the preference isn't yet applied to
/// recommendations.
/// For more information, see Enhanced
/// infrastructure metrics in the Compute Optimizer User
/// Guide.
enhancedInfrastructureMetrics: EnhancedInfrastructureMetrics
/// The status of the inferred workload types recommendation preference.
/// When the recommendations page is refreshed, a status of Active
confirms
/// that the preference is applied to the recommendations, and a status of
/// Inactive
confirms that the preference isn't yet applied to
/// recommendations.
inferredWorkloadTypes: InferredWorkloadTypesPreference
/// An object that describes the external metrics recommendation preference.
/// If the preference is applied in the latest recommendation refresh, an object with a
/// valid source
value appears in the response. If the preference isn't applied
/// to the recommendations already, then this object doesn't appear in the response.
externalMetricsPreference: ExternalMetricsPreference
}
/// Describes the source of a recommendation, such as an Amazon EC2 instance or
/// Auto Scaling group.
structure RecommendationSource {
/// The Amazon Resource Name (ARN) of the recommendation source.
recommendationSourceArn: RecommendationSourceArn
/// The resource type of the recommendation source.
recommendationSourceType: RecommendationSourceType
}
/// A summary of a recommendation.
structure RecommendationSummary {
/// An array of objects that describe a recommendation summary.
summaries: Summaries
/// The resource type that the recommendation summary applies to.
recommendationResourceType: RecommendationSourceType
/// The Amazon Web Services account ID of the recommendation summary.
accountId: AccountId
/// An object that describes the savings opportunity for a given resource type. Savings
/// opportunity includes the estimated monthly savings amount and percentage.
savingsOpportunity: SavingsOpportunity
/// An object that describes the performance risk ratings for a given resource
/// type.
currentPerformanceRiskRatings: CurrentPerformanceRiskRatings
}
/// Describes a projected utilization metric of a recommendation option.
///
/// The Cpu
and Memory
metrics are the only projected
/// utilization metrics returned when you run the GetEC2RecommendationProjectedMetrics 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.
///
structure RecommendedOptionProjectedMetric {
/// The recommended instance type.
recommendedInstanceType: RecommendedInstanceType
/// The rank of the recommendation option projected metric.
/// The top recommendation option is ranked as 1
.
/// The projected metric rank correlates to the recommendation option rank. For example,
/// the projected metric ranked as 1
is related to the recommendation option
/// that is also ranked as 1
in the same response.
rank: Rank = 0
/// An array of objects that describe a projected utilization metric.
projectedMetrics: ProjectedMetrics
}
/// A resource that is required for the action doesn't exist.
@error("client")
@httpError(404)
structure ResourceNotFoundException {
message: ErrorMessage
}
/// Describes the destination Amazon Simple Storage Service (Amazon S3) bucket name and
/// object keys of a recommendations export file, and its associated metadata file.
structure S3Destination {
/// The name of the Amazon S3 bucket used as the destination of an export
/// file.
bucket: DestinationBucket
/// The Amazon S3 bucket key of an export file.
/// The key uniquely identifies the object, or export file, in the S3 bucket.
key: DestinationKey
/// The Amazon S3 bucket key of a metadata file.
/// The key uniquely identifies the object, or metadata file, in the S3 bucket.
metadataKey: MetadataKey
}
/// Describes the destination Amazon Simple Storage Service (Amazon S3) bucket name and
/// key prefix for a recommendations export job.
/// You must create the destination Amazon S3 bucket for your recommendations
/// export before you create the export job. Compute Optimizer does not create the S3 bucket
/// for you. After you create the S3 bucket, ensure that it has the required permission
/// policy to allow Compute Optimizer to write the export file to it. If you plan to specify
/// an object prefix when you create the export job, you must include the object prefix in
/// the policy that you add to the S3 bucket. For more information, see Amazon S3 Bucket Policy for Compute Optimizer in the
/// Compute Optimizer User Guide.
structure S3DestinationConfig {
/// The name of the Amazon S3 bucket to use as the destination for an export
/// job.
bucket: DestinationBucket
/// The Amazon S3 bucket prefix for an export job.
keyPrefix: DestinationKeyPrefix
}
/// Describes the savings opportunity for recommendations of a given resource type or for
/// the recommendation option of an individual resource.
/// Savings opportunity represents the estimated monthly savings you can achieve by
/// implementing a given Compute Optimizer recommendation.
///
/// Savings opportunity data requires that you opt in to Cost Explorer, as well as
/// activate Receive Amazon EC2 resource
/// recommendations in the Cost Explorer preferences page. That
/// creates a connection between Cost Explorer and Compute Optimizer. With this
/// connection, Cost Explorer generates savings estimates considering the price of
/// existing resources, the price of recommended resources, and historical usage data.
/// Estimated monthly savings reflects the projected dollar savings associated with each
/// of the recommendations generated. For more information, see Enabling Cost Explorer and Optimizing your cost
/// with Rightsizing Recommendations in the Cost Management User
/// Guide.
///
structure SavingsOpportunity {
/// The estimated monthly savings possible as a percentage of monthly cost by adopting
/// Compute Optimizer recommendations for a given resource.
savingsOpportunityPercentage: SavingsOpportunityPercentage = 0
/// An object that describes the estimated monthly savings amount possible, based on
/// On-Demand instance pricing, by adopting Compute Optimizer recommendations for a given
/// resource.
estimatedMonthlySavings: EstimatedMonthlySavings
}
/// Describes the scope of a recommendation preference.
/// Recommendation preferences can be created at the organization level (for management
/// accounts of an organization only), account level, and resource level. For more
/// information, see Activating
/// enhanced infrastructure metrics in the Compute Optimizer User
/// Guide.
///
/// You cannot create recommendation preferences for Auto Scaling groups at the
/// organization and account levels. You can create recommendation preferences for
/// Auto Scaling groups only at the resource level by specifying a scope name
/// of ResourceArn
and a scope value of the Auto Scaling group Amazon
/// Resource Name (ARN). This will configure the preference for all instances that are
/// part of the specified Auto Scaling group. You also cannot create recommendation
/// preferences at the resource level for instances that are part of an Auto Scaling group. You can create recommendation preferences at the resource level only for
/// standalone instances.
///
structure Scope {
/// The name of the scope.
/// The following scopes are possible:
///
/// -
///
/// Organization
- Specifies that the recommendation preference
/// applies at the organization level, for all member accounts of an
/// organization.
///
/// -
///
/// AccountId
- Specifies that the recommendation preference applies
/// at the account level, for all resources of a given resource type in an
/// account.
///
/// -
///
/// ResourceArn
- Specifies that the recommendation preference
/// applies at the individual resource level.
///
///
name: ScopeName
/// The value of the scope.
/// If you specified the name
of the scope as:
///
/// -
///
/// Organization
- The value
must be
/// ALL_ACCOUNTS
.
///
/// -
///
/// AccountId
- The value
must be a 12-digit Amazon Web Services account ID.
///
/// -
///
/// ResourceArn
- The value
must be the Amazon Resource
/// Name (ARN) of an EC2 instance or an Auto Scaling group.
///
///
/// Only EC2 instance and Auto Scaling group ARNs are currently supported.
value: ScopeValue
}
///
/// The Amazon ECS service configurations used for recommendations.
///
structure ServiceConfiguration {
///
/// The amount of memory used by the tasks in the Amazon ECS service.
///
memory: NullableMemory
///
/// The number of CPU units used by the tasks in the Amazon ECS service.
///
cpu: NullableCpu
///
/// The container configurations within a task of an Amazon ECS service.
///
containerConfigurations: ContainerConfigurations
///
/// Describes the Auto Scaling configuration methods for an Amazon ECS service. This affects
/// the generated recommendations. For example, if Auto Scaling is configured on a
/// service’s CPU, then Compute Optimizer doesn’t generate CPU size recommendations.
///
/// The Auto Scaling configuration methods include:
///
/// -
///
/// TARGET_TRACKING_SCALING_CPU
— If the Amazon ECS service is configured
/// to use target scaling on CPU, Compute Optimizer doesn't generate CPU recommendations.
///
/// -
///
/// TARGET_TRACKING_SCALING_MEMORY
— If the Amazon ECS service is configured
/// to use target scaling on memory, Compute Optimizer doesn't generate memory recommendations.
///
///
/// For more information about step scaling and target scaling, see
///
/// Step scaling policies for Application Auto Scaling and
///
/// Target tracking scaling policies for Application Auto Scaling in the
/// Application Auto Scaling User Guide.
autoScalingConfiguration: AutoScalingConfiguration
///
/// The task definition ARN used by the tasks in the Amazon ECS service.
///
taskDefinitionArn: TaskDefinitionArn
}
/// The request has failed due to a temporary failure of the server.
@error("server")
@httpError(503)
structure ServiceUnavailableException {
message: ErrorMessage
}
/// The summary of a recommendation.
structure Summary {
/// The finding classification of the recommendation.
name: Finding
/// The value of the recommendation summary.
value: SummaryValue = 0
/// An array of objects that summarize a finding reason code.
reasonCodeSummaries: ReasonCodeSummaries
}
/// The request was denied due to request throttling.
@error("client")
@httpError(429)
structure ThrottlingException {
@required
message: ErrorMessage
}
structure UpdateEnrollmentStatusRequest {
/// The new enrollment status of the account.
/// The following status options are available:
///
/// -
///
/// Active
- Opts in your account to the Compute Optimizer service.
/// Compute Optimizer begins analyzing the configuration and utilization metrics
/// of your Amazon Web Services resources after you opt in. For more information, see
/// Metrics analyzed by Compute Optimizer in the Compute Optimizer User Guide.
///
/// -
///
/// Inactive
- Opts out your account from the Compute Optimizer
/// service. Your account's recommendations and related metrics data will be deleted
/// from Compute Optimizer after you opt out.
///
///
///
/// The Pending
and Failed
options cannot be used to update
/// the enrollment status of an account. They are returned in the response of a request
/// to update the enrollment status of an account.
///
@required
status: Status
/// Indicates whether to enroll member accounts of the organization if the account is the
/// management account of an organization.
includeMemberAccounts: IncludeMemberAccounts = false
}
structure UpdateEnrollmentStatusResponse {
/// The enrollment status of the account.
status: Status
/// The reason for the enrollment status of the account. For example, an account might
/// show a status of Pending
because member accounts of an organization require
/// more time to be enrolled in the service.
statusReason: StatusReason
}
/// Describes a utilization metric of a resource, such as an Amazon EC2
/// instance.
/// Compare the utilization metric data of your resource against its projected utilization
/// metric data to determine the performance difference between your current resource and
/// the recommended option.
structure UtilizationMetric {
/// The name of the utilization metric.
/// The following utilization metrics are available:
///
/// -
///
/// Cpu
- The percentage of allocated EC2 compute units that are
/// currently in use on the instance. This metric identifies the processing power
/// required to run an application on the instance.
/// Depending on the instance type, tools in your operating system can show a
/// lower percentage than CloudWatch when the instance is not allocated a full
/// processor core.
/// Units: Percent
///
/// -
///
/// Memory
- The percentage of memory that is currently in use on the
/// instance. This metric identifies the amount of memory required to run an
/// application on the instance.
/// Units: Percent
///
/// 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.
///
///
/// -
///
/// EBS_READ_OPS_PER_SECOND
- The completed read operations from all
/// EBS volumes attached to the instance in a specified period of time.
/// Unit: Count
///
/// -
///
/// EBS_WRITE_OPS_PER_SECOND
- The completed write operations to all
/// EBS volumes attached to the instance in a specified period of time.
/// Unit: Count
///
/// -
///
/// EBS_READ_BYTES_PER_SECOND
- The bytes read from all EBS volumes
/// attached to the instance in a specified period of time.
/// Unit: Bytes
///
/// -
///
/// EBS_WRITE_BYTES_PER_SECOND
- The bytes written to all EBS volumes
/// attached to the instance in a specified period of time.
/// Unit: Bytes
///
/// -
///
/// DISK_READ_OPS_PER_SECOND
- The completed read operations from all
/// instance store volumes available to the instance in a specified period of
/// time.
/// If there are no instance store volumes, either the value is 0
or
/// the metric is not reported.
///
/// -
///
/// DISK_WRITE_OPS_PER_SECOND
- The completed write operations from
/// all instance store volumes available to the instance in a specified period of
/// time.
/// If there are no instance store volumes, either the value is 0
or
/// the metric is not reported.
///
/// -
///
/// DISK_READ_BYTES_PER_SECOND
- The bytes read from all instance
/// store volumes available to the instance. This metric is used to determine the
/// volume of the data the application reads from the disk of the instance. This can
/// be used to determine the speed of the application.
/// If there are no instance store volumes, either the value is 0
or
/// the metric is not reported.
///
/// -
///
/// DISK_WRITE_BYTES_PER_SECOND
- The bytes written to all instance
/// store volumes available to the instance. This metric is used to determine the
/// volume of the data the application writes onto the disk of the instance. This
/// can be used to determine the speed of the application.
/// If there are no instance store volumes, either the value is 0
or
/// the metric is not reported.
///
/// -
///
/// NETWORK_IN_BYTES_PER_SECOND
- The number of bytes received by the
/// instance on all network interfaces. This metric identifies the volume of
/// incoming network traffic to a single instance.
///
/// -
///
/// NETWORK_OUT_BYTES_PER_SECOND
- The number of bytes sent out by
/// the instance on all network interfaces. This metric identifies the volume of
/// outgoing network traffic from a single instance.
///
/// -
///
/// NETWORK_PACKETS_IN_PER_SECOND
- The number of packets received by
/// the instance on all network interfaces. This metric identifies the volume of
/// incoming traffic in terms of the number of packets on a single instance.
///
/// -
///
/// NETWORK_PACKETS_OUT_PER_SECOND
- The number of packets sent out
/// by the instance on all network interfaces. This metric identifies the volume of
/// outgoing traffic in terms of the number of packets on a single instance.
///
///
name: MetricName
/// The statistic of the utilization metric.
/// The Compute Optimizer API, Command Line Interface (CLI), and SDKs
/// return utilization metrics using only the Maximum
statistic, which is the
/// highest value observed during the specified period.
/// The Compute Optimizer console displays graphs for some utilization metrics using the
/// Average
statistic, which is the value of Sum
/
/// SampleCount
during the specified period. For more information, see
/// Viewing resource
/// recommendations in the Compute Optimizer User
/// Guide. You can also get averaged utilization metric data for your resources
/// using Amazon CloudWatch. For more information, see the Amazon CloudWatch
/// User Guide.
statistic: MetricStatistic
/// The value of the utilization metric.
value: MetricValue = 0
}
/// Describes the configuration of an Amazon Elastic Block Store (Amazon EBS)
/// volume.
structure VolumeConfiguration {
/// The volume type.
/// This can be gp2
for General Purpose SSD, io1
or
/// io2
for Provisioned IOPS SSD, st1
for Throughput Optimized
/// HDD, sc1
for Cold HDD, or standard
for Magnetic
/// volumes.
volumeType: VolumeType
/// The size of the volume, in GiB.
volumeSize: VolumeSize = 0
/// The baseline IOPS of the volume.
volumeBaselineIOPS: VolumeBaselineIOPS = 0
/// The burst IOPS of the volume.
volumeBurstIOPS: VolumeBurstIOPS = 0
/// The baseline throughput of the volume.
volumeBaselineThroughput: VolumeBaselineThroughput = 0
/// The burst throughput of the volume.
volumeBurstThroughput: VolumeBurstThroughput = 0
}
/// Describes an Amazon Elastic Block Store (Amazon EBS) volume recommendation.
structure VolumeRecommendation {
/// The Amazon Resource Name (ARN) of the current volume.
volumeArn: VolumeArn
/// The Amazon Web Services account ID of the volume.
accountId: AccountId
/// An array of objects that describe the current configuration of the volume.
currentConfiguration: VolumeConfiguration
/// The finding classification of the volume.
/// Findings for volumes include:
///
/// -
///
///
/// NotOptimized
/// —A volume is
/// considered not optimized when Compute Optimizer identifies a recommendation
/// that can provide better performance for your workload.
///
/// -
///
///
/// Optimized
/// —An volume is
/// considered optimized when Compute Optimizer determines that the volume is
/// correctly provisioned to run your workload based on the chosen volume type. For
/// optimized resources, Compute Optimizer might recommend a new generation volume
/// type.
///
///
finding: EBSFinding
/// An array of objects that describe the utilization metrics of the volume.
utilizationMetrics: EBSUtilizationMetrics
/// The number of days for which utilization metrics were analyzed for the volume.
lookBackPeriodInDays: LookBackPeriodInDays = 0
/// An array of objects that describe the recommendation options for the volume.
volumeRecommendationOptions: VolumeRecommendationOptions
/// The timestamp of when the volume recommendation was last generated.
lastRefreshTimestamp: LastRefreshTimestamp
/// The risk of the current EBS volume not meeting the performance needs of its workloads.
/// The higher the risk, the more likely the current EBS volume doesn't have sufficient
/// capacity.
currentPerformanceRisk: CurrentPerformanceRisk
}
/// Describes a recommendation option for an Amazon Elastic Block Store (Amazon EBS)
/// instance.
structure VolumeRecommendationOption {
/// An array of objects that describe a volume configuration.
configuration: VolumeConfiguration
/// The performance risk of the volume recommendation option.
/// Performance risk is the likelihood of the recommended volume type meeting the
/// performance requirement of your workload.
/// The value ranges from 0
- 4
, with 0
meaning
/// that the recommended resource is predicted to always provide enough hardware capability.
/// The higher the performance risk is, the more likely you should validate whether the
/// recommendation will meet the performance requirements of your workload before migrating
/// your resource.
performanceRisk: PerformanceRisk = 0
/// The rank of the volume recommendation option.
/// The top recommendation option is ranked as 1
.
rank: Rank = 0
/// An object that describes the savings opportunity for the EBS volume recommendation
/// option. Savings opportunity includes the estimated monthly savings amount and
/// percentage.
savingsOpportunity: SavingsOpportunity
}
list AccountEnrollmentStatuses {
member: AccountEnrollmentStatus
}
list AccountIds {
member: AccountId
}
list AutoScalingGroupArns {
member: AutoScalingGroupArn
}
list AutoScalingGroupRecommendationOptions {
member: AutoScalingGroupRecommendationOption
}
list AutoScalingGroupRecommendations {
member: AutoScalingGroupRecommendation
}
list ContainerConfigurations {
member: ContainerConfiguration
}
list ContainerRecommendations {
member: ContainerRecommendation
}
list CpuVendorArchitectures {
member: CpuVendorArchitecture
}
list EBSFilters {
member: EBSFilter
}
list EBSUtilizationMetrics {
member: EBSUtilizationMetric
}
list ECSServiceProjectedMetrics {
member: ECSServiceProjectedMetric
}
list ECSServiceProjectedUtilizationMetrics {
member: ECSServiceProjectedUtilizationMetric
}
list ECSServiceRecommendationFilters {
member: ECSServiceRecommendationFilter
}
list ECSServiceRecommendationFindingReasonCodes {
member: ECSServiceRecommendationFindingReasonCode
}
list ECSServiceRecommendationOptions {
member: ECSServiceRecommendationOption
}
list ECSServiceRecommendations {
member: ECSServiceRecommendation
}
list ECSServiceRecommendedOptionProjectedMetrics {
member: ECSServiceRecommendedOptionProjectedMetric
}
list ECSServiceUtilizationMetrics {
member: ECSServiceUtilizationMetric
}
list EnrollmentFilters {
member: EnrollmentFilter
}
list ExportableAutoScalingGroupFields {
member: ExportableAutoScalingGroupField
}
list ExportableECSServiceFields {
member: ExportableECSServiceField
}
list ExportableInstanceFields {
member: ExportableInstanceField
}
list ExportableLambdaFunctionFields {
member: ExportableLambdaFunctionField
}
list ExportableVolumeFields {
member: ExportableVolumeField
}
list Filters {
member: Filter
}
list FilterValues {
member: FilterValue
}
list FunctionArns {
member: FunctionArn
}
list GetRecommendationErrors {
member: GetRecommendationError
}
list InferredWorkloadTypes {
member: InferredWorkloadType
}
list InstanceArns {
member: InstanceArn
}
list InstanceRecommendationFindingReasonCodes {
member: InstanceRecommendationFindingReasonCode
}
list InstanceRecommendations {
member: InstanceRecommendation
}
list JobFilters {
member: JobFilter
}
list JobIds {
member: JobId
}
list LambdaFunctionMemoryProjectedMetrics {
member: LambdaFunctionMemoryProjectedMetric
}
list LambdaFunctionMemoryRecommendationOptions {
member: LambdaFunctionMemoryRecommendationOption
}
list LambdaFunctionRecommendationFilters {
member: LambdaFunctionRecommendationFilter
}
list LambdaFunctionRecommendationFindingReasonCodes {
member: LambdaFunctionRecommendationFindingReasonCode
}
list LambdaFunctionRecommendations {
member: LambdaFunctionRecommendation
}
list LambdaFunctionUtilizationMetrics {
member: LambdaFunctionUtilizationMetric
}
list MetricValues {
member: MetricValue
}
list PlatformDifferences {
member: PlatformDifference
}
list ProjectedMetrics {
member: ProjectedMetric
}
list ProjectedUtilizationMetrics {
member: UtilizationMetric
}
list ReasonCodeSummaries {
member: ReasonCodeSummary
}
list RecommendationExportJobs {
member: RecommendationExportJob
}
list RecommendationOptions {
member: InstanceRecommendationOption
}
list RecommendationPreferenceNames {
member: RecommendationPreferenceName
}
list RecommendationPreferencesDetails {
member: RecommendationPreferencesDetail
}
list RecommendationSources {
member: RecommendationSource
}
list RecommendationSummaries {
member: RecommendationSummary
}
list RecommendedOptionProjectedMetrics {
member: RecommendedOptionProjectedMetric
}
list ServiceArns {
member: ServiceArn
}
list Summaries {
member: Summary
}
list Timestamps {
member: Timestamp
}
list UtilizationMetrics {
member: UtilizationMetric
}
list VolumeArns {
member: VolumeArn
}
list VolumeRecommendationOptions {
member: VolumeRecommendationOption
}
list VolumeRecommendations {
member: VolumeRecommendation
}
string AccountId
enum AutoScalingConfiguration {
TARGET_TRACKING_SCALING_CPU = "TargetTrackingScalingCpu"
TARGET_TRACKING_SCALING_MEMORY = "TargetTrackingScalingMemory"
}
string AutoScalingGroupArn
string AutoScalingGroupName
string Code
string ContainerName
@default(0)
integer CpuSize
enum CpuVendorArchitecture {
AWS_ARM64
CURRENT
}
timestamp CreationTimestamp
enum Currency {
USD
CNY
}
string CurrentInstanceType
enum CurrentPerformanceRisk {
VERY_LOW = "VeryLow"
LOW = "Low"
MEDIUM = "Medium"
HIGH = "High"
}
@default(0)
integer DesiredCapacity
string DestinationBucket
string DestinationKey
string DestinationKeyPrefix
enum EBSFilterName {
FINDING = "Finding"
}
enum EBSFinding {
OPTIMIZED = "Optimized"
NOT_OPTIMIZED = "NotOptimized"
}
enum EBSMetricName {
VOLUME_READ_OPS_PER_SECOND = "VolumeReadOpsPerSecond"
VOLUME_WRITE_OPS_PER_SECOND = "VolumeWriteOpsPerSecond"
VOLUME_READ_BYTES_PER_SECOND = "VolumeReadBytesPerSecond"
VOLUME_WRITE_BYTES_PER_SECOND = "VolumeWriteBytesPerSecond"
}
enum ECSServiceLaunchType {
EC2
FARGATE = "Fargate"
}
enum ECSServiceMetricName {
CPU = "Cpu"
MEMORY = "Memory"
}
enum ECSServiceMetricStatistic {
MAXIMUM = "Maximum"
AVERAGE = "Average"
}
enum ECSServiceRecommendationFilterName {
FINDING = "Finding"
FINDING_REASON_CODE = "FindingReasonCode"
}
enum ECSServiceRecommendationFinding {
OPTIMIZED = "Optimized"
UNDER_PROVISIONED = "Underprovisioned"
OVER_PROVISIONED = "Overprovisioned"
}
enum ECSServiceRecommendationFindingReasonCode {
MEMORY_OVER_PROVISIONED = "MemoryOverprovisioned"
MEMORY_UNDER_PROVISIONED = "MemoryUnderprovisioned"
CPU_OVER_PROVISIONED = "CPUOverprovisioned"
CPU_UNDER_PROVISIONED = "CPUUnderprovisioned"
}
enum EnhancedInfrastructureMetrics {
ACTIVE = "Active"
INACTIVE = "Inactive"
}
enum EnrollmentFilterName {
STATUS = "Status"
}
string ErrorMessage
enum ExportableAutoScalingGroupField {
ACCOUNT_ID = "AccountId"
AUTO_SCALING_GROUP_ARN = "AutoScalingGroupArn"
AUTO_SCALING_GROUP_NAME = "AutoScalingGroupName"
FINDING = "Finding"
UTILIZATION_METRICS_CPU_MAXIMUM = "UtilizationMetricsCpuMaximum"
UTILIZATION_METRICS_MEMORY_MAXIMUM = "UtilizationMetricsMemoryMaximum"
UTILIZATION_METRICS_EBS_READ_OPS_PER_SECOND_MAXIMUM = "UtilizationMetricsEbsReadOpsPerSecondMaximum"
UTILIZATION_METRICS_EBS_WRITE_OPS_PER_SECOND_MAXIMUM = "UtilizationMetricsEbsWriteOpsPerSecondMaximum"
UTILIZATION_METRICS_EBS_READ_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsEbsReadBytesPerSecondMaximum"
UTILIZATION_METRICS_EBS_WRITE_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsEbsWriteBytesPerSecondMaximum"
UTILIZATION_METRICS_DISK_READ_OPS_PER_SECOND_MAXIMUM = "UtilizationMetricsDiskReadOpsPerSecondMaximum"
UTILIZATION_METRICS_DISK_WRITE_OPS_PER_SECOND_MAXIMUM = "UtilizationMetricsDiskWriteOpsPerSecondMaximum"
UTILIZATION_METRICS_DISK_READ_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsDiskReadBytesPerSecondMaximum"
UTILIZATION_METRICS_DISK_WRITE_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsDiskWriteBytesPerSecondMaximum"
UTILIZATION_METRICS_NETWORK_IN_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsNetworkInBytesPerSecondMaximum"
UTILIZATION_METRICS_NETWORK_OUT_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsNetworkOutBytesPerSecondMaximum"
UTILIZATION_METRICS_NETWORK_PACKETS_IN_PER_SECOND_MAXIMUM = "UtilizationMetricsNetworkPacketsInPerSecondMaximum"
UTILIZATION_METRICS_NETWORK_PACKETS_OUT_PER_SECOND_MAXIMUM = "UtilizationMetricsNetworkPacketsOutPerSecondMaximum"
LOOKBACK_PERIOD_IN_DAYS = "LookbackPeriodInDays"
CURRENT_CONFIGURATION_INSTANCE_TYPE = "CurrentConfigurationInstanceType"
CURRENT_CONFIGURATION_DESIRED_CAPACITY = "CurrentConfigurationDesiredCapacity"
CURRENT_CONFIGURATION_MIN_SIZE = "CurrentConfigurationMinSize"
CURRENT_CONFIGURATION_MAX_SIZE = "CurrentConfigurationMaxSize"
CURRENT_ON_DEMAND_PRICE = "CurrentOnDemandPrice"
CURRENT_STANDARD_ONE_YEAR_NO_UPFRONT_RESERVED_PRICE = "CurrentStandardOneYearNoUpfrontReservedPrice"
CURRENT_STANDARD_THREE_YEAR_NO_UPFRONT_RESERVED_PRICE = "CurrentStandardThreeYearNoUpfrontReservedPrice"
CURRENT_VCPUS = "CurrentVCpus"
CURRENT_MEMORY = "CurrentMemory"
CURRENT_STORAGE = "CurrentStorage"
CURRENT_NETWORK = "CurrentNetwork"
RECOMMENDATION_OPTIONS_CONFIGURATION_INSTANCE_TYPE = "RecommendationOptionsConfigurationInstanceType"
RECOMMENDATION_OPTIONS_CONFIGURATION_DESIRED_CAPACITY = "RecommendationOptionsConfigurationDesiredCapacity"
RECOMMENDATION_OPTIONS_CONFIGURATION_MIN_SIZE = "RecommendationOptionsConfigurationMinSize"
RECOMMENDATION_OPTIONS_CONFIGURATION_MAX_SIZE = "RecommendationOptionsConfigurationMaxSize"
RECOMMENDATION_OPTIONS_PROJECTED_UTILIZATION_METRICS_CPU_MAXIMUM = "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum"
RECOMMENDATION_OPTIONS_PROJECTED_UTILIZATION_METRICS_MEMORY_MAXIMUM = "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum"
RECOMMENDATION_OPTIONS_PERFORMANCE_RISK = "RecommendationOptionsPerformanceRisk"
RECOMMENDATION_OPTIONS_ON_DEMAND_PRICE = "RecommendationOptionsOnDemandPrice"
RECOMMENDATION_OPTIONS_STANDARD_ONE_YEAR_NO_UPFRONT_RESERVED_PRICE = "RecommendationOptionsStandardOneYearNoUpfrontReservedPrice"
RECOMMENDATION_OPTIONS_STANDARD_THREE_YEAR_NO_UPFRONT_RESERVED_PRICE = "RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice"
RECOMMENDATION_OPTIONS_VCPUS = "RecommendationOptionsVcpus"
RECOMMENDATION_OPTIONS_MEMORY = "RecommendationOptionsMemory"
RECOMMENDATION_OPTIONS_STORAGE = "RecommendationOptionsStorage"
RECOMMENDATION_OPTIONS_NETWORK = "RecommendationOptionsNetwork"
LAST_REFRESH_TIMESTAMP = "LastRefreshTimestamp"
CURRENT_PERFORMANCE_RISK = "CurrentPerformanceRisk"
RECOMMENDATION_OPTIONS_SAVINGS_OPPORTUNITY_PERCENTAGE = "RecommendationOptionsSavingsOpportunityPercentage"
RECOMMENDATION_OPTIONS_ESTIMATED_MONTHLY_SAVINGS_CURRENCY = "RecommendationOptionsEstimatedMonthlySavingsCurrency"
RECOMMENDATION_OPTIONS_ESTIMATED_MONTHLY_SAVINGS_VALUE = "RecommendationOptionsEstimatedMonthlySavingsValue"
EFFECTIVE_RECOMMENDATION_PREFERENCES_CPU_VENDOR_ARCHITECTURES = "EffectiveRecommendationPreferencesCpuVendorArchitectures"
EFFECTIVE_RECOMMENDATION_PREFERENCES_ENHANCED_INFRASTRUCTURE_METRICS = "EffectiveRecommendationPreferencesEnhancedInfrastructureMetrics"
EFFECTIVE_RECOMMENDATION_PREFERENCES_INFERRED_WORKLOAD_TYPES = "EffectiveRecommendationPreferencesInferredWorkloadTypes"
INFERRED_WORKLOAD_TYPES = "InferredWorkloadTypes"
RECOMMENDATION_OPTIONS_MIGRATION_EFFORT = "RecommendationOptionsMigrationEffort"
}
enum ExportableECSServiceField {
ACCOUNT_ID = "AccountId"
SERVICE_ARN = "ServiceArn"
LOOKBACK_PERIOD_IN_DAYS = "LookbackPeriodInDays"
LAST_REFRESH_TIMESTAMP = "LastRefreshTimestamp"
LAUNCH_TYPE = "LaunchType"
CURRENT_PERFORMANCE_RISK = "CurrentPerformanceRisk"
CURRENT_SERVICE_CONFIGURATION_MEMORY = "CurrentServiceConfigurationMemory"
CURRENT_SERVICE_CONFIGURATION_CPU = "CurrentServiceConfigurationCpu"
CURRENT_SERVICE_CONFIGURATION_TASK_DEFINITION_ARN = "CurrentServiceConfigurationTaskDefinitionArn"
CURRENT_SERVICE_CONFIGURATION_AUTO_SCALING_CONFIGURATION = "CurrentServiceConfigurationAutoScalingConfiguration"
CURRENT_SERVICE_CONTAINER_CONFIGURATIONS = "CurrentServiceContainerConfigurations"
UTILIZATION_METRICS_CPU_MAXIMUM = "UtilizationMetricsCpuMaximum"
UTILIZATION_METRICS_MEMORY_MAXIMUM = "UtilizationMetricsMemoryMaximum"
FINDING = "Finding"
FINDING_REASON_CODES = "FindingReasonCodes"
RECOMMENDATION_OPTIONS_MEMORY = "RecommendationOptionsMemory"
RECOMMENDATION_OPTIONS_CPU = "RecommendationOptionsCpu"
RECOMMENDATION_OPTIONS_SAVINGS_OPPORTUNITY_PERCENTAGE = "RecommendationOptionsSavingsOpportunityPercentage"
RECOMMENDATION_OPTIONS_ESTIMATED_MONTHLY_SAVINGS_CURRENCY = "RecommendationOptionsEstimatedMonthlySavingsCurrency"
RECOMMENDATION_OPTIONS_ESTIMATED_MONTHLY_SAVINGS_VALUE = "RecommendationOptionsEstimatedMonthlySavingsValue"
RECOMMENDATION_OPTIONS_CONTAINER_RECOMMENDATIONS = "RecommendationOptionsContainerRecommendations"
RECOMMENDATION_OPTIONS_PROJECTED_UTILIZATION_METRICS_CPU_MAXIMUM = "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum"
RECOMMENDATION_OPTIONS_PROJECTED_UTILIZATION_METRICS_MEMORY_MAXIMUM = "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum"
}
enum ExportableInstanceField {
ACCOUNT_ID = "AccountId"
INSTANCE_ARN = "InstanceArn"
INSTANCE_NAME = "InstanceName"
FINDING = "Finding"
Finding_Reason_Codes = "FindingReasonCodes"
LOOKBACK_PERIOD_IN_DAYS = "LookbackPeriodInDays"
CURRENT_INSTANCE_TYPE = "CurrentInstanceType"
UTILIZATION_METRICS_CPU_MAXIMUM = "UtilizationMetricsCpuMaximum"
UTILIZATION_METRICS_MEMORY_MAXIMUM = "UtilizationMetricsMemoryMaximum"
UTILIZATION_METRICS_EBS_READ_OPS_PER_SECOND_MAXIMUM = "UtilizationMetricsEbsReadOpsPerSecondMaximum"
UTILIZATION_METRICS_EBS_WRITE_OPS_PER_SECOND_MAXIMUM = "UtilizationMetricsEbsWriteOpsPerSecondMaximum"
UTILIZATION_METRICS_EBS_READ_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsEbsReadBytesPerSecondMaximum"
UTILIZATION_METRICS_EBS_WRITE_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsEbsWriteBytesPerSecondMaximum"
UTILIZATION_METRICS_DISK_READ_OPS_PER_SECOND_MAXIMUM = "UtilizationMetricsDiskReadOpsPerSecondMaximum"
UTILIZATION_METRICS_DISK_WRITE_OPS_PER_SECOND_MAXIMUM = "UtilizationMetricsDiskWriteOpsPerSecondMaximum"
UTILIZATION_METRICS_DISK_READ_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsDiskReadBytesPerSecondMaximum"
UTILIZATION_METRICS_DISK_WRITE_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsDiskWriteBytesPerSecondMaximum"
UTILIZATION_METRICS_NETWORK_IN_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsNetworkInBytesPerSecondMaximum"
UTILIZATION_METRICS_NETWORK_OUT_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsNetworkOutBytesPerSecondMaximum"
UTILIZATION_METRICS_NETWORK_PACKETS_IN_PER_SECOND_MAXIMUM = "UtilizationMetricsNetworkPacketsInPerSecondMaximum"
UTILIZATION_METRICS_NETWORK_PACKETS_OUT_PER_SECOND_MAXIMUM = "UtilizationMetricsNetworkPacketsOutPerSecondMaximum"
CURRENT_ON_DEMAND_PRICE = "CurrentOnDemandPrice"
CURRENT_STANDARD_ONE_YEAR_NO_UPFRONT_RESERVED_PRICE = "CurrentStandardOneYearNoUpfrontReservedPrice"
CURRENT_STANDARD_THREE_YEAR_NO_UPFRONT_RESERVED_PRICE = "CurrentStandardThreeYearNoUpfrontReservedPrice"
CURRENT_VCPUS = "CurrentVCpus"
CURRENT_MEMORY = "CurrentMemory"
CURRENT_STORAGE = "CurrentStorage"
CURRENT_NETWORK = "CurrentNetwork"
RECOMMENDATION_OPTIONS_INSTANCE_TYPE = "RecommendationOptionsInstanceType"
RECOMMENDATION_OPTIONS_PROJECTED_UTILIZATION_METRICS_CPU_MAXIMUM = "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum"
RECOMMENDATION_OPTIONS_PROJECTED_UTILIZATION_METRICS_MEMORY_MAXIMUM = "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum"
RECOMMENDATION_OPTIONS_PLATFORM_DIFFERENCES = "RecommendationOptionsPlatformDifferences"
RECOMMENDATION_OPTIONS_PERFORMANCE_RISK = "RecommendationOptionsPerformanceRisk"
RECOMMENDATION_OPTIONS_VCPUS = "RecommendationOptionsVcpus"
RECOMMENDATION_OPTIONS_MEMORY = "RecommendationOptionsMemory"
RECOMMENDATION_OPTIONS_STORAGE = "RecommendationOptionsStorage"
RECOMMENDATION_OPTIONS_NETWORK = "RecommendationOptionsNetwork"
RECOMMENDATION_OPTIONS_ON_DEMAND_PRICE = "RecommendationOptionsOnDemandPrice"
RECOMMENDATION_OPTIONS_STANDARD_ONE_YEAR_NO_UPFRONT_RESERVED_PRICE = "RecommendationOptionsStandardOneYearNoUpfrontReservedPrice"
RECOMMENDATION_OPTIONS_STANDARD_THREE_YEAR_NO_UPFRONT_RESERVED_PRICE = "RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice"
RECOMMENDATIONS_SOURCES_RECOMMENDATION_SOURCE_ARN = "RecommendationsSourcesRecommendationSourceArn"
RECOMMENDATIONS_SOURCES_RECOMMENDATION_SOURCE_TYPE = "RecommendationsSourcesRecommendationSourceType"
LAST_REFRESH_TIMESTAMP = "LastRefreshTimestamp"
CURRENT_PERFORMANCE_RISK = "CurrentPerformanceRisk"
RECOMMENDATION_OPTIONS_SAVINGS_OPPORTUNITY_PERCENTAGE = "RecommendationOptionsSavingsOpportunityPercentage"
RECOMMENDATION_OPTIONS_ESTIMATED_MONTHLY_SAVINGS_CURRENCY = "RecommendationOptionsEstimatedMonthlySavingsCurrency"
RECOMMENDATION_OPTIONS_ESTIMATED_MONTHLY_SAVINGS_VALUE = "RecommendationOptionsEstimatedMonthlySavingsValue"
EFFECTIVE_RECOMMENDATION_PREFERENCES_CPU_VENDOR_ARCHITECTURES = "EffectiveRecommendationPreferencesCpuVendorArchitectures"
EFFECTIVE_RECOMMENDATION_PREFERENCES_ENHANCED_INFRASTRUCTURE_METRICS = "EffectiveRecommendationPreferencesEnhancedInfrastructureMetrics"
EFFECTIVE_RECOMMENDATION_PREFERENCES_INFERRED_WORKLOAD_TYPES = "EffectiveRecommendationPreferencesInferredWorkloadTypes"
INFERRED_WORKLOAD_TYPES = "InferredWorkloadTypes"
RECOMMENDATION_OPTIONS_MIGRATION_EFFORT = "RecommendationOptionsMigrationEffort"
EFFECTIVE_RECOMMENDATION_PREFERENCES_EXTERNAL_METRICS_SOURCE = "EffectiveRecommendationPreferencesExternalMetricsSource"
}
enum ExportableLambdaFunctionField {
ACCOUNT_ID = "AccountId"
FUNCTION_ARN = "FunctionArn"
FUNCTION_VERSION = "FunctionVersion"
FINDING = "Finding"
FINDING_REASON_CODES = "FindingReasonCodes"
NUMBER_OF_INVOCATIONS = "NumberOfInvocations"
UTILIZATION_METRICS_DURATION_MAXIMUM = "UtilizationMetricsDurationMaximum"
UTILIZATION_METRICS_DURATION_AVERAGE = "UtilizationMetricsDurationAverage"
UTILIZATION_METRICS_MEMORY_MAXIMUM = "UtilizationMetricsMemoryMaximum"
UTILIZATION_METRICS_MEMORY_AVERAGE = "UtilizationMetricsMemoryAverage"
LOOKBACK_PERIOD_IN_DAYS = "LookbackPeriodInDays"
CURRENT_CONFIGURATION_MEMORY_SIZE = "CurrentConfigurationMemorySize"
CURRENT_CONFIGURATION_TIMEOUT = "CurrentConfigurationTimeout"
CURRENT_COST_TOTAL = "CurrentCostTotal"
CURRENT_COST_AVERAGE = "CurrentCostAverage"
RECOMMENDATION_OPTIONS_CONFIGURATION_MEMORY_SIZE = "RecommendationOptionsConfigurationMemorySize"
RECOMMENDATION_OPTIONS_COST_LOW = "RecommendationOptionsCostLow"
RECOMMENDATION_OPTIONS_COST_HIGH = "RecommendationOptionsCostHigh"
RECOMMENDATION_OPTIONS_PROJECTED_UTILIZATION_METRICS_DURATION_LOWER_BOUND = "RecommendationOptionsProjectedUtilizationMetricsDurationLowerBound"
RECOMMENDATION_OPTIONS_PROJECTED_UTILIZATION_METRICS_DURATION_UPPER_BOUND = "RecommendationOptionsProjectedUtilizationMetricsDurationUpperBound"
RECOMMENDATION_OPTIONS_PROJECTED_UTILIZATION_METRICS_DURATION_EXPECTED = "RecommendationOptionsProjectedUtilizationMetricsDurationExpected"
LAST_REFRESH_TIMESTAMP = "LastRefreshTimestamp"
CURRENT_PERFORMANCE_RISK = "CurrentPerformanceRisk"
RECOMMENDATION_OPTIONS_SAVINGS_OPPORTUNITY_PERCENTAGE = "RecommendationOptionsSavingsOpportunityPercentage"
RECOMMENDATION_OPTIONS_ESTIMATED_MONTHLY_SAVINGS_CURRENCY = "RecommendationOptionsEstimatedMonthlySavingsCurrency"
RECOMMENDATION_OPTIONS_ESTIMATED_MONTHLY_SAVINGS_VALUE = "RecommendationOptionsEstimatedMonthlySavingsValue"
}
enum ExportableVolumeField {
ACCOUNT_ID = "AccountId"
VOLUME_ARN = "VolumeArn"
FINDING = "Finding"
UTILIZATION_METRICS_VOLUME_READ_OPS_PER_SECOND_MAXIMUM = "UtilizationMetricsVolumeReadOpsPerSecondMaximum"
UTILIZATION_METRICS_VOLUME_WRITE_OPS_PER_SECOND_MAXIMUM = "UtilizationMetricsVolumeWriteOpsPerSecondMaximum"
UTILIZATION_METRICS_VOLUME_READ_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsVolumeReadBytesPerSecondMaximum"
UTILIZATION_METRICS_VOLUME_WRITE_BYTES_PER_SECOND_MAXIMUM = "UtilizationMetricsVolumeWriteBytesPerSecondMaximum"
LOOKBACK_PERIOD_IN_DAYS = "LookbackPeriodInDays"
CURRENT_CONFIGURATION_VOLUME_TYPE = "CurrentConfigurationVolumeType"
CURRENT_CONFIGURATION_VOLUME_BASELINE_IOPS = "CurrentConfigurationVolumeBaselineIOPS"
CURRENT_CONFIGURATION_VOLUME_BASELINE_THROUGHPUT = "CurrentConfigurationVolumeBaselineThroughput"
CURRENT_CONFIGURATION_VOLUME_BURST_IOPS = "CurrentConfigurationVolumeBurstIOPS"
CURRENT_CONFIGURATION_VOLUME_BURST_THROUGHPUT = "CurrentConfigurationVolumeBurstThroughput"
CURRENT_CONFIGURATION_VOLUME_SIZE = "CurrentConfigurationVolumeSize"
CURRENT_MONTHLY_PRICE = "CurrentMonthlyPrice"
RECOMMENDATION_OPTIONS_CONFIGURATION_VOLUME_TYPE = "RecommendationOptionsConfigurationVolumeType"
RECOMMENDATION_OPTIONS_CONFIGURATION_VOLUME_BASELINE_IOPS = "RecommendationOptionsConfigurationVolumeBaselineIOPS"
RECOMMENDATION_OPTIONS_CONFIGURATION_VOLUME_BASELINE_THROUGHPUT = "RecommendationOptionsConfigurationVolumeBaselineThroughput"
RECOMMENDATION_OPTIONS_CONFIGURATION_VOLUME_BURST_IOPS = "RecommendationOptionsConfigurationVolumeBurstIOPS"
RECOMMENDATION_OPTIONS_CONFIGURATION_VOLUME_BURST_THROUGHPUT = "RecommendationOptionsConfigurationVolumeBurstThroughput"
RECOMMENDATION_OPTIONS_CONFIGURATION_VOLUME_SIZE = "RecommendationOptionsConfigurationVolumeSize"
RECOMMENDATION_OPTIONS_MONTHLY_PRICE = "RecommendationOptionsMonthlyPrice"
RECOMMENDATION_OPTIONS_PERFORMANCE_RISK = "RecommendationOptionsPerformanceRisk"
LAST_REFRESH_TIMESTAMP = "LastRefreshTimestamp"
CURRENT_PERFORMANCE_RISK = "CurrentPerformanceRisk"
RECOMMENDATION_OPTIONS_SAVINGS_OPPORTUNITY_PERCENTAGE = "RecommendationOptionsSavingsOpportunityPercentage"
RECOMMENDATION_OPTIONS_ESTIMATED_MONTHLY_SAVINGS_CURRENCY = "RecommendationOptionsEstimatedMonthlySavingsCurrency"
RECOMMENDATION_OPTIONS_ESTIMATED_MONTHLY_SAVINGS_VALUE = "RecommendationOptionsEstimatedMonthlySavingsValue"
}
enum ExternalMetricsSource {
DATADOG = "Datadog"
DYNATRACE = "Dynatrace"
NEWRELIC = "NewRelic"
INSTANA = "Instana"
}
string FailureReason
enum FileFormat {
CSV = "Csv"
}
enum FilterName {
FINDING = "Finding"
FINDING_REASON_CODES = "FindingReasonCodes"
RECOMMENDATION_SOURCE_TYPE = "RecommendationSourceType"
}
string FilterValue
enum Finding {
UNDER_PROVISIONED = "Underprovisioned"
OVER_PROVISIONED = "Overprovisioned"
OPTIMIZED = "Optimized"
NOT_OPTIMIZED = "NotOptimized"
}
enum FindingReasonCode {
MEMORY_OVER_PROVISIONED = "MemoryOverprovisioned"
MEMORY_UNDER_PROVISIONED = "MemoryUnderprovisioned"
}
string FunctionArn
string FunctionVersion
@default(0)
long High
string Identifier
@default(false)
boolean IncludeMemberAccounts
enum InferredWorkloadType {
AMAZON_EMR = "AmazonEmr"
APACHE_CASSANDRA = "ApacheCassandra"
APACHE_HADOOP = "ApacheHadoop"
MEMCACHED = "Memcached"
NGINX = "Nginx"
POSTGRE_SQL = "PostgreSql"
REDIS = "Redis"
KAFKA = "Kafka"
}
enum InferredWorkloadTypesPreference {
ACTIVE = "Active"
INACTIVE = "Inactive"
}
string InstanceArn
string InstanceName
enum InstanceRecommendationFindingReasonCode {
CPU_OVER_PROVISIONED = "CPUOverprovisioned"
CPU_UNDER_PROVISIONED = "CPUUnderprovisioned"
MEMORY_OVER_PROVISIONED = "MemoryOverprovisioned"
MEMORY_UNDER_PROVISIONED = "MemoryUnderprovisioned"
EBS_THROUGHPUT_OVER_PROVISIONED = "EBSThroughputOverprovisioned"
EBS_THROUGHPUT_UNDER_PROVISIONED = "EBSThroughputUnderprovisioned"
EBS_IOPS_OVER_PROVISIONED = "EBSIOPSOverprovisioned"
EBS_IOPS_UNDER_PROVISIONED = "EBSIOPSUnderprovisioned"
NETWORK_BANDWIDTH_OVER_PROVISIONED = "NetworkBandwidthOverprovisioned"
NETWORK_BANDWIDTH_UNDER_PROVISIONED = "NetworkBandwidthUnderprovisioned"
NETWORK_PPS_OVER_PROVISIONED = "NetworkPPSOverprovisioned"
NETWORK_PPS_UNDER_PROVISIONED = "NetworkPPSUnderprovisioned"
DISK_IOPS_OVER_PROVISIONED = "DiskIOPSOverprovisioned"
DISK_IOPS_UNDER_PROVISIONED = "DiskIOPSUnderprovisioned"
DISK_THROUGHPUT_OVER_PROVISIONED = "DiskThroughputOverprovisioned"
DISK_THROUGHPUT_UNDER_PROVISIONED = "DiskThroughputUnderprovisioned"
}
string InstanceType
enum JobFilterName {
RESOURCE_TYPE = "ResourceType"
JOB_STATUS = "JobStatus"
}
string JobId
enum JobStatus {
QUEUED = "Queued"
IN_PROGRESS = "InProgress"
COMPLETE = "Complete"
FAILED = "Failed"
}
enum LambdaFunctionMemoryMetricName {
DURATION = "Duration"
}
enum LambdaFunctionMemoryMetricStatistic {
LOWER_BOUND = "LowerBound"
UPPER_BOUND = "UpperBound"
EXPECTED = "Expected"
}
enum LambdaFunctionMetricName {
DURATION = "Duration"
MEMORY = "Memory"
}
enum LambdaFunctionMetricStatistic {
MAXIMUM = "Maximum"
AVERAGE = "Average"
}
enum LambdaFunctionRecommendationFilterName {
FINDING = "Finding"
FINDING_REASON_CODE = "FindingReasonCode"
}
enum LambdaFunctionRecommendationFinding {
OPTIMIZED = "Optimized"
NOT_OPTIMIZED = "NotOptimized"
UNAVAILABLE = "Unavailable"
}
enum LambdaFunctionRecommendationFindingReasonCode {
MEMORY_OVER_PROVISIONED = "MemoryOverprovisioned"
MEMORY_UNDER_PROVISIONED = "MemoryUnderprovisioned"
INSUFFICIENT_DATA = "InsufficientData"
INCONCLUSIVE = "Inconclusive"
}
timestamp LastRefreshTimestamp
timestamp LastUpdatedTimestamp
@default(0)
double LookBackPeriodInDays
@default(0)
long Low
@default(0)
double LowerBoundValue
@range(
min: 0
max: 1000
)
integer MaxResults
@default(0)
integer MaxSize
@default(0)
long Medium
@default(false)
boolean MemberAccountsEnrolled
@default(0)
integer MemorySize
string Message
string MetadataKey
enum MetricName {
CPU = "Cpu"
MEMORY = "Memory"
EBS_READ_OPS_PER_SECOND
EBS_WRITE_OPS_PER_SECOND
EBS_READ_BYTES_PER_SECOND
EBS_WRITE_BYTES_PER_SECOND
DISK_READ_OPS_PER_SECOND
DISK_WRITE_OPS_PER_SECOND
DISK_READ_BYTES_PER_SECOND
DISK_WRITE_BYTES_PER_SECOND
NETWORK_IN_BYTES_PER_SECOND
NETWORK_OUT_BYTES_PER_SECOND
NETWORK_PACKETS_IN_PER_SECOND
NETWORK_PACKETS_OUT_PER_SECOND
}
enum MetricStatistic {
MAXIMUM = "Maximum"
AVERAGE = "Average"
}
@default(0)
double MetricValue
enum MigrationEffort {
VERY_LOW = "VeryLow"
LOW = "Low"
MEDIUM = "Medium"
HIGH = "High"
}
@default(0)
integer MinSize
string NextToken
integer NullableCpu
integer NullableMemory
integer NullableMemoryReservation
@default(0)
long NumberOfInvocations
integer NumberOfMemberAccountsOptedIn
@default(0)
@range(
min: 0
max: 4
)
double PerformanceRisk
@default(0)
integer Period
enum PlatformDifference {
HYPERVISOR = "Hypervisor"
NETWORK_INTERFACE = "NetworkInterface"
STORAGE_INTERFACE = "StorageInterface"
INSTANCE_STORE_AVAILABILITY = "InstanceStoreAvailability"
VIRTUALIZATION_TYPE = "VirtualizationType"
ARCHITECTURE = "Architecture"
}
@default(0)
integer Rank
enum RecommendationPreferenceName {
ENHANCED_INFRASTRUCTURE_METRICS = "EnhancedInfrastructureMetrics"
INFERRED_WORKLOAD_TYPES = "InferredWorkloadTypes"
EXTERNAL_METRICS_PREFERENCE = "ExternalMetricsPreference"
}
string RecommendationSourceArn
enum RecommendationSourceType {
EC2_INSTANCE = "Ec2Instance"
AUTO_SCALING_GROUP = "AutoScalingGroup"
EBS_VOLUME = "EbsVolume"
LAMBDA_FUNCTION = "LambdaFunction"
ECS_SERVICE = "EcsService"
}
string RecommendedInstanceType
string ResourceArn
enum ResourceType {
EC2_INSTANCE = "Ec2Instance"
AUTO_SCALING_GROUP = "AutoScalingGroup"
EBS_VOLUME = "EbsVolume"
LAMBDA_FUNCTION = "LambdaFunction"
NOT_APPLICABLE = "NotApplicable"
ECS_SERVICE = "EcsService"
}
@default(0)
double SavingsOpportunityPercentage
enum ScopeName {
ORGANIZATION = "Organization"
ACCOUNT_ID = "AccountId"
RESOURCE_ARN = "ResourceArn"
}
string ScopeValue
string ServiceArn
enum Status {
ACTIVE = "Active"
INACTIVE = "Inactive"
PENDING = "Pending"
FAILED = "Failed"
}
string StatusReason
@default(0)
double SummaryValue
string TaskDefinitionArn
timestamp Timestamp
@default(0)
double UpperBoundValue
@default(0)
double Value
@default(0)
long VeryLow
string VolumeArn
@default(0)
integer VolumeBaselineIOPS
@default(0)
integer VolumeBaselineThroughput
@default(0)
integer VolumeBurstIOPS
@default(0)
integer VolumeBurstThroughput
@default(0)
integer VolumeSize
string VolumeType