UNPKG

1.39 kBTypeScriptView Raw
1import { Handler, Callback } from "../handler";
2
3export type AutoScalingScaleInHandler = Handler<AutoScalingScaleInEvent, AutoScalingScaleInResult>;
4export type AutoScalingScaleInCallback = Callback<AutoScalingScaleInResult>;
5
6export type AutoScalingInstanceMarketOption = "spot" | "on-demand";
7
8export type AutoScalingScaleInCause = "SCALE_IN" | "INSTANCE_REFRESH" | "MAX_INSTANCE_LIFETIME" | "REBALANCE";
9
10export interface AutoScalingTerminationRequest {
11 AvailabilityZone: string;
12 Capacity: number;
13 InstanceMarketOption: AutoScalingInstanceMarketOption;
14}
15
16export interface AutoScalingInstanceRecord {
17 AvailabilityZone: string;
18 InstanceId: string;
19 InstanceType: string;
20 InstanceMarketOption: AutoScalingInstanceMarketOption;
21}
22
23/**
24 * An Auto Scaling Group may trigger a Scale In Event when you have attached
25 * a custom termination policy function. This event and the expected response are
26 * described in the Auto Scaling docs at:
27 *
28 * https://docs.aws.amazon.com/autoscaling/ec2/userguide/lambda-custom-termination-policy.html
29 */
30export interface AutoScalingScaleInEvent {
31 AutoScalingGroupARN: string;
32 AutoScalingGroupName: string;
33 CapacityToTerminate: AutoScalingTerminationRequest[];
34 Instances: AutoScalingInstanceRecord[];
35 Cause: AutoScalingScaleInCause;
36 HasMoreInstances?: boolean;
37}
38
39export interface AutoScalingScaleInResult {
40 InstanceIDs: string[];
41}