Skip to content

Commit

Permalink
feat(client-application-auto-scaling): Application Auto Scaling now s…
Browse files Browse the repository at this point in the history
…upports Predictive Scaling to proactively increase the desired capacity ahead of predicted demand, ensuring improved availability and responsiveness for customers' applications. This feature is currently only made available for Amazon ECS Service scalable targets.
  • Loading branch information
awstools committed Nov 21, 2024
1 parent 1a8d64c commit d8a4d0b
Show file tree
Hide file tree
Showing 11 changed files with 1,930 additions and 4 deletions.
8 changes: 8 additions & 0 deletions clients/client-application-auto-scaling/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,14 @@ DescribeScheduledActions

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/application-auto-scaling/command/DescribeScheduledActionsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-application-auto-scaling/Interface/DescribeScheduledActionsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-application-auto-scaling/Interface/DescribeScheduledActionsCommandOutput/)

</details>
<details>
<summary>
GetPredictiveScalingForecast
</summary>

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/application-auto-scaling/command/GetPredictiveScalingForecastCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-application-auto-scaling/Interface/GetPredictiveScalingForecastCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-application-auto-scaling/Interface/GetPredictiveScalingForecastCommandOutput/)

</details>
<details>
<summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ import {
DescribeScheduledActionsCommandInput,
DescribeScheduledActionsCommandOutput,
} from "./commands/DescribeScheduledActionsCommand";
import {
GetPredictiveScalingForecastCommand,
GetPredictiveScalingForecastCommandInput,
GetPredictiveScalingForecastCommandOutput,
} from "./commands/GetPredictiveScalingForecastCommand";
import {
ListTagsForResourceCommand,
ListTagsForResourceCommandInput,
Expand Down Expand Up @@ -73,6 +78,7 @@ const commands = {
DescribeScalingActivitiesCommand,
DescribeScalingPoliciesCommand,
DescribeScheduledActionsCommand,
GetPredictiveScalingForecastCommand,
ListTagsForResourceCommand,
PutScalingPolicyCommand,
PutScheduledActionCommand,
Expand Down Expand Up @@ -201,6 +207,23 @@ export interface ApplicationAutoScaling {
cb: (err: any, data?: DescribeScheduledActionsCommandOutput) => void
): void;

/**
* @see {@link GetPredictiveScalingForecastCommand}
*/
getPredictiveScalingForecast(
args: GetPredictiveScalingForecastCommandInput,
options?: __HttpHandlerOptions
): Promise<GetPredictiveScalingForecastCommandOutput>;
getPredictiveScalingForecast(
args: GetPredictiveScalingForecastCommandInput,
cb: (err: any, data?: GetPredictiveScalingForecastCommandOutput) => void
): void;
getPredictiveScalingForecast(
args: GetPredictiveScalingForecastCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: GetPredictiveScalingForecastCommandOutput) => void
): void;

/**
* @see {@link ListTagsForResourceCommand}
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ import {
DescribeScheduledActionsCommandInput,
DescribeScheduledActionsCommandOutput,
} from "./commands/DescribeScheduledActionsCommand";
import {
GetPredictiveScalingForecastCommandInput,
GetPredictiveScalingForecastCommandOutput,
} from "./commands/GetPredictiveScalingForecastCommand";
import {
ListTagsForResourceCommandInput,
ListTagsForResourceCommandOutput,
Expand Down Expand Up @@ -115,6 +119,7 @@ export type ServiceInputTypes =
| DescribeScalingActivitiesCommandInput
| DescribeScalingPoliciesCommandInput
| DescribeScheduledActionsCommandInput
| GetPredictiveScalingForecastCommandInput
| ListTagsForResourceCommandInput
| PutScalingPolicyCommandInput
| PutScheduledActionCommandInput
Expand All @@ -133,6 +138,7 @@ export type ServiceOutputTypes =
| DescribeScalingActivitiesCommandOutput
| DescribeScalingPoliciesCommandOutput
| DescribeScheduledActionsCommandOutput
| GetPredictiveScalingForecastCommandOutput
| ListTagsForResourceCommandOutput
| PutScalingPolicyCommandOutput
| PutScheduledActionCommandOutput
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ export interface DescribeScalableTargetsCommandOutput extends DescribeScalableTa
* // ScalableDimension: "ecs:service:DesiredCount" || "ec2:spot-fleet-request:TargetCapacity" || "elasticmapreduce:instancegroup:InstanceCount" || "appstream:fleet:DesiredCapacity" || "dynamodb:table:ReadCapacityUnits" || "dynamodb:table:WriteCapacityUnits" || "dynamodb:index:ReadCapacityUnits" || "dynamodb:index:WriteCapacityUnits" || "rds:cluster:ReadReplicaCount" || "sagemaker:variant:DesiredInstanceCount" || "custom-resource:ResourceType:Property" || "comprehend:document-classifier-endpoint:DesiredInferenceUnits" || "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits" || "lambda:function:ProvisionedConcurrency" || "cassandra:table:ReadCapacityUnits" || "cassandra:table:WriteCapacityUnits" || "kafka:broker-storage:VolumeSize" || "elasticache:replication-group:NodeGroups" || "elasticache:replication-group:Replicas" || "neptune:cluster:ReadReplicaCount" || "sagemaker:variant:DesiredProvisionedConcurrency" || "sagemaker:inference-component:DesiredCopyCount" || "workspaces:workspacespool:DesiredUserSessions", // required
* // MinCapacity: Number("int"), // required
* // MaxCapacity: Number("int"), // required
* // PredictedCapacity: Number("int"),
* // RoleARN: "STRING_VALUE", // required
* // CreationTime: new Date("TIMESTAMP"), // required
* // SuspendedState: { // SuspendedState
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ export interface DescribeScalingPoliciesCommandOutput extends DescribeScalingPol
* // ServiceNamespace: "ecs" || "elasticmapreduce" || "ec2" || "appstream" || "dynamodb" || "rds" || "sagemaker" || "custom-resource" || "comprehend" || "lambda" || "cassandra" || "kafka" || "elasticache" || "neptune" || "workspaces", // required
* // ResourceId: "STRING_VALUE", // required
* // ScalableDimension: "ecs:service:DesiredCount" || "ec2:spot-fleet-request:TargetCapacity" || "elasticmapreduce:instancegroup:InstanceCount" || "appstream:fleet:DesiredCapacity" || "dynamodb:table:ReadCapacityUnits" || "dynamodb:table:WriteCapacityUnits" || "dynamodb:index:ReadCapacityUnits" || "dynamodb:index:WriteCapacityUnits" || "rds:cluster:ReadReplicaCount" || "sagemaker:variant:DesiredInstanceCount" || "custom-resource:ResourceType:Property" || "comprehend:document-classifier-endpoint:DesiredInferenceUnits" || "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits" || "lambda:function:ProvisionedConcurrency" || "cassandra:table:ReadCapacityUnits" || "cassandra:table:WriteCapacityUnits" || "kafka:broker-storage:VolumeSize" || "elasticache:replication-group:NodeGroups" || "elasticache:replication-group:Replicas" || "neptune:cluster:ReadReplicaCount" || "sagemaker:variant:DesiredProvisionedConcurrency" || "sagemaker:inference-component:DesiredCopyCount" || "workspaces:workspacespool:DesiredUserSessions", // required
* // PolicyType: "StepScaling" || "TargetTrackingScaling", // required
* // PolicyType: "StepScaling" || "TargetTrackingScaling" || "PredictiveScaling", // required
* // StepScalingPolicyConfiguration: { // StepScalingPolicyConfiguration
* // AdjustmentType: "ChangeInCapacity" || "PercentChangeInCapacity" || "ExactCapacity",
* // StepAdjustments: [ // StepAdjustments
Expand Down Expand Up @@ -120,6 +120,101 @@ export interface DescribeScalingPoliciesCommandOutput extends DescribeScalingPol
* // ScaleInCooldown: Number("int"),
* // DisableScaleIn: true || false,
* // },
* // PredictiveScalingPolicyConfiguration: { // PredictiveScalingPolicyConfiguration
* // MetricSpecifications: [ // PredictiveScalingMetricSpecifications // required
* // { // PredictiveScalingMetricSpecification
* // TargetValue: Number("double"), // required
* // PredefinedMetricPairSpecification: { // PredictiveScalingPredefinedMetricPairSpecification
* // PredefinedMetricType: "STRING_VALUE", // required
* // ResourceLabel: "STRING_VALUE",
* // },
* // PredefinedScalingMetricSpecification: { // PredictiveScalingPredefinedScalingMetricSpecification
* // PredefinedMetricType: "STRING_VALUE", // required
* // ResourceLabel: "STRING_VALUE",
* // },
* // PredefinedLoadMetricSpecification: { // PredictiveScalingPredefinedLoadMetricSpecification
* // PredefinedMetricType: "STRING_VALUE", // required
* // ResourceLabel: "STRING_VALUE",
* // },
* // CustomizedScalingMetricSpecification: { // PredictiveScalingCustomizedMetricSpecification
* // MetricDataQueries: [ // PredictiveScalingMetricDataQueries // required
* // { // PredictiveScalingMetricDataQuery
* // Id: "STRING_VALUE", // required
* // Expression: "STRING_VALUE",
* // MetricStat: { // PredictiveScalingMetricStat
* // Metric: { // PredictiveScalingMetric
* // Dimensions: [ // PredictiveScalingMetricDimensions
* // { // PredictiveScalingMetricDimension
* // Name: "STRING_VALUE", // required
* // Value: "STRING_VALUE", // required
* // },
* // ],
* // MetricName: "STRING_VALUE",
* // Namespace: "STRING_VALUE",
* // },
* // Stat: "STRING_VALUE", // required
* // Unit: "STRING_VALUE",
* // },
* // Label: "STRING_VALUE",
* // ReturnData: true || false,
* // },
* // ],
* // },
* // CustomizedLoadMetricSpecification: {
* // MetricDataQueries: [ // required
* // {
* // Id: "STRING_VALUE", // required
* // Expression: "STRING_VALUE",
* // MetricStat: {
* // Metric: {
* // Dimensions: [
* // {
* // Name: "STRING_VALUE", // required
* // Value: "STRING_VALUE", // required
* // },
* // ],
* // MetricName: "STRING_VALUE",
* // Namespace: "STRING_VALUE",
* // },
* // Stat: "STRING_VALUE", // required
* // Unit: "STRING_VALUE",
* // },
* // Label: "STRING_VALUE",
* // ReturnData: true || false,
* // },
* // ],
* // },
* // CustomizedCapacityMetricSpecification: {
* // MetricDataQueries: [ // required
* // {
* // Id: "STRING_VALUE", // required
* // Expression: "STRING_VALUE",
* // MetricStat: {
* // Metric: {
* // Dimensions: [
* // {
* // Name: "STRING_VALUE", // required
* // Value: "STRING_VALUE", // required
* // },
* // ],
* // MetricName: "STRING_VALUE",
* // Namespace: "STRING_VALUE",
* // },
* // Stat: "STRING_VALUE", // required
* // Unit: "STRING_VALUE",
* // },
* // Label: "STRING_VALUE",
* // ReturnData: true || false,
* // },
* // ],
* // },
* // },
* // ],
* // Mode: "ForecastOnly" || "ForecastAndScale",
* // SchedulingBufferTime: Number("int"),
* // MaxCapacityBreachBehavior: "HonorMaxCapacity" || "IncreaseMaxCapacity",
* // MaxCapacityBuffer: Number("int"),
* // },
* // Alarms: [ // Alarms
* // { // Alarm
* // AlarmName: "STRING_VALUE", // required
Expand Down
Loading

0 comments on commit d8a4d0b

Please sign in to comment.