-
Notifications
You must be signed in to change notification settings - Fork 17
/
ScalingSchedule.go
73 lines (70 loc) · 2.45 KB
/
ScalingSchedule.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package awsapplicationautoscaling
import (
"time"
)
// A scheduled scaling action.
//
// Example:
// var cluster cluster
//
// loadBalancedFargateService := ecsPatterns.NewApplicationLoadBalancedFargateService(this, jsii.String("Service"), &ApplicationLoadBalancedFargateServiceProps{
// Cluster: Cluster,
// MemoryLimitMiB: jsii.Number(1024),
// DesiredCount: jsii.Number(1),
// Cpu: jsii.Number(512),
// TaskImageOptions: &ApplicationLoadBalancedTaskImageOptions{
// Image: ecs.ContainerImage_FromRegistry(jsii.String("amazon/amazon-ecs-sample")),
// },
// })
//
// scalableTarget := loadBalancedFargateService.Service.AutoScaleTaskCount(&EnableScalingProps{
// MinCapacity: jsii.Number(5),
// MaxCapacity: jsii.Number(20),
// })
//
// scalableTarget.ScaleOnSchedule(jsii.String("DaytimeScaleDown"), &ScalingSchedule{
// Schedule: appscaling.Schedule_Cron(&CronOptions{
// Hour: jsii.String("8"),
// Minute: jsii.String("0"),
// }),
// MinCapacity: jsii.Number(1),
// })
//
// scalableTarget.ScaleOnSchedule(jsii.String("EveningRushScaleUp"), &ScalingSchedule{
// Schedule: appscaling.Schedule_*Cron(&CronOptions{
// Hour: jsii.String("20"),
// Minute: jsii.String("0"),
// }),
// MinCapacity: jsii.Number(10),
// })
//
type ScalingSchedule struct {
// When to perform this action.
Schedule Schedule `field:"required" json:"schedule" yaml:"schedule"`
// When this scheduled action expires.
// Default: The rule never expires.
//
EndTime *time.Time `field:"optional" json:"endTime" yaml:"endTime"`
// The new maximum capacity.
//
// During the scheduled time, the current capacity is above the maximum
// capacity, Application Auto Scaling scales in to the maximum capacity.
//
// At least one of maxCapacity and minCapacity must be supplied.
// Default: No new maximum capacity.
//
MaxCapacity *float64 `field:"optional" json:"maxCapacity" yaml:"maxCapacity"`
// The new minimum capacity.
//
// During the scheduled time, if the current capacity is below the minimum
// capacity, Application Auto Scaling scales out to the minimum capacity.
//
// At least one of maxCapacity and minCapacity must be supplied.
// Default: No new minimum capacity.
//
MinCapacity *float64 `field:"optional" json:"minCapacity" yaml:"minCapacity"`
// When this scheduled action becomes active.
// Default: The rule is activate immediately.
//
StartTime *time.Time `field:"optional" json:"startTime" yaml:"startTime"`
}