awsautoscaling

package
v2.0.0-rc.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 19, 2021 License: Apache-2.0 Imports: 13 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AutoScalingGroup_IsConstruct

func AutoScalingGroup_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func AutoScalingGroup_IsResource

func AutoScalingGroup_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func CfnAutoScalingGroup_CFN_RESOURCE_TYPE_NAME

func CfnAutoScalingGroup_CFN_RESOURCE_TYPE_NAME() *string

func CfnAutoScalingGroup_IsCfnElement

func CfnAutoScalingGroup_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnAutoScalingGroup_IsCfnResource

func CfnAutoScalingGroup_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnAutoScalingGroup_IsConstruct

func CfnAutoScalingGroup_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnLaunchConfiguration_CFN_RESOURCE_TYPE_NAME

func CfnLaunchConfiguration_CFN_RESOURCE_TYPE_NAME() *string

func CfnLaunchConfiguration_IsCfnElement

func CfnLaunchConfiguration_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnLaunchConfiguration_IsCfnResource

func CfnLaunchConfiguration_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnLaunchConfiguration_IsConstruct

func CfnLaunchConfiguration_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnLifecycleHook_CFN_RESOURCE_TYPE_NAME

func CfnLifecycleHook_CFN_RESOURCE_TYPE_NAME() *string

func CfnLifecycleHook_IsCfnElement

func CfnLifecycleHook_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnLifecycleHook_IsCfnResource

func CfnLifecycleHook_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnLifecycleHook_IsConstruct

func CfnLifecycleHook_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnScalingPolicy_CFN_RESOURCE_TYPE_NAME

func CfnScalingPolicy_CFN_RESOURCE_TYPE_NAME() *string

func CfnScalingPolicy_IsCfnElement

func CfnScalingPolicy_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnScalingPolicy_IsCfnResource

func CfnScalingPolicy_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnScalingPolicy_IsConstruct

func CfnScalingPolicy_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnScheduledAction_CFN_RESOURCE_TYPE_NAME

func CfnScheduledAction_CFN_RESOURCE_TYPE_NAME() *string

func CfnScheduledAction_IsCfnElement

func CfnScheduledAction_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnScheduledAction_IsCfnResource

func CfnScheduledAction_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnScheduledAction_IsConstruct

func CfnScheduledAction_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnWarmPool_CFN_RESOURCE_TYPE_NAME

func CfnWarmPool_CFN_RESOURCE_TYPE_NAME() *string

func CfnWarmPool_IsCfnElement

func CfnWarmPool_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnWarmPool_IsCfnResource

func CfnWarmPool_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnWarmPool_IsConstruct

func CfnWarmPool_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func LifecycleHook_IsConstruct

func LifecycleHook_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func LifecycleHook_IsResource

func LifecycleHook_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func NewAutoScalingGroup_Override

func NewAutoScalingGroup_Override(a AutoScalingGroup, scope constructs.Construct, id *string, props *AutoScalingGroupProps)

Experimental.

func NewBlockDeviceVolume_Override

func NewBlockDeviceVolume_Override(b BlockDeviceVolume, ebsDevice *EbsDeviceProps, virtualName *string)

Experimental.

func NewCfnAutoScalingGroup_Override

func NewCfnAutoScalingGroup_Override(c CfnAutoScalingGroup, scope constructs.Construct, id *string, props *CfnAutoScalingGroupProps)

Create a new `AWS::AutoScaling::AutoScalingGroup`.

func NewCfnLaunchConfiguration_Override

func NewCfnLaunchConfiguration_Override(c CfnLaunchConfiguration, scope constructs.Construct, id *string, props *CfnLaunchConfigurationProps)

Create a new `AWS::AutoScaling::LaunchConfiguration`.

func NewCfnLifecycleHook_Override

func NewCfnLifecycleHook_Override(c CfnLifecycleHook, scope constructs.Construct, id *string, props *CfnLifecycleHookProps)

Create a new `AWS::AutoScaling::LifecycleHook`.

func NewCfnScalingPolicy_Override

func NewCfnScalingPolicy_Override(c CfnScalingPolicy, scope constructs.Construct, id *string, props *CfnScalingPolicyProps)

Create a new `AWS::AutoScaling::ScalingPolicy`.

func NewCfnScheduledAction_Override

func NewCfnScheduledAction_Override(c CfnScheduledAction, scope constructs.Construct, id *string, props *CfnScheduledActionProps)

Create a new `AWS::AutoScaling::ScheduledAction`.

func NewCfnWarmPool_Override

func NewCfnWarmPool_Override(c CfnWarmPool, scope constructs.Construct, id *string, props *CfnWarmPoolProps)

Create a new `AWS::AutoScaling::WarmPool`.

func NewGroupMetric_Override

func NewGroupMetric_Override(g GroupMetric, name *string)

Experimental.

func NewGroupMetrics_Override

func NewGroupMetrics_Override(g GroupMetrics, metrics ...GroupMetric)

Experimental.

func NewLifecycleHook_Override

func NewLifecycleHook_Override(l LifecycleHook, scope constructs.Construct, id *string, props *LifecycleHookProps)

Experimental.

func NewScalingEvents_Override

func NewScalingEvents_Override(s ScalingEvents, types ...ScalingEvent)

Experimental.

func NewSchedule_Override

func NewSchedule_Override(s Schedule)

Experimental.

func NewScheduledAction_Override

func NewScheduledAction_Override(s ScheduledAction, scope constructs.Construct, id *string, props *ScheduledActionProps)

Experimental.

func NewSignals_Override

func NewSignals_Override(s Signals)

Experimental.

func NewStepScalingAction_Override

func NewStepScalingAction_Override(s StepScalingAction, scope constructs.Construct, id *string, props *StepScalingActionProps)

Experimental.

func NewStepScalingPolicy_Override

func NewStepScalingPolicy_Override(s StepScalingPolicy, scope constructs.Construct, id *string, props *StepScalingPolicyProps)

Experimental.

func NewTargetTrackingScalingPolicy_Override

func NewTargetTrackingScalingPolicy_Override(t TargetTrackingScalingPolicy, scope constructs.Construct, id *string, props *TargetTrackingScalingPolicyProps)

Experimental.

func NewUpdatePolicy_Override

func NewUpdatePolicy_Override(u UpdatePolicy)

Experimental.

func ScheduledAction_IsConstruct

func ScheduledAction_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func ScheduledAction_IsResource

func ScheduledAction_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func StepScalingAction_IsConstruct

func StepScalingAction_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func StepScalingPolicy_IsConstruct

func StepScalingPolicy_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func TargetTrackingScalingPolicy_IsConstruct

func TargetTrackingScalingPolicy_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

Types

type AdjustmentTier

type AdjustmentTier struct {
	// What number to adjust the capacity with.
	//
	// The number is interpeted as an added capacity, a new fixed capacity or an
	// added percentage depending on the AdjustmentType value of the
	// StepScalingPolicy.
	//
	// Can be positive or negative.
	// Experimental.
	Adjustment *float64 `json:"adjustment"`
	// Lower bound where this scaling tier applies.
	//
	// The scaling tier applies if the difference between the metric
	// value and its alarm threshold is higher than this value.
	// Experimental.
	LowerBound *float64 `json:"lowerBound"`
	// Upper bound where this scaling tier applies.
	//
	// The scaling tier applies if the difference between the metric
	// value and its alarm threshold is lower than this value.
	// Experimental.
	UpperBound *float64 `json:"upperBound"`
}

An adjustment. Experimental.

type AdjustmentType

type AdjustmentType string

How adjustment numbers are interpreted. Experimental.

const (
	AdjustmentType_CHANGE_IN_CAPACITY         AdjustmentType = "CHANGE_IN_CAPACITY"
	AdjustmentType_PERCENT_CHANGE_IN_CAPACITY AdjustmentType = "PERCENT_CHANGE_IN_CAPACITY"
	AdjustmentType_EXACT_CAPACITY             AdjustmentType = "EXACT_CAPACITY"
)

type ApplyCloudFormationInitOptions

type ApplyCloudFormationInitOptions struct {
	// ConfigSet to activate.
	// Experimental.
	ConfigSets *[]*string `json:"configSets"`
	// Force instance replacement by embedding a config fingerprint.
	//
	// If `true` (the default), a hash of the config will be embedded into the
	// UserData, so that if the config changes, the UserData changes and
	// instances will be replaced (given an UpdatePolicy has been configured on
	// the AutoScalingGroup).
	//
	// If `false`, no such hash will be embedded, and if the CloudFormation Init
	// config changes nothing will happen to the running instances. If a
	// config update introduces errors, you will not notice until after the
	// CloudFormation deployment successfully finishes and the next instance
	// fails to launch.
	// Experimental.
	EmbedFingerprint *bool `json:"embedFingerprint"`
	// Don't fail the instance creation when cfn-init fails.
	//
	// You can use this to prevent CloudFormation from rolling back when
	// instances fail to start up, to help in debugging.
	// Experimental.
	IgnoreFailures *bool `json:"ignoreFailures"`
	// Print the results of running cfn-init to the Instance System Log.
	//
	// By default, the output of running cfn-init is written to a log file
	// on the instance. Set this to `true` to print it to the System Log
	// (visible from the EC2 Console), `false` to not print it.
	//
	// (Be aware that the system log is refreshed at certain points in
	// time of the instance life cycle, and successful execution may
	// not always show up).
	// Experimental.
	PrintLog *bool `json:"printLog"`
}

Options for applying CloudFormation init to an instance or instance group. Experimental.

type AutoScalingGroup

type AutoScalingGroup interface {
	awscdk.Resource
	IAutoScalingGroup
	awsec2.IConnectable
	awselasticloadbalancing.ILoadBalancerTarget
	awselasticloadbalancingv2.IApplicationLoadBalancerTarget
	awselasticloadbalancingv2.INetworkLoadBalancerTarget
	AlbTargetGroup() awselasticloadbalancingv2.ApplicationTargetGroup
	SetAlbTargetGroup(val awselasticloadbalancingv2.ApplicationTargetGroup)
	AutoScalingGroupArn() *string
	AutoScalingGroupName() *string
	Connections() awsec2.Connections
	Env() *awscdk.ResourceEnvironment
	GrantPrincipal() awsiam.IPrincipal
	MaxInstanceLifetime() awscdk.Duration
	NewInstancesProtectedFromScaleIn() *bool
	SetNewInstancesProtectedFromScaleIn(val *bool)
	Node() constructs.Node
	OsType() awsec2.OperatingSystemType
	PhysicalName() *string
	Role() awsiam.IRole
	SpotPrice() *string
	Stack() awscdk.Stack
	UserData() awsec2.UserData
	AddLifecycleHook(id *string, props *BasicLifecycleHookProps) LifecycleHook
	AddSecurityGroup(securityGroup awsec2.ISecurityGroup)
	AddToRolePolicy(statement awsiam.PolicyStatement)
	AddUserData(commands ...*string)
	ApplyCloudFormationInit(init awsec2.CloudFormationInit, options *ApplyCloudFormationInitOptions)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	AreNewInstancesProtectedFromScaleIn() *bool
	AttachToApplicationTargetGroup(targetGroup awselasticloadbalancingv2.IApplicationTargetGroup) *awselasticloadbalancingv2.LoadBalancerTargetProps
	AttachToClassicLB(loadBalancer awselasticloadbalancing.LoadBalancer)
	AttachToNetworkTargetGroup(targetGroup awselasticloadbalancingv2.INetworkTargetGroup) *awselasticloadbalancingv2.LoadBalancerTargetProps
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ProtectNewInstancesFromScaleIn()
	ScaleOnCpuUtilization(id *string, props *CpuUtilizationScalingProps) TargetTrackingScalingPolicy
	ScaleOnIncomingBytes(id *string, props *NetworkUtilizationScalingProps) TargetTrackingScalingPolicy
	ScaleOnMetric(id *string, props *BasicStepScalingPolicyProps) StepScalingPolicy
	ScaleOnOutgoingBytes(id *string, props *NetworkUtilizationScalingProps) TargetTrackingScalingPolicy
	ScaleOnRequestCount(id *string, props *RequestCountScalingProps) TargetTrackingScalingPolicy
	ScaleOnSchedule(id *string, props *BasicScheduledActionProps) ScheduledAction
	ScaleToTrackMetric(id *string, props *MetricTargetTrackingProps) TargetTrackingScalingPolicy
	ToString() *string
}

A Fleet represents a managed set of EC2 instances.

The Fleet models a number of AutoScalingGroups, a launch configuration, a security group and an instance role.

It allows adding arbitrary commands to the startup scripts of the instances in the fleet.

The ASG spans the availability zones specified by vpcSubnets, falling back to the Vpc default strategy if not specified. Experimental.

func NewAutoScalingGroup

func NewAutoScalingGroup(scope constructs.Construct, id *string, props *AutoScalingGroupProps) AutoScalingGroup

Experimental.

type AutoScalingGroupProps

type AutoScalingGroupProps struct {
	// Whether the instances can initiate connections to anywhere by default.
	// Experimental.
	AllowAllOutbound *bool `json:"allowAllOutbound"`
	// Whether instances in the Auto Scaling Group should have public IP addresses associated with them.
	// Experimental.
	AssociatePublicIpAddress *bool `json:"associatePublicIpAddress"`
	// The name of the Auto Scaling group.
	//
	// This name must be unique per Region per account.
	// Experimental.
	AutoScalingGroupName *string `json:"autoScalingGroupName"`
	// Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes.
	//
	// Each instance that is launched has an associated root device volume,
	// either an Amazon EBS volume or an instance store volume.
	// You can use block device mappings to specify additional EBS volumes or
	// instance store volumes to attach to an instance when it is launched.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html
	//
	// Experimental.
	BlockDevices *[]*BlockDevice `json:"blockDevices"`
	// Default scaling cooldown for this AutoScalingGroup.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Initial amount of instances in the fleet.
	//
	// If this is set to a number, every deployment will reset the amount of
	// instances to this number. It is recommended to leave this value blank.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-desiredcapacity
	//
	// Experimental.
	DesiredCapacity *float64 `json:"desiredCapacity"`
	// Enable monitoring for group metrics, these metrics describe the group rather than any of its instances.
	//
	// To report all group metrics use `GroupMetrics.all()`
	// Group metrics are reported in a granularity of 1 minute at no additional charge.
	// Experimental.
	GroupMetrics *[]GroupMetrics `json:"groupMetrics"`
	// Configuration for health checks.
	// Experimental.
	HealthCheck HealthCheck `json:"healthCheck"`
	// If the ASG has scheduled actions, don't reset unchanged group sizes.
	//
	// Only used if the ASG has scheduled actions (which may scale your ASG up
	// or down regardless of cdk deployments). If true, the size of the group
	// will only be reset if it has been changed in the CDK app. If false, the
	// sizes will always be changed back to what they were in the CDK app
	// on deployment.
	// Experimental.
	IgnoreUnmodifiedSizeProperties *bool `json:"ignoreUnmodifiedSizeProperties"`
	// Controls whether instances in this group are launched with detailed or basic monitoring.
	//
	// When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account
	// is charged a fee. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes.
	// See: https://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-monitoring.html#enable-as-instance-metrics
	//
	// Experimental.
	InstanceMonitoring Monitoring `json:"instanceMonitoring"`
	// Name of SSH keypair to grant access to instances.
	// Experimental.
	KeyName *string `json:"keyName"`
	// Maximum number of instances in the fleet.
	// Experimental.
	MaxCapacity *float64 `json:"maxCapacity"`
	// The maximum amount of time that an instance can be in service.
	//
	// The maximum duration applies
	// to all current and future instances in the group. As an instance approaches its maximum duration,
	// it is terminated and replaced, and cannot be used again.
	//
	// You must specify a value of at least 604,800 seconds (7 days). To clear a previously set value,
	// leave this property undefined.
	// See: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html
	//
	// Experimental.
	MaxInstanceLifetime awscdk.Duration `json:"maxInstanceLifetime"`
	// Minimum number of instances in the fleet.
	// Experimental.
	MinCapacity *float64 `json:"minCapacity"`
	// Whether newly-launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in.
	//
	// By default, Auto Scaling can terminate an instance at any time after launch
	// when scaling in an Auto Scaling Group, subject to the group's termination
	// policy. However, you may wish to protect newly-launched instances from
	// being scaled in if they are going to run critical applications that should
	// not be prematurely terminated.
	//
	// This flag must be enabled if the Auto Scaling Group will be associated with
	// an ECS Capacity Provider with managed termination protection.
	// Experimental.
	NewInstancesProtectedFromScaleIn *bool `json:"newInstancesProtectedFromScaleIn"`
	// Configure autoscaling group to send notifications about fleet changes to an SNS topic(s).
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-notificationconfigurations
	//
	// Experimental.
	Notifications *[]*NotificationConfiguration `json:"notifications"`
	// Configure waiting for signals during deployment.
	//
	// Use this to pause the CloudFormation deployment to wait for the instances
	// in the AutoScalingGroup to report successful startup during
	// creation and updates. The UserData script needs to invoke `cfn-signal`
	// with a success or failure code after it is done setting up the instance.
	//
	// Without waiting for signals, the CloudFormation deployment will proceed as
	// soon as the AutoScalingGroup has been created or updated but before the
	// instances in the group have been started.
	//
	// For example, to have instances wait for an Elastic Load Balancing health check before
	// they signal success, add a health-check verification by using the
	// cfn-init helper script. For an example, see the verify_instance_health
	// command in the Auto Scaling rolling updates sample template:
	//
	// https://github.com/awslabs/aws-cloudformation-templates/blob/master/aws/services/AutoScaling/AutoScalingRollingUpdates.yaml
	// Experimental.
	Signals Signals `json:"signals"`
	// The maximum hourly price (in USD) to be paid for any Spot Instance launched to fulfill the request.
	//
	// Spot Instances are
	// launched when the price you specify exceeds the current Spot market price.
	// Experimental.
	SpotPrice *string `json:"spotPrice"`
	// What to do when an AutoScalingGroup's instance configuration is changed.
	//
	// This is applied when any of the settings on the ASG are changed that
	// affect how the instances should be created (VPC, instance type, startup
	// scripts, etc.). It indicates how the existing instances should be
	// replaced with new instances matching the new config. By default, nothing
	// is done and only new instances are launched with the new config.
	// Experimental.
	UpdatePolicy UpdatePolicy `json:"updatePolicy"`
	// Where to place instances within the VPC.
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `json:"vpcSubnets"`
	// Type of instance to launch.
	// Experimental.
	InstanceType awsec2.InstanceType `json:"instanceType"`
	// AMI to launch.
	// Experimental.
	MachineImage awsec2.IMachineImage `json:"machineImage"`
	// VPC to launch these instances in.
	// Experimental.
	Vpc awsec2.IVpc `json:"vpc"`
	// Apply the given CloudFormation Init configuration to the instances in the AutoScalingGroup at startup.
	//
	// If you specify `init`, you must also specify `signals` to configure
	// the number of instances to wait for and the timeout for waiting for the
	// init process.
	// Experimental.
	Init awsec2.CloudFormationInit `json:"init"`
	// Use the given options for applying CloudFormation Init.
	//
	// Describes the configsets to use and the timeout to wait
	// Experimental.
	InitOptions *ApplyCloudFormationInitOptions `json:"initOptions"`
	// An IAM role to associate with the instance profile assigned to this Auto Scaling Group.
	//
	// The role must be assumable by the service principal `ec2.amazonaws.com`:
	//
	// TODO: EXAMPLE
	//
	// Experimental.
	Role awsiam.IRole `json:"role"`
	// Security group to launch the instances in.
	// Experimental.
	SecurityGroup awsec2.ISecurityGroup `json:"securityGroup"`
	// Specific UserData to use.
	//
	// The UserData may still be mutated after creation.
	// Experimental.
	UserData awsec2.UserData `json:"userData"`
}

Properties of a Fleet. Experimental.

type BaseTargetTrackingProps

type BaseTargetTrackingProps struct {
	// Period after a scaling completes before another scaling activity can start.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Indicates whether scale in by the target tracking policy is disabled.
	//
	// If the value is true, scale in is disabled and the target tracking policy
	// won't remove capacity from the autoscaling group. Otherwise, scale in is
	// enabled and the target tracking policy can remove capacity from the
	// group.
	// Experimental.
	DisableScaleIn *bool `json:"disableScaleIn"`
	// Estimated time until a newly launched instance can send metrics to CloudWatch.
	// Experimental.
	EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"`
}

Base interface for target tracking props.

Contains the attributes that are common to target tracking policies, except the ones relating to the metric and to the scalable target.

This interface is reused by more specific target tracking props objects. Experimental.

type BasicLifecycleHookProps

type BasicLifecycleHookProps struct {
	// The state of the Amazon EC2 instance to which you want to attach the lifecycle hook.
	// Experimental.
	LifecycleTransition LifecycleTransition `json:"lifecycleTransition"`
	// The target of the lifecycle hook.
	// Experimental.
	NotificationTarget ILifecycleHookTarget `json:"notificationTarget"`
	// The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs.
	// Experimental.
	DefaultResult DefaultResult `json:"defaultResult"`
	// Maximum time between calls to RecordLifecycleActionHeartbeat for the hook.
	//
	// If the lifecycle hook times out, perform the action in DefaultResult.
	// Experimental.
	HeartbeatTimeout awscdk.Duration `json:"heartbeatTimeout"`
	// Name of the lifecycle hook.
	// Experimental.
	LifecycleHookName *string `json:"lifecycleHookName"`
	// Additional data to pass to the lifecycle hook target.
	// Experimental.
	NotificationMetadata *string `json:"notificationMetadata"`
	// The role that allows publishing to the notification target.
	// Experimental.
	Role awsiam.IRole `json:"role"`
}

Basic properties for a lifecycle hook. Experimental.

type BasicScheduledActionProps

type BasicScheduledActionProps struct {
	// When to perform this action.
	//
	// Supports cron expressions.
	//
	// For more information about cron expressions, see https://en.wikipedia.org/wiki/Cron.
	//
	// TODO: EXAMPLE
	//
	// Experimental.
	Schedule Schedule `json:"schedule"`
	// The new desired capacity.
	//
	// At the scheduled time, set the desired capacity to the given capacity.
	//
	// At least one of maxCapacity, minCapacity, or desiredCapacity must be supplied.
	// Experimental.
	DesiredCapacity *float64 `json:"desiredCapacity"`
	// When this scheduled action expires.
	// Experimental.
	EndTime *time.Time `json:"endTime"`
	// The new maximum capacity.
	//
	// At the scheduled time, set the maximum capacity to the given capacity.
	//
	// At least one of maxCapacity, minCapacity, or desiredCapacity must be supplied.
	// Experimental.
	MaxCapacity *float64 `json:"maxCapacity"`
	// The new minimum capacity.
	//
	// At the scheduled time, set the minimum capacity to the given capacity.
	//
	// At least one of maxCapacity, minCapacity, or desiredCapacity must be supplied.
	// Experimental.
	MinCapacity *float64 `json:"minCapacity"`
	// When this scheduled action becomes active.
	// Experimental.
	StartTime *time.Time `json:"startTime"`
}

Properties for a scheduled scaling action. Experimental.

type BasicStepScalingPolicyProps

type BasicStepScalingPolicyProps struct {
	// Metric to scale on.
	// Experimental.
	Metric awscloudwatch.IMetric `json:"metric"`
	// The intervals for scaling.
	//
	// Maps a range of metric values to a particular scaling behavior.
	// Experimental.
	ScalingSteps *[]*ScalingInterval `json:"scalingSteps"`
	// How the adjustment numbers inside 'intervals' are interpreted.
	// Experimental.
	AdjustmentType AdjustmentType `json:"adjustmentType"`
	// Grace period after scaling activity.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Estimated time until a newly launched instance can send metrics to CloudWatch.
	// Experimental.
	EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"`
	// How many evaluation periods of the metric to wait before triggering a scaling action.
	//
	// Raising this value can be used to smooth out the metric, at the expense
	// of slower response times.
	// Experimental.
	EvaluationPeriods *float64 `json:"evaluationPeriods"`
	// Aggregation to apply to all data points over the evaluation periods.
	//
	// Only has meaning if `evaluationPeriods != 1`.
	// Experimental.
	MetricAggregationType MetricAggregationType `json:"metricAggregationType"`
	// Minimum absolute number to adjust capacity with as result of percentage scaling.
	//
	// Only when using AdjustmentType = PercentChangeInCapacity, this number controls
	// the minimum absolute effect size.
	// Experimental.
	MinAdjustmentMagnitude *float64 `json:"minAdjustmentMagnitude"`
}

Experimental.

type BasicTargetTrackingScalingPolicyProps

type BasicTargetTrackingScalingPolicyProps struct {
	// Period after a scaling completes before another scaling activity can start.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Indicates whether scale in by the target tracking policy is disabled.
	//
	// If the value is true, scale in is disabled and the target tracking policy
	// won't remove capacity from the autoscaling group. Otherwise, scale in is
	// enabled and the target tracking policy can remove capacity from the
	// group.
	// Experimental.
	DisableScaleIn *bool `json:"disableScaleIn"`
	// Estimated time until a newly launched instance can send metrics to CloudWatch.
	// Experimental.
	EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"`
	// The target value for the metric.
	// Experimental.
	TargetValue *float64 `json:"targetValue"`
	// A custom metric for application autoscaling.
	//
	// The metric must track utilization. Scaling out will happen if the metric is higher than
	// the target value, scaling in will happen in the metric is lower than the target value.
	//
	// Exactly one of customMetric or predefinedMetric must be specified.
	// Experimental.
	CustomMetric awscloudwatch.IMetric `json:"customMetric"`
	// A predefined metric for application autoscaling.
	//
	// The metric must track utilization. Scaling out will happen if the metric is higher than
	// the target value, scaling in will happen in the metric is lower than the target value.
	//
	// Exactly one of customMetric or predefinedMetric must be specified.
	// Experimental.
	PredefinedMetric PredefinedMetric `json:"predefinedMetric"`
	// The resource label associated with the predefined metric.
	//
	// Should be supplied if the predefined metric is ALBRequestCountPerTarget, and the
	// format should be:
	//
	// app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>
	// Experimental.
	ResourceLabel *string `json:"resourceLabel"`
}

Properties for a Target Tracking policy that include the metric but exclude the target. Experimental.

type BlockDevice

type BlockDevice struct {
	// The device name exposed to the EC2 instance.
	//
	// TODO: EXAMPLE
	//
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html
	//
	// Experimental.
	DeviceName *string `json:"deviceName"`
	// Defines the block device volume, to be either an Amazon EBS volume or an ephemeral instance store volume.
	//
	// TODO: EXAMPLE
	//
	// Experimental.
	Volume BlockDeviceVolume `json:"volume"`
}

Block device. Experimental.

type BlockDeviceVolume

type BlockDeviceVolume interface {
	EbsDevice() *EbsDeviceProps
	VirtualName() *string
}

Describes a block device mapping for an EC2 instance or Auto Scaling group. Experimental.

func BlockDeviceVolume_Ebs

func BlockDeviceVolume_Ebs(volumeSize *float64, options *EbsDeviceOptions) BlockDeviceVolume

Creates a new Elastic Block Storage device. Experimental.

func BlockDeviceVolume_EbsFromSnapshot

func BlockDeviceVolume_EbsFromSnapshot(snapshotId *string, options *EbsDeviceSnapshotOptions) BlockDeviceVolume

Creates a new Elastic Block Storage device from an existing snapshot. Experimental.

func BlockDeviceVolume_Ephemeral

func BlockDeviceVolume_Ephemeral(volumeIndex *float64) BlockDeviceVolume

Creates a virtual, ephemeral device.

The name will be in the form ephemeral{volumeIndex}. Experimental.

func BlockDeviceVolume_NoDevice

func BlockDeviceVolume_NoDevice() BlockDeviceVolume

Supresses a volume mapping. Experimental.

func NewBlockDeviceVolume

func NewBlockDeviceVolume(ebsDevice *EbsDeviceProps, virtualName *string) BlockDeviceVolume

Experimental.

type CfnAutoScalingGroup

type CfnAutoScalingGroup interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AutoScalingGroupName() *string
	SetAutoScalingGroupName(val *string)
	AvailabilityZones() *[]*string
	SetAvailabilityZones(val *[]*string)
	CapacityRebalance() interface{}
	SetCapacityRebalance(val interface{})
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	Context() *string
	SetContext(val *string)
	Cooldown() *string
	SetCooldown(val *string)
	CreationStack() *[]*string
	DesiredCapacity() *string
	SetDesiredCapacity(val *string)
	HealthCheckGracePeriod() *float64
	SetHealthCheckGracePeriod(val *float64)
	HealthCheckType() *string
	SetHealthCheckType(val *string)
	InstanceId() *string
	SetInstanceId(val *string)
	LaunchConfigurationName() *string
	SetLaunchConfigurationName(val *string)
	LaunchTemplate() interface{}
	SetLaunchTemplate(val interface{})
	LifecycleHookSpecificationList() interface{}
	SetLifecycleHookSpecificationList(val interface{})
	LoadBalancerNames() *[]*string
	SetLoadBalancerNames(val *[]*string)
	LogicalId() *string
	MaxInstanceLifetime() *float64
	SetMaxInstanceLifetime(val *float64)
	MaxSize() *string
	SetMaxSize(val *string)
	MetricsCollection() interface{}
	SetMetricsCollection(val interface{})
	MinSize() *string
	SetMinSize(val *string)
	MixedInstancesPolicy() interface{}
	SetMixedInstancesPolicy(val interface{})
	NewInstancesProtectedFromScaleIn() interface{}
	SetNewInstancesProtectedFromScaleIn(val interface{})
	Node() constructs.Node
	NotificationConfigurations() interface{}
	SetNotificationConfigurations(val interface{})
	PlacementGroup() *string
	SetPlacementGroup(val *string)
	Ref() *string
	ServiceLinkedRoleArn() *string
	SetServiceLinkedRoleArn(val *string)
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	TargetGroupArns() *[]*string
	SetTargetGroupArns(val *[]*string)
	TerminationPolicies() *[]*string
	SetTerminationPolicies(val *[]*string)
	UpdatedProperites() *map[string]interface{}
	VpcZoneIdentifier() *[]*string
	SetVpcZoneIdentifier(val *[]*string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::AutoScaling::AutoScalingGroup`.

func NewCfnAutoScalingGroup

func NewCfnAutoScalingGroup(scope constructs.Construct, id *string, props *CfnAutoScalingGroupProps) CfnAutoScalingGroup

Create a new `AWS::AutoScaling::AutoScalingGroup`.

type CfnAutoScalingGroupProps

type CfnAutoScalingGroupProps struct {
	// `AWS::AutoScaling::AutoScalingGroup.MaxSize`.
	MaxSize *string `json:"maxSize"`
	// `AWS::AutoScaling::AutoScalingGroup.MinSize`.
	MinSize *string `json:"minSize"`
	// `AWS::AutoScaling::AutoScalingGroup.AutoScalingGroupName`.
	AutoScalingGroupName *string `json:"autoScalingGroupName"`
	// `AWS::AutoScaling::AutoScalingGroup.AvailabilityZones`.
	AvailabilityZones *[]*string `json:"availabilityZones"`
	// `AWS::AutoScaling::AutoScalingGroup.CapacityRebalance`.
	CapacityRebalance interface{} `json:"capacityRebalance"`
	// `AWS::AutoScaling::AutoScalingGroup.Context`.
	Context *string `json:"context"`
	// `AWS::AutoScaling::AutoScalingGroup.Cooldown`.
	Cooldown *string `json:"cooldown"`
	// `AWS::AutoScaling::AutoScalingGroup.DesiredCapacity`.
	DesiredCapacity *string `json:"desiredCapacity"`
	// `AWS::AutoScaling::AutoScalingGroup.HealthCheckGracePeriod`.
	HealthCheckGracePeriod *float64 `json:"healthCheckGracePeriod"`
	// `AWS::AutoScaling::AutoScalingGroup.HealthCheckType`.
	HealthCheckType *string `json:"healthCheckType"`
	// `AWS::AutoScaling::AutoScalingGroup.InstanceId`.
	InstanceId *string `json:"instanceId"`
	// `AWS::AutoScaling::AutoScalingGroup.LaunchConfigurationName`.
	LaunchConfigurationName *string `json:"launchConfigurationName"`
	// `AWS::AutoScaling::AutoScalingGroup.LaunchTemplate`.
	LaunchTemplate interface{} `json:"launchTemplate"`
	// `AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecificationList`.
	LifecycleHookSpecificationList interface{} `json:"lifecycleHookSpecificationList"`
	// `AWS::AutoScaling::AutoScalingGroup.LoadBalancerNames`.
	LoadBalancerNames *[]*string `json:"loadBalancerNames"`
	// `AWS::AutoScaling::AutoScalingGroup.MaxInstanceLifetime`.
	MaxInstanceLifetime *float64 `json:"maxInstanceLifetime"`
	// `AWS::AutoScaling::AutoScalingGroup.MetricsCollection`.
	MetricsCollection interface{} `json:"metricsCollection"`
	// `AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy`.
	MixedInstancesPolicy interface{} `json:"mixedInstancesPolicy"`
	// `AWS::AutoScaling::AutoScalingGroup.NewInstancesProtectedFromScaleIn`.
	NewInstancesProtectedFromScaleIn interface{} `json:"newInstancesProtectedFromScaleIn"`
	// `AWS::AutoScaling::AutoScalingGroup.NotificationConfigurations`.
	NotificationConfigurations interface{} `json:"notificationConfigurations"`
	// `AWS::AutoScaling::AutoScalingGroup.PlacementGroup`.
	PlacementGroup *string `json:"placementGroup"`
	// `AWS::AutoScaling::AutoScalingGroup.ServiceLinkedRoleARN`.
	ServiceLinkedRoleArn *string `json:"serviceLinkedRoleArn"`
	// `AWS::AutoScaling::AutoScalingGroup.Tags`.
	Tags *[]*CfnAutoScalingGroup_TagPropertyProperty `json:"tags"`
	// `AWS::AutoScaling::AutoScalingGroup.TargetGroupARNs`.
	TargetGroupArns *[]*string `json:"targetGroupArns"`
	// `AWS::AutoScaling::AutoScalingGroup.TerminationPolicies`.
	TerminationPolicies *[]*string `json:"terminationPolicies"`
	// `AWS::AutoScaling::AutoScalingGroup.VPCZoneIdentifier`.
	VpcZoneIdentifier *[]*string `json:"vpcZoneIdentifier"`
}

Properties for defining a `AWS::AutoScaling::AutoScalingGroup`.

type CfnAutoScalingGroup_InstancesDistributionProperty

type CfnAutoScalingGroup_InstancesDistributionProperty struct {
	// `CfnAutoScalingGroup.InstancesDistributionProperty.OnDemandAllocationStrategy`.
	OnDemandAllocationStrategy *string `json:"onDemandAllocationStrategy"`
	// `CfnAutoScalingGroup.InstancesDistributionProperty.OnDemandBaseCapacity`.
	OnDemandBaseCapacity *float64 `json:"onDemandBaseCapacity"`
	// `CfnAutoScalingGroup.InstancesDistributionProperty.OnDemandPercentageAboveBaseCapacity`.
	OnDemandPercentageAboveBaseCapacity *float64 `json:"onDemandPercentageAboveBaseCapacity"`
	// `CfnAutoScalingGroup.InstancesDistributionProperty.SpotAllocationStrategy`.
	SpotAllocationStrategy *string `json:"spotAllocationStrategy"`
	// `CfnAutoScalingGroup.InstancesDistributionProperty.SpotInstancePools`.
	SpotInstancePools *float64 `json:"spotInstancePools"`
	// `CfnAutoScalingGroup.InstancesDistributionProperty.SpotMaxPrice`.
	SpotMaxPrice *string `json:"spotMaxPrice"`
}

type CfnAutoScalingGroup_LaunchTemplateOverridesProperty

type CfnAutoScalingGroup_LaunchTemplateOverridesProperty struct {
	// `CfnAutoScalingGroup.LaunchTemplateOverridesProperty.InstanceType`.
	InstanceType *string `json:"instanceType"`
	// `CfnAutoScalingGroup.LaunchTemplateOverridesProperty.LaunchTemplateSpecification`.
	LaunchTemplateSpecification interface{} `json:"launchTemplateSpecification"`
	// `CfnAutoScalingGroup.LaunchTemplateOverridesProperty.WeightedCapacity`.
	WeightedCapacity *string `json:"weightedCapacity"`
}

type CfnAutoScalingGroup_LaunchTemplateProperty

type CfnAutoScalingGroup_LaunchTemplateProperty struct {
	// `CfnAutoScalingGroup.LaunchTemplateProperty.LaunchTemplateSpecification`.
	LaunchTemplateSpecification interface{} `json:"launchTemplateSpecification"`
	// `CfnAutoScalingGroup.LaunchTemplateProperty.Overrides`.
	Overrides interface{} `json:"overrides"`
}

type CfnAutoScalingGroup_LaunchTemplateSpecificationProperty

type CfnAutoScalingGroup_LaunchTemplateSpecificationProperty struct {
	// `CfnAutoScalingGroup.LaunchTemplateSpecificationProperty.Version`.
	Version *string `json:"version"`
	// `CfnAutoScalingGroup.LaunchTemplateSpecificationProperty.LaunchTemplateId`.
	LaunchTemplateId *string `json:"launchTemplateId"`
	// `CfnAutoScalingGroup.LaunchTemplateSpecificationProperty.LaunchTemplateName`.
	LaunchTemplateName *string `json:"launchTemplateName"`
}

type CfnAutoScalingGroup_LifecycleHookSpecificationProperty

type CfnAutoScalingGroup_LifecycleHookSpecificationProperty struct {
	// `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.LifecycleHookName`.
	LifecycleHookName *string `json:"lifecycleHookName"`
	// `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.LifecycleTransition`.
	LifecycleTransition *string `json:"lifecycleTransition"`
	// `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.DefaultResult`.
	DefaultResult *string `json:"defaultResult"`
	// `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.HeartbeatTimeout`.
	HeartbeatTimeout *float64 `json:"heartbeatTimeout"`
	// `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.NotificationMetadata`.
	NotificationMetadata *string `json:"notificationMetadata"`
	// `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.NotificationTargetARN`.
	NotificationTargetArn *string `json:"notificationTargetArn"`
	// `CfnAutoScalingGroup.LifecycleHookSpecificationProperty.RoleARN`.
	RoleArn *string `json:"roleArn"`
}

type CfnAutoScalingGroup_MetricsCollectionProperty

type CfnAutoScalingGroup_MetricsCollectionProperty struct {
	// `CfnAutoScalingGroup.MetricsCollectionProperty.Granularity`.
	Granularity *string `json:"granularity"`
	// `CfnAutoScalingGroup.MetricsCollectionProperty.Metrics`.
	Metrics *[]*string `json:"metrics"`
}

type CfnAutoScalingGroup_MixedInstancesPolicyProperty

type CfnAutoScalingGroup_MixedInstancesPolicyProperty struct {
	// `CfnAutoScalingGroup.MixedInstancesPolicyProperty.LaunchTemplate`.
	LaunchTemplate interface{} `json:"launchTemplate"`
	// `CfnAutoScalingGroup.MixedInstancesPolicyProperty.InstancesDistribution`.
	InstancesDistribution interface{} `json:"instancesDistribution"`
}

type CfnAutoScalingGroup_NotificationConfigurationProperty

type CfnAutoScalingGroup_NotificationConfigurationProperty struct {
	// `CfnAutoScalingGroup.NotificationConfigurationProperty.TopicARN`.
	TopicArn *string `json:"topicArn"`
	// `CfnAutoScalingGroup.NotificationConfigurationProperty.NotificationTypes`.
	NotificationTypes *[]*string `json:"notificationTypes"`
}

type CfnAutoScalingGroup_TagPropertyProperty

type CfnAutoScalingGroup_TagPropertyProperty struct {
	// `CfnAutoScalingGroup.TagPropertyProperty.Key`.
	Key *string `json:"key"`
	// `CfnAutoScalingGroup.TagPropertyProperty.PropagateAtLaunch`.
	PropagateAtLaunch interface{} `json:"propagateAtLaunch"`
	// `CfnAutoScalingGroup.TagPropertyProperty.Value`.
	Value *string `json:"value"`
}

type CfnLaunchConfiguration

type CfnLaunchConfiguration interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AssociatePublicIpAddress() interface{}
	SetAssociatePublicIpAddress(val interface{})
	BlockDeviceMappings() interface{}
	SetBlockDeviceMappings(val interface{})
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ClassicLinkVpcId() *string
	SetClassicLinkVpcId(val *string)
	ClassicLinkVpcSecurityGroups() *[]*string
	SetClassicLinkVpcSecurityGroups(val *[]*string)
	CreationStack() *[]*string
	EbsOptimized() interface{}
	SetEbsOptimized(val interface{})
	IamInstanceProfile() *string
	SetIamInstanceProfile(val *string)
	ImageId() *string
	SetImageId(val *string)
	InstanceId() *string
	SetInstanceId(val *string)
	InstanceMonitoring() interface{}
	SetInstanceMonitoring(val interface{})
	InstanceType() *string
	SetInstanceType(val *string)
	KernelId() *string
	SetKernelId(val *string)
	KeyName() *string
	SetKeyName(val *string)
	LaunchConfigurationName() *string
	SetLaunchConfigurationName(val *string)
	LogicalId() *string
	MetadataOptions() interface{}
	SetMetadataOptions(val interface{})
	Node() constructs.Node
	PlacementTenancy() *string
	SetPlacementTenancy(val *string)
	RamDiskId() *string
	SetRamDiskId(val *string)
	Ref() *string
	SecurityGroups() *[]*string
	SetSecurityGroups(val *[]*string)
	SpotPrice() *string
	SetSpotPrice(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	UserData() *string
	SetUserData(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::AutoScaling::LaunchConfiguration`.

func NewCfnLaunchConfiguration

func NewCfnLaunchConfiguration(scope constructs.Construct, id *string, props *CfnLaunchConfigurationProps) CfnLaunchConfiguration

Create a new `AWS::AutoScaling::LaunchConfiguration`.

type CfnLaunchConfigurationProps

type CfnLaunchConfigurationProps struct {
	// `AWS::AutoScaling::LaunchConfiguration.ImageId`.
	ImageId *string `json:"imageId"`
	// `AWS::AutoScaling::LaunchConfiguration.InstanceType`.
	InstanceType *string `json:"instanceType"`
	// `AWS::AutoScaling::LaunchConfiguration.AssociatePublicIpAddress`.
	AssociatePublicIpAddress interface{} `json:"associatePublicIpAddress"`
	// `AWS::AutoScaling::LaunchConfiguration.BlockDeviceMappings`.
	BlockDeviceMappings interface{} `json:"blockDeviceMappings"`
	// `AWS::AutoScaling::LaunchConfiguration.ClassicLinkVPCId`.
	ClassicLinkVpcId *string `json:"classicLinkVpcId"`
	// `AWS::AutoScaling::LaunchConfiguration.ClassicLinkVPCSecurityGroups`.
	ClassicLinkVpcSecurityGroups *[]*string `json:"classicLinkVpcSecurityGroups"`
	// `AWS::AutoScaling::LaunchConfiguration.EbsOptimized`.
	EbsOptimized interface{} `json:"ebsOptimized"`
	// `AWS::AutoScaling::LaunchConfiguration.IamInstanceProfile`.
	IamInstanceProfile *string `json:"iamInstanceProfile"`
	// `AWS::AutoScaling::LaunchConfiguration.InstanceId`.
	InstanceId *string `json:"instanceId"`
	// `AWS::AutoScaling::LaunchConfiguration.InstanceMonitoring`.
	InstanceMonitoring interface{} `json:"instanceMonitoring"`
	// `AWS::AutoScaling::LaunchConfiguration.KernelId`.
	KernelId *string `json:"kernelId"`
	// `AWS::AutoScaling::LaunchConfiguration.KeyName`.
	KeyName *string `json:"keyName"`
	// `AWS::AutoScaling::LaunchConfiguration.LaunchConfigurationName`.
	LaunchConfigurationName *string `json:"launchConfigurationName"`
	// `AWS::AutoScaling::LaunchConfiguration.MetadataOptions`.
	MetadataOptions interface{} `json:"metadataOptions"`
	// `AWS::AutoScaling::LaunchConfiguration.PlacementTenancy`.
	PlacementTenancy *string `json:"placementTenancy"`
	// `AWS::AutoScaling::LaunchConfiguration.RamDiskId`.
	RamDiskId *string `json:"ramDiskId"`
	// `AWS::AutoScaling::LaunchConfiguration.SecurityGroups`.
	SecurityGroups *[]*string `json:"securityGroups"`
	// `AWS::AutoScaling::LaunchConfiguration.SpotPrice`.
	SpotPrice *string `json:"spotPrice"`
	// `AWS::AutoScaling::LaunchConfiguration.UserData`.
	UserData *string `json:"userData"`
}

Properties for defining a `AWS::AutoScaling::LaunchConfiguration`.

type CfnLaunchConfiguration_BlockDeviceMappingProperty

type CfnLaunchConfiguration_BlockDeviceMappingProperty struct {
	// `CfnLaunchConfiguration.BlockDeviceMappingProperty.DeviceName`.
	DeviceName *string `json:"deviceName"`
	// `CfnLaunchConfiguration.BlockDeviceMappingProperty.Ebs`.
	Ebs interface{} `json:"ebs"`
	// `CfnLaunchConfiguration.BlockDeviceMappingProperty.NoDevice`.
	NoDevice interface{} `json:"noDevice"`
	// `CfnLaunchConfiguration.BlockDeviceMappingProperty.VirtualName`.
	VirtualName *string `json:"virtualName"`
}

type CfnLaunchConfiguration_BlockDeviceProperty

type CfnLaunchConfiguration_BlockDeviceProperty struct {
	// `CfnLaunchConfiguration.BlockDeviceProperty.DeleteOnTermination`.
	DeleteOnTermination interface{} `json:"deleteOnTermination"`
	// `CfnLaunchConfiguration.BlockDeviceProperty.Encrypted`.
	Encrypted interface{} `json:"encrypted"`
	// `CfnLaunchConfiguration.BlockDeviceProperty.Iops`.
	Iops *float64 `json:"iops"`
	// `CfnLaunchConfiguration.BlockDeviceProperty.SnapshotId`.
	SnapshotId *string `json:"snapshotId"`
	// `CfnLaunchConfiguration.BlockDeviceProperty.Throughput`.
	Throughput *float64 `json:"throughput"`
	// `CfnLaunchConfiguration.BlockDeviceProperty.VolumeSize`.
	VolumeSize *float64 `json:"volumeSize"`
	// `CfnLaunchConfiguration.BlockDeviceProperty.VolumeType`.
	VolumeType *string `json:"volumeType"`
}

type CfnLaunchConfiguration_MetadataOptionsProperty

type CfnLaunchConfiguration_MetadataOptionsProperty struct {
	// `CfnLaunchConfiguration.MetadataOptionsProperty.HttpEndpoint`.
	HttpEndpoint *string `json:"httpEndpoint"`
	// `CfnLaunchConfiguration.MetadataOptionsProperty.HttpPutResponseHopLimit`.
	HttpPutResponseHopLimit *float64 `json:"httpPutResponseHopLimit"`
	// `CfnLaunchConfiguration.MetadataOptionsProperty.HttpTokens`.
	HttpTokens *string `json:"httpTokens"`
}

type CfnLifecycleHook

type CfnLifecycleHook interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AutoScalingGroupName() *string
	SetAutoScalingGroupName(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DefaultResult() *string
	SetDefaultResult(val *string)
	HeartbeatTimeout() *float64
	SetHeartbeatTimeout(val *float64)
	LifecycleHookName() *string
	SetLifecycleHookName(val *string)
	LifecycleTransition() *string
	SetLifecycleTransition(val *string)
	LogicalId() *string
	Node() constructs.Node
	NotificationMetadata() *string
	SetNotificationMetadata(val *string)
	NotificationTargetArn() *string
	SetNotificationTargetArn(val *string)
	Ref() *string
	RoleArn() *string
	SetRoleArn(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::AutoScaling::LifecycleHook`.

func NewCfnLifecycleHook

func NewCfnLifecycleHook(scope constructs.Construct, id *string, props *CfnLifecycleHookProps) CfnLifecycleHook

Create a new `AWS::AutoScaling::LifecycleHook`.

type CfnLifecycleHookProps

type CfnLifecycleHookProps struct {
	// `AWS::AutoScaling::LifecycleHook.AutoScalingGroupName`.
	AutoScalingGroupName *string `json:"autoScalingGroupName"`
	// `AWS::AutoScaling::LifecycleHook.LifecycleTransition`.
	LifecycleTransition *string `json:"lifecycleTransition"`
	// `AWS::AutoScaling::LifecycleHook.DefaultResult`.
	DefaultResult *string `json:"defaultResult"`
	// `AWS::AutoScaling::LifecycleHook.HeartbeatTimeout`.
	HeartbeatTimeout *float64 `json:"heartbeatTimeout"`
	// `AWS::AutoScaling::LifecycleHook.LifecycleHookName`.
	LifecycleHookName *string `json:"lifecycleHookName"`
	// `AWS::AutoScaling::LifecycleHook.NotificationMetadata`.
	NotificationMetadata *string `json:"notificationMetadata"`
	// `AWS::AutoScaling::LifecycleHook.NotificationTargetARN`.
	NotificationTargetArn *string `json:"notificationTargetArn"`
	// `AWS::AutoScaling::LifecycleHook.RoleARN`.
	RoleArn *string `json:"roleArn"`
}

Properties for defining a `AWS::AutoScaling::LifecycleHook`.

type CfnScalingPolicy

type CfnScalingPolicy interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AdjustmentType() *string
	SetAdjustmentType(val *string)
	AutoScalingGroupName() *string
	SetAutoScalingGroupName(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	Cooldown() *string
	SetCooldown(val *string)
	CreationStack() *[]*string
	EstimatedInstanceWarmup() *float64
	SetEstimatedInstanceWarmup(val *float64)
	LogicalId() *string
	MetricAggregationType() *string
	SetMetricAggregationType(val *string)
	MinAdjustmentMagnitude() *float64
	SetMinAdjustmentMagnitude(val *float64)
	Node() constructs.Node
	PolicyType() *string
	SetPolicyType(val *string)
	Ref() *string
	ScalingAdjustment() *float64
	SetScalingAdjustment(val *float64)
	Stack() awscdk.Stack
	StepAdjustments() interface{}
	SetStepAdjustments(val interface{})
	TargetTrackingConfiguration() interface{}
	SetTargetTrackingConfiguration(val interface{})
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::AutoScaling::ScalingPolicy`.

func NewCfnScalingPolicy

func NewCfnScalingPolicy(scope constructs.Construct, id *string, props *CfnScalingPolicyProps) CfnScalingPolicy

Create a new `AWS::AutoScaling::ScalingPolicy`.

type CfnScalingPolicyProps

type CfnScalingPolicyProps struct {
	// `AWS::AutoScaling::ScalingPolicy.AutoScalingGroupName`.
	AutoScalingGroupName *string `json:"autoScalingGroupName"`
	// `AWS::AutoScaling::ScalingPolicy.AdjustmentType`.
	AdjustmentType *string `json:"adjustmentType"`
	// `AWS::AutoScaling::ScalingPolicy.Cooldown`.
	Cooldown *string `json:"cooldown"`
	// `AWS::AutoScaling::ScalingPolicy.EstimatedInstanceWarmup`.
	EstimatedInstanceWarmup *float64 `json:"estimatedInstanceWarmup"`
	// `AWS::AutoScaling::ScalingPolicy.MetricAggregationType`.
	MetricAggregationType *string `json:"metricAggregationType"`
	// `AWS::AutoScaling::ScalingPolicy.MinAdjustmentMagnitude`.
	MinAdjustmentMagnitude *float64 `json:"minAdjustmentMagnitude"`
	// `AWS::AutoScaling::ScalingPolicy.PolicyType`.
	PolicyType *string `json:"policyType"`
	// `AWS::AutoScaling::ScalingPolicy.ScalingAdjustment`.
	ScalingAdjustment *float64 `json:"scalingAdjustment"`
	// `AWS::AutoScaling::ScalingPolicy.StepAdjustments`.
	StepAdjustments interface{} `json:"stepAdjustments"`
	// `AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration`.
	TargetTrackingConfiguration interface{} `json:"targetTrackingConfiguration"`
}

Properties for defining a `AWS::AutoScaling::ScalingPolicy`.

type CfnScalingPolicy_CustomizedMetricSpecificationProperty

type CfnScalingPolicy_CustomizedMetricSpecificationProperty struct {
	// `CfnScalingPolicy.CustomizedMetricSpecificationProperty.MetricName`.
	MetricName *string `json:"metricName"`
	// `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Namespace`.
	Namespace *string `json:"namespace"`
	// `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Statistic`.
	Statistic *string `json:"statistic"`
	// `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Dimensions`.
	Dimensions interface{} `json:"dimensions"`
	// `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Unit`.
	Unit *string `json:"unit"`
}

type CfnScalingPolicy_MetricDimensionProperty

type CfnScalingPolicy_MetricDimensionProperty struct {
	// `CfnScalingPolicy.MetricDimensionProperty.Name`.
	Name *string `json:"name"`
	// `CfnScalingPolicy.MetricDimensionProperty.Value`.
	Value *string `json:"value"`
}

type CfnScalingPolicy_PredefinedMetricSpecificationProperty

type CfnScalingPolicy_PredefinedMetricSpecificationProperty struct {
	// `CfnScalingPolicy.PredefinedMetricSpecificationProperty.PredefinedMetricType`.
	PredefinedMetricType *string `json:"predefinedMetricType"`
	// `CfnScalingPolicy.PredefinedMetricSpecificationProperty.ResourceLabel`.
	ResourceLabel *string `json:"resourceLabel"`
}

type CfnScalingPolicy_StepAdjustmentProperty

type CfnScalingPolicy_StepAdjustmentProperty struct {
	// `CfnScalingPolicy.StepAdjustmentProperty.ScalingAdjustment`.
	ScalingAdjustment *float64 `json:"scalingAdjustment"`
	// `CfnScalingPolicy.StepAdjustmentProperty.MetricIntervalLowerBound`.
	MetricIntervalLowerBound *float64 `json:"metricIntervalLowerBound"`
	// `CfnScalingPolicy.StepAdjustmentProperty.MetricIntervalUpperBound`.
	MetricIntervalUpperBound *float64 `json:"metricIntervalUpperBound"`
}

type CfnScalingPolicy_TargetTrackingConfigurationProperty

type CfnScalingPolicy_TargetTrackingConfigurationProperty struct {
	// `CfnScalingPolicy.TargetTrackingConfigurationProperty.TargetValue`.
	TargetValue *float64 `json:"targetValue"`
	// `CfnScalingPolicy.TargetTrackingConfigurationProperty.CustomizedMetricSpecification`.
	CustomizedMetricSpecification interface{} `json:"customizedMetricSpecification"`
	// `CfnScalingPolicy.TargetTrackingConfigurationProperty.DisableScaleIn`.
	DisableScaleIn interface{} `json:"disableScaleIn"`
	// `CfnScalingPolicy.TargetTrackingConfigurationProperty.PredefinedMetricSpecification`.
	PredefinedMetricSpecification interface{} `json:"predefinedMetricSpecification"`
}

type CfnScheduledAction

type CfnScheduledAction interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AutoScalingGroupName() *string
	SetAutoScalingGroupName(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DesiredCapacity() *float64
	SetDesiredCapacity(val *float64)
	EndTime() *string
	SetEndTime(val *string)
	LogicalId() *string
	MaxSize() *float64
	SetMaxSize(val *float64)
	MinSize() *float64
	SetMinSize(val *float64)
	Node() constructs.Node
	Recurrence() *string
	SetRecurrence(val *string)
	Ref() *string
	Stack() awscdk.Stack
	StartTime() *string
	SetStartTime(val *string)
	TimeZone() *string
	SetTimeZone(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::AutoScaling::ScheduledAction`.

func NewCfnScheduledAction

func NewCfnScheduledAction(scope constructs.Construct, id *string, props *CfnScheduledActionProps) CfnScheduledAction

Create a new `AWS::AutoScaling::ScheduledAction`.

type CfnScheduledActionProps

type CfnScheduledActionProps struct {
	// `AWS::AutoScaling::ScheduledAction.AutoScalingGroupName`.
	AutoScalingGroupName *string `json:"autoScalingGroupName"`
	// `AWS::AutoScaling::ScheduledAction.DesiredCapacity`.
	DesiredCapacity *float64 `json:"desiredCapacity"`
	// `AWS::AutoScaling::ScheduledAction.EndTime`.
	EndTime *string `json:"endTime"`
	// `AWS::AutoScaling::ScheduledAction.MaxSize`.
	MaxSize *float64 `json:"maxSize"`
	// `AWS::AutoScaling::ScheduledAction.MinSize`.
	MinSize *float64 `json:"minSize"`
	// `AWS::AutoScaling::ScheduledAction.Recurrence`.
	Recurrence *string `json:"recurrence"`
	// `AWS::AutoScaling::ScheduledAction.StartTime`.
	StartTime *string `json:"startTime"`
	// `AWS::AutoScaling::ScheduledAction.TimeZone`.
	TimeZone *string `json:"timeZone"`
}

Properties for defining a `AWS::AutoScaling::ScheduledAction`.

type CfnWarmPool

type CfnWarmPool interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AutoScalingGroupName() *string
	SetAutoScalingGroupName(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	MaxGroupPreparedCapacity() *float64
	SetMaxGroupPreparedCapacity(val *float64)
	MinSize() *float64
	SetMinSize(val *float64)
	Node() constructs.Node
	PoolState() *string
	SetPoolState(val *string)
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::AutoScaling::WarmPool`.

func NewCfnWarmPool

func NewCfnWarmPool(scope constructs.Construct, id *string, props *CfnWarmPoolProps) CfnWarmPool

Create a new `AWS::AutoScaling::WarmPool`.

type CfnWarmPoolProps

type CfnWarmPoolProps struct {
	// `AWS::AutoScaling::WarmPool.AutoScalingGroupName`.
	AutoScalingGroupName *string `json:"autoScalingGroupName"`
	// `AWS::AutoScaling::WarmPool.MaxGroupPreparedCapacity`.
	MaxGroupPreparedCapacity *float64 `json:"maxGroupPreparedCapacity"`
	// `AWS::AutoScaling::WarmPool.MinSize`.
	MinSize *float64 `json:"minSize"`
	// `AWS::AutoScaling::WarmPool.PoolState`.
	PoolState *string `json:"poolState"`
}

Properties for defining a `AWS::AutoScaling::WarmPool`.

type CommonAutoScalingGroupProps

type CommonAutoScalingGroupProps struct {
	// Whether the instances can initiate connections to anywhere by default.
	// Experimental.
	AllowAllOutbound *bool `json:"allowAllOutbound"`
	// Whether instances in the Auto Scaling Group should have public IP addresses associated with them.
	// Experimental.
	AssociatePublicIpAddress *bool `json:"associatePublicIpAddress"`
	// The name of the Auto Scaling group.
	//
	// This name must be unique per Region per account.
	// Experimental.
	AutoScalingGroupName *string `json:"autoScalingGroupName"`
	// Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes.
	//
	// Each instance that is launched has an associated root device volume,
	// either an Amazon EBS volume or an instance store volume.
	// You can use block device mappings to specify additional EBS volumes or
	// instance store volumes to attach to an instance when it is launched.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html
	//
	// Experimental.
	BlockDevices *[]*BlockDevice `json:"blockDevices"`
	// Default scaling cooldown for this AutoScalingGroup.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Initial amount of instances in the fleet.
	//
	// If this is set to a number, every deployment will reset the amount of
	// instances to this number. It is recommended to leave this value blank.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-desiredcapacity
	//
	// Experimental.
	DesiredCapacity *float64 `json:"desiredCapacity"`
	// Enable monitoring for group metrics, these metrics describe the group rather than any of its instances.
	//
	// To report all group metrics use `GroupMetrics.all()`
	// Group metrics are reported in a granularity of 1 minute at no additional charge.
	// Experimental.
	GroupMetrics *[]GroupMetrics `json:"groupMetrics"`
	// Configuration for health checks.
	// Experimental.
	HealthCheck HealthCheck `json:"healthCheck"`
	// If the ASG has scheduled actions, don't reset unchanged group sizes.
	//
	// Only used if the ASG has scheduled actions (which may scale your ASG up
	// or down regardless of cdk deployments). If true, the size of the group
	// will only be reset if it has been changed in the CDK app. If false, the
	// sizes will always be changed back to what they were in the CDK app
	// on deployment.
	// Experimental.
	IgnoreUnmodifiedSizeProperties *bool `json:"ignoreUnmodifiedSizeProperties"`
	// Controls whether instances in this group are launched with detailed or basic monitoring.
	//
	// When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account
	// is charged a fee. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes.
	// See: https://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-monitoring.html#enable-as-instance-metrics
	//
	// Experimental.
	InstanceMonitoring Monitoring `json:"instanceMonitoring"`
	// Name of SSH keypair to grant access to instances.
	// Experimental.
	KeyName *string `json:"keyName"`
	// Maximum number of instances in the fleet.
	// Experimental.
	MaxCapacity *float64 `json:"maxCapacity"`
	// The maximum amount of time that an instance can be in service.
	//
	// The maximum duration applies
	// to all current and future instances in the group. As an instance approaches its maximum duration,
	// it is terminated and replaced, and cannot be used again.
	//
	// You must specify a value of at least 604,800 seconds (7 days). To clear a previously set value,
	// leave this property undefined.
	// See: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html
	//
	// Experimental.
	MaxInstanceLifetime awscdk.Duration `json:"maxInstanceLifetime"`
	// Minimum number of instances in the fleet.
	// Experimental.
	MinCapacity *float64 `json:"minCapacity"`
	// Whether newly-launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in.
	//
	// By default, Auto Scaling can terminate an instance at any time after launch
	// when scaling in an Auto Scaling Group, subject to the group's termination
	// policy. However, you may wish to protect newly-launched instances from
	// being scaled in if they are going to run critical applications that should
	// not be prematurely terminated.
	//
	// This flag must be enabled if the Auto Scaling Group will be associated with
	// an ECS Capacity Provider with managed termination protection.
	// Experimental.
	NewInstancesProtectedFromScaleIn *bool `json:"newInstancesProtectedFromScaleIn"`
	// Configure autoscaling group to send notifications about fleet changes to an SNS topic(s).
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-notificationconfigurations
	//
	// Experimental.
	Notifications *[]*NotificationConfiguration `json:"notifications"`
	// Configure waiting for signals during deployment.
	//
	// Use this to pause the CloudFormation deployment to wait for the instances
	// in the AutoScalingGroup to report successful startup during
	// creation and updates. The UserData script needs to invoke `cfn-signal`
	// with a success or failure code after it is done setting up the instance.
	//
	// Without waiting for signals, the CloudFormation deployment will proceed as
	// soon as the AutoScalingGroup has been created or updated but before the
	// instances in the group have been started.
	//
	// For example, to have instances wait for an Elastic Load Balancing health check before
	// they signal success, add a health-check verification by using the
	// cfn-init helper script. For an example, see the verify_instance_health
	// command in the Auto Scaling rolling updates sample template:
	//
	// https://github.com/awslabs/aws-cloudformation-templates/blob/master/aws/services/AutoScaling/AutoScalingRollingUpdates.yaml
	// Experimental.
	Signals Signals `json:"signals"`
	// The maximum hourly price (in USD) to be paid for any Spot Instance launched to fulfill the request.
	//
	// Spot Instances are
	// launched when the price you specify exceeds the current Spot market price.
	// Experimental.
	SpotPrice *string `json:"spotPrice"`
	// What to do when an AutoScalingGroup's instance configuration is changed.
	//
	// This is applied when any of the settings on the ASG are changed that
	// affect how the instances should be created (VPC, instance type, startup
	// scripts, etc.). It indicates how the existing instances should be
	// replaced with new instances matching the new config. By default, nothing
	// is done and only new instances are launched with the new config.
	// Experimental.
	UpdatePolicy UpdatePolicy `json:"updatePolicy"`
	// Where to place instances within the VPC.
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `json:"vpcSubnets"`
}

Basic properties of an AutoScalingGroup, except the exact machines to run and where they should run.

Constructs that want to create AutoScalingGroups can inherit this interface and specialize the essential parts in various ways. Experimental.

type CpuUtilizationScalingProps

type CpuUtilizationScalingProps struct {
	// Period after a scaling completes before another scaling activity can start.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Indicates whether scale in by the target tracking policy is disabled.
	//
	// If the value is true, scale in is disabled and the target tracking policy
	// won't remove capacity from the autoscaling group. Otherwise, scale in is
	// enabled and the target tracking policy can remove capacity from the
	// group.
	// Experimental.
	DisableScaleIn *bool `json:"disableScaleIn"`
	// Estimated time until a newly launched instance can send metrics to CloudWatch.
	// Experimental.
	EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"`
	// Target average CPU utilization across the task.
	// Experimental.
	TargetUtilizationPercent *float64 `json:"targetUtilizationPercent"`
}

Properties for enabling scaling based on CPU utilization. Experimental.

type CronOptions

type CronOptions struct {
	// The day of the month to run this rule at.
	// Experimental.
	Day *string `json:"day"`
	// The hour to run this rule at.
	// Experimental.
	Hour *string `json:"hour"`
	// The minute to run this rule at.
	// Experimental.
	Minute *string `json:"minute"`
	// The month to run this rule at.
	// Experimental.
	Month *string `json:"month"`
	// The day of the week to run this rule at.
	// Experimental.
	WeekDay *string `json:"weekDay"`
}

Options to configure a cron expression.

All fields are strings so you can use complex expressions. Absence of a field implies '*' or '?', whichever one is appropriate. See: http://crontab.org/

Experimental.

type DefaultResult

type DefaultResult string

Experimental.

const (
	DefaultResult_CONTINUE DefaultResult = "CONTINUE"
	DefaultResult_ABANDON  DefaultResult = "ABANDON"
)

type EbsDeviceOptions

type EbsDeviceOptions struct {
	// Indicates whether to delete the volume when the instance is terminated.
	// Experimental.
	DeleteOnTermination *bool `json:"deleteOnTermination"`
	// The number of I/O operations per second (IOPS) to provision for the volume.
	//
	// Must only be set for {@link volumeType}: {@link EbsDeviceVolumeType.IO1}
	//
	// The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS,
	// you need at least 100 GiB storage on the volume.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	// Experimental.
	Iops *float64 `json:"iops"`
	// The EBS volume type.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	// Experimental.
	VolumeType EbsDeviceVolumeType `json:"volumeType"`
	// Specifies whether the EBS volume is encrypted.
	//
	// Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances
	//
	// Experimental.
	Encrypted *bool `json:"encrypted"`
}

Block device options for an EBS volume. Experimental.

type EbsDeviceOptionsBase

type EbsDeviceOptionsBase struct {
	// Indicates whether to delete the volume when the instance is terminated.
	// Experimental.
	DeleteOnTermination *bool `json:"deleteOnTermination"`
	// The number of I/O operations per second (IOPS) to provision for the volume.
	//
	// Must only be set for {@link volumeType}: {@link EbsDeviceVolumeType.IO1}
	//
	// The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS,
	// you need at least 100 GiB storage on the volume.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	// Experimental.
	Iops *float64 `json:"iops"`
	// The EBS volume type.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	// Experimental.
	VolumeType EbsDeviceVolumeType `json:"volumeType"`
}

Base block device options for an EBS volume. Experimental.

type EbsDeviceProps

type EbsDeviceProps struct {
	// Indicates whether to delete the volume when the instance is terminated.
	// Experimental.
	DeleteOnTermination *bool `json:"deleteOnTermination"`
	// The number of I/O operations per second (IOPS) to provision for the volume.
	//
	// Must only be set for {@link volumeType}: {@link EbsDeviceVolumeType.IO1}
	//
	// The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS,
	// you need at least 100 GiB storage on the volume.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	// Experimental.
	Iops *float64 `json:"iops"`
	// The EBS volume type.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	// Experimental.
	VolumeType EbsDeviceVolumeType `json:"volumeType"`
	// The volume size, in Gibibytes (GiB).
	//
	// If you specify volumeSize, it must be equal or greater than the size of the snapshot.
	// Experimental.
	VolumeSize *float64 `json:"volumeSize"`
	// The snapshot ID of the volume to use.
	// Experimental.
	SnapshotId *string `json:"snapshotId"`
}

Properties of an EBS block device. Experimental.

type EbsDeviceSnapshotOptions

type EbsDeviceSnapshotOptions struct {
	// Indicates whether to delete the volume when the instance is terminated.
	// Experimental.
	DeleteOnTermination *bool `json:"deleteOnTermination"`
	// The number of I/O operations per second (IOPS) to provision for the volume.
	//
	// Must only be set for {@link volumeType}: {@link EbsDeviceVolumeType.IO1}
	//
	// The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS,
	// you need at least 100 GiB storage on the volume.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	// Experimental.
	Iops *float64 `json:"iops"`
	// The EBS volume type.
	// See: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	//
	// Experimental.
	VolumeType EbsDeviceVolumeType `json:"volumeType"`
	// The volume size, in Gibibytes (GiB).
	//
	// If you specify volumeSize, it must be equal or greater than the size of the snapshot.
	// Experimental.
	VolumeSize *float64 `json:"volumeSize"`
}

Block device options for an EBS volume created from a snapshot. Experimental.

type EbsDeviceVolumeType

type EbsDeviceVolumeType string

Supported EBS volume types for blockDevices. Experimental.

const (
	EbsDeviceVolumeType_STANDARD EbsDeviceVolumeType = "STANDARD"
	EbsDeviceVolumeType_IO1      EbsDeviceVolumeType = "IO1"
	EbsDeviceVolumeType_IO2      EbsDeviceVolumeType = "IO2"
	EbsDeviceVolumeType_GP2      EbsDeviceVolumeType = "GP2"
	EbsDeviceVolumeType_GP3      EbsDeviceVolumeType = "GP3"
	EbsDeviceVolumeType_ST1      EbsDeviceVolumeType = "ST1"
	EbsDeviceVolumeType_SC1      EbsDeviceVolumeType = "SC1"
)

type Ec2HealthCheckOptions

type Ec2HealthCheckOptions struct {
	// Specified the time Auto Scaling waits before checking the health status of an EC2 instance that has come into service.
	// Experimental.
	Grace awscdk.Duration `json:"grace"`
}

EC2 Heath check options. Experimental.

type ElbHealthCheckOptions

type ElbHealthCheckOptions struct {
	// Specified the time Auto Scaling waits before checking the health status of an EC2 instance that has come into service.
	//
	// This option is required for ELB health checks.
	// Experimental.
	Grace awscdk.Duration `json:"grace"`
}

ELB Heath check options. Experimental.

type GroupMetric

type GroupMetric interface {
	Name() *string
}

Group metrics that an Auto Scaling group sends to Amazon CloudWatch. Experimental.

func GroupMetric_DESIRED_CAPACITY

func GroupMetric_DESIRED_CAPACITY() GroupMetric

func GroupMetric_IN_SERVICE_INSTANCES

func GroupMetric_IN_SERVICE_INSTANCES() GroupMetric

func GroupMetric_MAX_SIZE

func GroupMetric_MAX_SIZE() GroupMetric

func GroupMetric_MIN_SIZE

func GroupMetric_MIN_SIZE() GroupMetric

func GroupMetric_PENDING_INSTANCES

func GroupMetric_PENDING_INSTANCES() GroupMetric

func GroupMetric_STANDBY_INSTANCES

func GroupMetric_STANDBY_INSTANCES() GroupMetric

func GroupMetric_TERMINATING_INSTANCES

func GroupMetric_TERMINATING_INSTANCES() GroupMetric

func GroupMetric_TOTAL_INSTANCES

func GroupMetric_TOTAL_INSTANCES() GroupMetric

func NewGroupMetric

func NewGroupMetric(name *string) GroupMetric

Experimental.

type GroupMetrics

type GroupMetrics interface {
}

A set of group metrics. Experimental.

func GroupMetrics_All

func GroupMetrics_All() GroupMetrics

Report all group metrics. Experimental.

func NewGroupMetrics

func NewGroupMetrics(metrics ...GroupMetric) GroupMetrics

Experimental.

type HealthCheck

type HealthCheck interface {
	GracePeriod() awscdk.Duration
	Type() *string
}

Health check settings. Experimental.

func HealthCheck_Ec2

func HealthCheck_Ec2(options *Ec2HealthCheckOptions) HealthCheck

Use EC2 for health checks. Experimental.

func HealthCheck_Elb

func HealthCheck_Elb(options *ElbHealthCheckOptions) HealthCheck

Use ELB for health checks.

It considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks. Experimental.

type IAutoScalingGroup

type IAutoScalingGroup interface {
	awsiam.IGrantable
	awscdk.IResource
	// Send a message to either an SQS queue or SNS topic when instances launch or terminate.
	// Experimental.
	AddLifecycleHook(id *string, props *BasicLifecycleHookProps) LifecycleHook
	// Add command to the startup script of fleet instances.
	//
	// The command must be in the scripting language supported by the fleet's OS (i.e. Linux/Windows).
	// Does nothing for imported ASGs.
	// Experimental.
	AddUserData(commands ...*string)
	// Scale out or in to achieve a target CPU utilization.
	// Experimental.
	ScaleOnCpuUtilization(id *string, props *CpuUtilizationScalingProps) TargetTrackingScalingPolicy
	// Scale out or in to achieve a target network ingress rate.
	// Experimental.
	ScaleOnIncomingBytes(id *string, props *NetworkUtilizationScalingProps) TargetTrackingScalingPolicy
	// Scale out or in, in response to a metric.
	// Experimental.
	ScaleOnMetric(id *string, props *BasicStepScalingPolicyProps) StepScalingPolicy
	// Scale out or in to achieve a target network egress rate.
	// Experimental.
	ScaleOnOutgoingBytes(id *string, props *NetworkUtilizationScalingProps) TargetTrackingScalingPolicy
	// Scale out or in based on time.
	// Experimental.
	ScaleOnSchedule(id *string, props *BasicScheduledActionProps) ScheduledAction
	// Scale out or in in order to keep a metric around a target value.
	// Experimental.
	ScaleToTrackMetric(id *string, props *MetricTargetTrackingProps) TargetTrackingScalingPolicy
	// The arn of the AutoScalingGroup.
	// Experimental.
	AutoScalingGroupArn() *string
	// The name of the AutoScalingGroup.
	// Experimental.
	AutoScalingGroupName() *string
	// The operating system family that the instances in this auto-scaling group belong to.
	//
	// Is 'UNKNOWN' for imported ASGs.
	// Experimental.
	OsType() awsec2.OperatingSystemType
}

An AutoScalingGroup. Experimental.

func AutoScalingGroup_FromAutoScalingGroupName

func AutoScalingGroup_FromAutoScalingGroupName(scope constructs.Construct, id *string, autoScalingGroupName *string) IAutoScalingGroup

Experimental.

type ILifecycleHook

type ILifecycleHook interface {
	awscdk.IResource
	// The role for the lifecycle hook to execute.
	// Experimental.
	Role() awsiam.IRole
}

A basic lifecycle hook object. Experimental.

type ILifecycleHookTarget

type ILifecycleHookTarget interface {
	// Called when this object is used as the target of a lifecycle hook.
	// Experimental.
	Bind(scope constructs.Construct, lifecycleHook ILifecycleHook) *LifecycleHookTargetConfig
}

Interface for autoscaling lifecycle hook targets. Experimental.

type LifecycleHook

type LifecycleHook interface {
	awscdk.Resource
	ILifecycleHook
	Env() *awscdk.ResourceEnvironment
	LifecycleHookName() *string
	Node() constructs.Node
	PhysicalName() *string
	Role() awsiam.IRole
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Define a life cycle hook. Experimental.

func NewLifecycleHook

func NewLifecycleHook(scope constructs.Construct, id *string, props *LifecycleHookProps) LifecycleHook

Experimental.

type LifecycleHookProps

type LifecycleHookProps struct {
	// The state of the Amazon EC2 instance to which you want to attach the lifecycle hook.
	// Experimental.
	LifecycleTransition LifecycleTransition `json:"lifecycleTransition"`
	// The target of the lifecycle hook.
	// Experimental.
	NotificationTarget ILifecycleHookTarget `json:"notificationTarget"`
	// The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs.
	// Experimental.
	DefaultResult DefaultResult `json:"defaultResult"`
	// Maximum time between calls to RecordLifecycleActionHeartbeat for the hook.
	//
	// If the lifecycle hook times out, perform the action in DefaultResult.
	// Experimental.
	HeartbeatTimeout awscdk.Duration `json:"heartbeatTimeout"`
	// Name of the lifecycle hook.
	// Experimental.
	LifecycleHookName *string `json:"lifecycleHookName"`
	// Additional data to pass to the lifecycle hook target.
	// Experimental.
	NotificationMetadata *string `json:"notificationMetadata"`
	// The role that allows publishing to the notification target.
	// Experimental.
	Role awsiam.IRole `json:"role"`
	// The AutoScalingGroup to add the lifecycle hook to.
	// Experimental.
	AutoScalingGroup IAutoScalingGroup `json:"autoScalingGroup"`
}

Properties for a Lifecycle hook. Experimental.

type LifecycleHookTargetConfig

type LifecycleHookTargetConfig struct {
	// The ARN to use as the notification target.
	// Experimental.
	NotificationTargetArn *string `json:"notificationTargetArn"`
}

Properties to add the target to a lifecycle hook. Experimental.

type LifecycleTransition

type LifecycleTransition string

What instance transition to attach the hook to. Experimental.

const (
	LifecycleTransition_INSTANCE_LAUNCHING   LifecycleTransition = "INSTANCE_LAUNCHING"
	LifecycleTransition_INSTANCE_TERMINATING LifecycleTransition = "INSTANCE_TERMINATING"
)

type MetricAggregationType

type MetricAggregationType string

How the scaling metric is going to be aggregated. Experimental.

const (
	MetricAggregationType_AVERAGE MetricAggregationType = "AVERAGE"
	MetricAggregationType_MINIMUM MetricAggregationType = "MINIMUM"
	MetricAggregationType_MAXIMUM MetricAggregationType = "MAXIMUM"
)

type MetricTargetTrackingProps

type MetricTargetTrackingProps struct {
	// Period after a scaling completes before another scaling activity can start.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Indicates whether scale in by the target tracking policy is disabled.
	//
	// If the value is true, scale in is disabled and the target tracking policy
	// won't remove capacity from the autoscaling group. Otherwise, scale in is
	// enabled and the target tracking policy can remove capacity from the
	// group.
	// Experimental.
	DisableScaleIn *bool `json:"disableScaleIn"`
	// Estimated time until a newly launched instance can send metrics to CloudWatch.
	// Experimental.
	EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"`
	// Metric to track.
	//
	// The metric must represent a utilization, so that if it's higher than the
	// target value, your ASG should scale out, and if it's lower it should
	// scale in.
	// Experimental.
	Metric awscloudwatch.IMetric `json:"metric"`
	// Value to keep the metric around.
	// Experimental.
	TargetValue *float64 `json:"targetValue"`
}

Properties for enabling tracking of an arbitrary metric. Experimental.

type Monitoring

type Monitoring string

The monitoring mode for instances launched in an autoscaling group. Experimental.

const (
	Monitoring_BASIC    Monitoring = "BASIC"
	Monitoring_DETAILED Monitoring = "DETAILED"
)

type NetworkUtilizationScalingProps

type NetworkUtilizationScalingProps struct {
	// Period after a scaling completes before another scaling activity can start.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Indicates whether scale in by the target tracking policy is disabled.
	//
	// If the value is true, scale in is disabled and the target tracking policy
	// won't remove capacity from the autoscaling group. Otherwise, scale in is
	// enabled and the target tracking policy can remove capacity from the
	// group.
	// Experimental.
	DisableScaleIn *bool `json:"disableScaleIn"`
	// Estimated time until a newly launched instance can send metrics to CloudWatch.
	// Experimental.
	EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"`
	// Target average bytes/seconds on each instance.
	// Experimental.
	TargetBytesPerSecond *float64 `json:"targetBytesPerSecond"`
}

Properties for enabling scaling based on network utilization. Experimental.

type NotificationConfiguration

type NotificationConfiguration struct {
	// SNS topic to send notifications about fleet scaling events.
	// Experimental.
	Topic awssns.ITopic `json:"topic"`
	// Which fleet scaling events triggers a notification.
	// Experimental.
	ScalingEvents ScalingEvents `json:"scalingEvents"`
}

AutoScalingGroup fleet change notifications configurations.

You can configure AutoScaling to send an SNS notification whenever your Auto Scaling group scales. Experimental.

type PredefinedMetric

type PredefinedMetric string

One of the predefined autoscaling metrics. Experimental.

const (
	PredefinedMetric_ASG_AVERAGE_CPU_UTILIZATION  PredefinedMetric = "ASG_AVERAGE_CPU_UTILIZATION"
	PredefinedMetric_ASG_AVERAGE_NETWORK_IN       PredefinedMetric = "ASG_AVERAGE_NETWORK_IN"
	PredefinedMetric_ASG_AVERAGE_NETWORK_OUT      PredefinedMetric = "ASG_AVERAGE_NETWORK_OUT"
	PredefinedMetric_ALB_REQUEST_COUNT_PER_TARGET PredefinedMetric = "ALB_REQUEST_COUNT_PER_TARGET"
)

type RenderSignalsOptions

type RenderSignalsOptions struct {
	// The desiredCapacity of the ASG.
	// Experimental.
	DesiredCapacity *float64 `json:"desiredCapacity"`
	// The minSize of the ASG.
	// Experimental.
	MinCapacity *float64 `json:"minCapacity"`
}

Input for Signals.renderCreationPolicy. Experimental.

type RequestCountScalingProps

type RequestCountScalingProps struct {
	// Period after a scaling completes before another scaling activity can start.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Indicates whether scale in by the target tracking policy is disabled.
	//
	// If the value is true, scale in is disabled and the target tracking policy
	// won't remove capacity from the autoscaling group. Otherwise, scale in is
	// enabled and the target tracking policy can remove capacity from the
	// group.
	// Experimental.
	DisableScaleIn *bool `json:"disableScaleIn"`
	// Estimated time until a newly launched instance can send metrics to CloudWatch.
	// Experimental.
	EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"`
	// Target average requests/minute on each instance.
	// Experimental.
	TargetRequestsPerMinute *float64 `json:"targetRequestsPerMinute"`
}

Properties for enabling scaling based on request/second. Experimental.

type RollingUpdateOptions

type RollingUpdateOptions struct {
	// The maximum number of instances that AWS CloudFormation updates at once.
	//
	// This number affects the speed of the replacement.
	// Experimental.
	MaxBatchSize *float64 `json:"maxBatchSize"`
	// The minimum number of instances that must be in service before more instances are replaced.
	//
	// This number affects the speed of the replacement.
	// Experimental.
	MinInstancesInService *float64 `json:"minInstancesInService"`
	// The percentage of instances that must signal success for the update to succeed.
	// Experimental.
	MinSuccessPercentage *float64 `json:"minSuccessPercentage"`
	// The pause time after making a change to a batch of instances.
	// Experimental.
	PauseTime awscdk.Duration `json:"pauseTime"`
	// Specifies the Auto Scaling processes to suspend during a stack update.
	//
	// Suspending processes prevents Auto Scaling from interfering with a stack
	// update.
	// Experimental.
	SuspendProcesses *[]ScalingProcess `json:"suspendProcesses"`
	// Specifies whether the Auto Scaling group waits on signals from new instances during an update.
	// Experimental.
	WaitOnResourceSignals *bool `json:"waitOnResourceSignals"`
}

Options for customizing the rolling update. Experimental.

type ScalingEvent

type ScalingEvent string

Fleet scaling events. Experimental.

const (
	ScalingEvent_INSTANCE_LAUNCH          ScalingEvent = "INSTANCE_LAUNCH"
	ScalingEvent_INSTANCE_TERMINATE       ScalingEvent = "INSTANCE_TERMINATE"
	ScalingEvent_INSTANCE_TERMINATE_ERROR ScalingEvent = "INSTANCE_TERMINATE_ERROR"
	ScalingEvent_INSTANCE_LAUNCH_ERROR    ScalingEvent = "INSTANCE_LAUNCH_ERROR"
	ScalingEvent_TEST_NOTIFICATION        ScalingEvent = "TEST_NOTIFICATION"
)

type ScalingEvents

type ScalingEvents interface {
}

A list of ScalingEvents, you can use one of the predefined lists, such as ScalingEvents.ERRORS or create a custom group by instantiating a `NotificationTypes` object, e.g: `new NotificationTypes(`NotificationType.INSTANCE_LAUNCH`)`. Experimental.

func NewScalingEvents

func NewScalingEvents(types ...ScalingEvent) ScalingEvents

Experimental.

func ScalingEvents_ALL

func ScalingEvents_ALL() ScalingEvents

func ScalingEvents_ERRORS

func ScalingEvents_ERRORS() ScalingEvents

func ScalingEvents_LAUNCH_EVENTS

func ScalingEvents_LAUNCH_EVENTS() ScalingEvents

func ScalingEvents_TERMINATION_EVENTS

func ScalingEvents_TERMINATION_EVENTS() ScalingEvents

type ScalingInterval

type ScalingInterval struct {
	// The capacity adjustment to apply in this interval.
	//
	// The number is interpreted differently based on AdjustmentType:
	//
	// - ChangeInCapacity: add the adjustment to the current capacity.
	//   The number can be positive or negative.
	// - PercentChangeInCapacity: add or remove the given percentage of the current
	//    capacity to itself. The number can be in the range [-100..100].
	// - ExactCapacity: set the capacity to this number. The number must
	//    be positive.
	// Experimental.
	Change *float64 `json:"change"`
	// The lower bound of the interval.
	//
	// The scaling adjustment will be applied if the metric is higher than this value.
	// Experimental.
	Lower *float64 `json:"lower"`
	// The upper bound of the interval.
	//
	// The scaling adjustment will be applied if the metric is lower than this value.
	// Experimental.
	Upper *float64 `json:"upper"`
}

A range of metric values in which to apply a certain scaling operation. Experimental.

type ScalingProcess

type ScalingProcess string

Experimental.

const (
	ScalingProcess_LAUNCH               ScalingProcess = "LAUNCH"
	ScalingProcess_TERMINATE            ScalingProcess = "TERMINATE"
	ScalingProcess_HEALTH_CHECK         ScalingProcess = "HEALTH_CHECK"
	ScalingProcess_REPLACE_UNHEALTHY    ScalingProcess = "REPLACE_UNHEALTHY"
	ScalingProcess_AZ_REBALANCE         ScalingProcess = "AZ_REBALANCE"
	ScalingProcess_ALARM_NOTIFICATION   ScalingProcess = "ALARM_NOTIFICATION"
	ScalingProcess_SCHEDULED_ACTIONS    ScalingProcess = "SCHEDULED_ACTIONS"
	ScalingProcess_ADD_TO_LOAD_BALANCER ScalingProcess = "ADD_TO_LOAD_BALANCER"
)

type Schedule

type Schedule interface {
	ExpressionString() *string
}

Schedule for scheduled scaling actions. Experimental.

func Schedule_Cron

func Schedule_Cron(options *CronOptions) Schedule

Create a schedule from a set of cron fields. Experimental.

func Schedule_Expression

func Schedule_Expression(expression *string) Schedule

Construct a schedule from a literal schedule expression. See: http://crontab.org/

Experimental.

type ScheduledAction

type ScheduledAction interface {
	awscdk.Resource
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Define a scheduled scaling action. Experimental.

func NewScheduledAction

func NewScheduledAction(scope constructs.Construct, id *string, props *ScheduledActionProps) ScheduledAction

Experimental.

type ScheduledActionProps

type ScheduledActionProps struct {
	// When to perform this action.
	//
	// Supports cron expressions.
	//
	// For more information about cron expressions, see https://en.wikipedia.org/wiki/Cron.
	//
	// TODO: EXAMPLE
	//
	// Experimental.
	Schedule Schedule `json:"schedule"`
	// The new desired capacity.
	//
	// At the scheduled time, set the desired capacity to the given capacity.
	//
	// At least one of maxCapacity, minCapacity, or desiredCapacity must be supplied.
	// Experimental.
	DesiredCapacity *float64 `json:"desiredCapacity"`
	// When this scheduled action expires.
	// Experimental.
	EndTime *time.Time `json:"endTime"`
	// The new maximum capacity.
	//
	// At the scheduled time, set the maximum capacity to the given capacity.
	//
	// At least one of maxCapacity, minCapacity, or desiredCapacity must be supplied.
	// Experimental.
	MaxCapacity *float64 `json:"maxCapacity"`
	// The new minimum capacity.
	//
	// At the scheduled time, set the minimum capacity to the given capacity.
	//
	// At least one of maxCapacity, minCapacity, or desiredCapacity must be supplied.
	// Experimental.
	MinCapacity *float64 `json:"minCapacity"`
	// When this scheduled action becomes active.
	// Experimental.
	StartTime *time.Time `json:"startTime"`
	// The AutoScalingGroup to apply the scheduled actions to.
	// Experimental.
	AutoScalingGroup IAutoScalingGroup `json:"autoScalingGroup"`
}

Properties for a scheduled action on an AutoScalingGroup. Experimental.

type Signals

type Signals interface {
	DoRender(options *SignalsOptions, count *float64) *awscdk.CfnCreationPolicy
	RenderCreationPolicy(renderOptions *RenderSignalsOptions) *awscdk.CfnCreationPolicy
}

Configure whether the AutoScalingGroup waits for signals.

If you do configure waiting for signals, you should make sure the instances invoke `cfn-signal` somewhere in their UserData to signal that they have started up (either successfully or unsuccessfully).

Signals are used both during intial creation and subsequent updates. Experimental.

func Signals_WaitForAll

func Signals_WaitForAll(options *SignalsOptions) Signals

Wait for the desiredCapacity of the AutoScalingGroup amount of signals to have been received.

If no desiredCapacity has been configured, wait for minCapacity signals intead.

This number is used during initial creation and during replacing updates. During rolling updates, all updated instances must send a signal. Experimental.

func Signals_WaitForCount

func Signals_WaitForCount(count *float64, options *SignalsOptions) Signals

Wait for a specific amount of signals to have been received.

You should send one signal per instance, so this represents the number of instances to wait for.

This number is used during initial creation and during replacing updates. During rolling updates, all updated instances must send a signal. Experimental.

func Signals_WaitForMinCapacity

func Signals_WaitForMinCapacity(options *SignalsOptions) Signals

Wait for the minCapacity of the AutoScalingGroup amount of signals to have been received.

This number is used during initial creation and during replacing updates. During rolling updates, all updated instances must send a signal. Experimental.

type SignalsOptions

type SignalsOptions struct {
	// The percentage of signals that need to be successful.
	//
	// If this number is less than 100, a percentage of signals may be failure
	// signals while still succeeding the creation or update in CloudFormation.
	// Experimental.
	MinSuccessPercentage *float64 `json:"minSuccessPercentage"`
	// How long to wait for the signals to be sent.
	//
	// This should reflect how long it takes your instances to start up
	// (including instance start time and instance initialization time).
	// Experimental.
	Timeout awscdk.Duration `json:"timeout"`
}

Customization options for Signal handling. Experimental.

type StepScalingAction

type StepScalingAction interface {
	constructs.Construct
	Node() constructs.Node
	ScalingPolicyArn() *string
	AddAdjustment(adjustment *AdjustmentTier)
	ToString() *string
}

Define a step scaling action.

This kind of scaling policy adjusts the target capacity in configurable steps. The size of the step is configurable based on the metric's distance to its alarm threshold.

This Action must be used as the target of a CloudWatch alarm to take effect. Experimental.

func NewStepScalingAction

func NewStepScalingAction(scope constructs.Construct, id *string, props *StepScalingActionProps) StepScalingAction

Experimental.

type StepScalingActionProps

type StepScalingActionProps struct {
	// The auto scaling group.
	// Experimental.
	AutoScalingGroup IAutoScalingGroup `json:"autoScalingGroup"`
	// How the adjustment numbers are interpreted.
	// Experimental.
	AdjustmentType AdjustmentType `json:"adjustmentType"`
	// Period after a scaling completes before another scaling activity can start.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Estimated time until a newly launched instance can send metrics to CloudWatch.
	// Experimental.
	EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"`
	// The aggregation type for the CloudWatch metrics.
	// Experimental.
	MetricAggregationType MetricAggregationType `json:"metricAggregationType"`
	// Minimum absolute number to adjust capacity with as result of percentage scaling.
	//
	// Only when using AdjustmentType = PercentChangeInCapacity, this number controls
	// the minimum absolute effect size.
	// Experimental.
	MinAdjustmentMagnitude *float64 `json:"minAdjustmentMagnitude"`
}

Properties for a scaling policy. Experimental.

type StepScalingPolicy

type StepScalingPolicy interface {
	constructs.Construct
	LowerAction() StepScalingAction
	LowerAlarm() awscloudwatch.Alarm
	Node() constructs.Node
	UpperAction() StepScalingAction
	UpperAlarm() awscloudwatch.Alarm
	ToString() *string
}

Define a acaling strategy which scales depending on absolute values of some metric.

You can specify the scaling behavior for various values of the metric.

Implemented using one or more CloudWatch alarms and Step Scaling Policies. Experimental.

func NewStepScalingPolicy

func NewStepScalingPolicy(scope constructs.Construct, id *string, props *StepScalingPolicyProps) StepScalingPolicy

Experimental.

type StepScalingPolicyProps

type StepScalingPolicyProps struct {
	// Metric to scale on.
	// Experimental.
	Metric awscloudwatch.IMetric `json:"metric"`
	// The intervals for scaling.
	//
	// Maps a range of metric values to a particular scaling behavior.
	// Experimental.
	ScalingSteps *[]*ScalingInterval `json:"scalingSteps"`
	// How the adjustment numbers inside 'intervals' are interpreted.
	// Experimental.
	AdjustmentType AdjustmentType `json:"adjustmentType"`
	// Grace period after scaling activity.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Estimated time until a newly launched instance can send metrics to CloudWatch.
	// Experimental.
	EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"`
	// How many evaluation periods of the metric to wait before triggering a scaling action.
	//
	// Raising this value can be used to smooth out the metric, at the expense
	// of slower response times.
	// Experimental.
	EvaluationPeriods *float64 `json:"evaluationPeriods"`
	// Aggregation to apply to all data points over the evaluation periods.
	//
	// Only has meaning if `evaluationPeriods != 1`.
	// Experimental.
	MetricAggregationType MetricAggregationType `json:"metricAggregationType"`
	// Minimum absolute number to adjust capacity with as result of percentage scaling.
	//
	// Only when using AdjustmentType = PercentChangeInCapacity, this number controls
	// the minimum absolute effect size.
	// Experimental.
	MinAdjustmentMagnitude *float64 `json:"minAdjustmentMagnitude"`
	// The auto scaling group.
	// Experimental.
	AutoScalingGroup IAutoScalingGroup `json:"autoScalingGroup"`
}

Experimental.

type TargetTrackingScalingPolicy

type TargetTrackingScalingPolicy interface {
	constructs.Construct
	Node() constructs.Node
	ScalingPolicyArn() *string
	ToString() *string
}

Experimental.

func NewTargetTrackingScalingPolicy

func NewTargetTrackingScalingPolicy(scope constructs.Construct, id *string, props *TargetTrackingScalingPolicyProps) TargetTrackingScalingPolicy

Experimental.

type TargetTrackingScalingPolicyProps

type TargetTrackingScalingPolicyProps struct {
	// Period after a scaling completes before another scaling activity can start.
	// Experimental.
	Cooldown awscdk.Duration `json:"cooldown"`
	// Indicates whether scale in by the target tracking policy is disabled.
	//
	// If the value is true, scale in is disabled and the target tracking policy
	// won't remove capacity from the autoscaling group. Otherwise, scale in is
	// enabled and the target tracking policy can remove capacity from the
	// group.
	// Experimental.
	DisableScaleIn *bool `json:"disableScaleIn"`
	// Estimated time until a newly launched instance can send metrics to CloudWatch.
	// Experimental.
	EstimatedInstanceWarmup awscdk.Duration `json:"estimatedInstanceWarmup"`
	// The target value for the metric.
	// Experimental.
	TargetValue *float64 `json:"targetValue"`
	// A custom metric for application autoscaling.
	//
	// The metric must track utilization. Scaling out will happen if the metric is higher than
	// the target value, scaling in will happen in the metric is lower than the target value.
	//
	// Exactly one of customMetric or predefinedMetric must be specified.
	// Experimental.
	CustomMetric awscloudwatch.IMetric `json:"customMetric"`
	// A predefined metric for application autoscaling.
	//
	// The metric must track utilization. Scaling out will happen if the metric is higher than
	// the target value, scaling in will happen in the metric is lower than the target value.
	//
	// Exactly one of customMetric or predefinedMetric must be specified.
	// Experimental.
	PredefinedMetric PredefinedMetric `json:"predefinedMetric"`
	// The resource label associated with the predefined metric.
	//
	// Should be supplied if the predefined metric is ALBRequestCountPerTarget, and the
	// format should be:
	//
	// app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>
	// Experimental.
	ResourceLabel *string `json:"resourceLabel"`
	// Experimental.
	AutoScalingGroup IAutoScalingGroup `json:"autoScalingGroup"`
}

Properties for a concrete TargetTrackingPolicy.

Adds the scalingTarget. Experimental.

type UpdatePolicy

type UpdatePolicy interface {
}

How existing instances should be updated. Experimental.

func UpdatePolicy_ReplacingUpdate

func UpdatePolicy_ReplacingUpdate() UpdatePolicy

Create a new AutoScalingGroup and switch over to it. Experimental.

func UpdatePolicy_RollingUpdate

func UpdatePolicy_RollingUpdate(options *RollingUpdateOptions) UpdatePolicy

Replace the instances in the AutoScalingGroup one by one, or in batches. Experimental.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL