autoscaling

package
v0.18.1 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2019 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Attachment

type Attachment struct {
	// contains filtered or unexported fields
}

Provides an AutoScaling Attachment resource.

> **NOTE on AutoScaling Groups and ASG Attachments:** Terraform currently provides both a standalone ASG Attachment resource (describing an ASG attached to an ELB), and an AutoScaling Group resource with `load_balancers` defined in-line. At this time you cannot use an ASG with in-line load balancers in conjunction with an ASG Attachment resource. Doing so will cause a conflict and will overwrite attachments.

func GetAttachment

func GetAttachment(ctx *pulumi.Context,
	name string, id pulumi.ID, state *AttachmentState, opts ...pulumi.ResourceOpt) (*Attachment, error)

GetAttachment gets an existing Attachment resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewAttachment

func NewAttachment(ctx *pulumi.Context,
	name string, args *AttachmentArgs, opts ...pulumi.ResourceOpt) (*Attachment, error)

NewAttachment registers a new resource with the given unique name, arguments, and options.

func (*Attachment) AlbTargetGroupArn

func (r *Attachment) AlbTargetGroupArn() *pulumi.StringOutput

The ARN of an ALB Target Group.

func (*Attachment) AutoscalingGroupName

func (r *Attachment) AutoscalingGroupName() *pulumi.StringOutput

Name of ASG to associate with the ELB.

func (*Attachment) Elb

func (r *Attachment) Elb() *pulumi.StringOutput

The name of the ELB.

func (*Attachment) ID

func (r *Attachment) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*Attachment) URN

func (r *Attachment) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type AttachmentArgs

type AttachmentArgs struct {
	// The ARN of an ALB Target Group.
	AlbTargetGroupArn interface{}
	// Name of ASG to associate with the ELB.
	AutoscalingGroupName interface{}
	// The name of the ELB.
	Elb interface{}
}

The set of arguments for constructing a Attachment resource.

type AttachmentState

type AttachmentState struct {
	// The ARN of an ALB Target Group.
	AlbTargetGroupArn interface{}
	// Name of ASG to associate with the ELB.
	AutoscalingGroupName interface{}
	// The name of the ELB.
	Elb interface{}
}

Input properties used for looking up and filtering Attachment resources.

type GetGroupArgs added in v0.16.5

type GetGroupArgs struct {
	// Specify the exact name of the desired autoscaling group.
	Name interface{}
}

A collection of arguments for invoking getGroup.

type GetGroupResult added in v0.16.5

type GetGroupResult struct {
	// The Amazon Resource Name (ARN) of the Auto Scaling group.
	Arn interface{}
	// One or more Availability Zones for the group.
	AvailabilityZones interface{}
	DefaultCooldown   interface{}
	// The desired size of the group.
	DesiredCapacity interface{}
	// The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service.
	HealthCheckGracePeriod interface{}
	// The service to use for the health checks. The valid values are EC2 and ELB.
	HealthCheckType interface{}
	// The name of the associated launch configuration.
	LaunchConfiguration interface{}
	// One or more load balancers associated with the group.
	LoadBalancers interface{}
	// The maximum size of the group.
	MaxSize interface{}
	// The minimum size of the group.
	MinSize                          interface{}
	NewInstancesProtectedFromScaleIn interface{}
	// The name of the placement group into which to launch your instances, if any. For more information, see Placement Groups (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the Amazon Elastic Compute Cloud User Guide.
	PlacementGroup interface{}
	// The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS services on your behalf.
	ServiceLinkedRoleArn interface{}
	// The current state of the group when DeleteAutoScalingGroup is in progress.
	Status interface{}
	// The Amazon Resource Names (ARN) of the target groups for your load balancer.
	TargetGroupArns interface{}
	// The termination policies for the group.
	TerminationPolicies interface{}
	// VPC ID for the group.
	VpcZoneIdentifier interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getGroup.

func LookupGroup added in v0.16.5

func LookupGroup(ctx *pulumi.Context, args *GetGroupArgs) (*GetGroupResult, error)

Use this data source to get information on an existing autoscaling group.

type Group

type Group struct {
	// contains filtered or unexported fields
}

Provides an AutoScaling Group resource.

> **Note:** You must specify either `launch_configuration`, `launch_template`, or `mixed_instances_policy`.

## Waiting for Capacity

A newly-created ASG is initially empty and begins to scale to `min_size` (or `desired_capacity`, if specified) by launching instances using the provided Launch Configuration. These instances take time to launch and boot.

On ASG Update, changes to these values also take time to result in the target number of instances providing service.

Terraform provides two mechanisms to help consistently manage ASG scale up time across dependent resources.

#### Waiting for ASG Capacity

The first is default behavior. Terraform waits after ASG creation for `min_size` (or `desired_capacity`, if specified) healthy instances to show up in the ASG before continuing.

If `min_size` or `desired_capacity` are changed in a subsequent update, Terraform will also wait for the correct number of healthy instances before continuing.

Terraform considers an instance "healthy" when the ASG reports `HealthStatus: "Healthy"` and `LifecycleState: "InService"`. See the [AWS AutoScaling Docs](https://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/AutoScalingGroupLifecycle.html) for more information on an ASG's lifecycle.

Terraform will wait for healthy instances for up to `wait_for_capacity_timeout`. If ASG creation is taking more than a few minutes, it's worth investigating for scaling activity errors, which can be caused by problems with the selected Launch Configuration.

Setting `wait_for_capacity_timeout` to `"0"` disables ASG Capacity waiting.

#### Waiting for ELB Capacity

The second mechanism is optional, and affects ASGs with attached ELBs specified via the `load_balancers` attribute or with ALBs specified with `target_group_arns`.

The `min_elb_capacity` parameter causes Terraform to wait for at least the requested number of instances to show up `"InService"` in all attached ELBs during ASG creation. It has no effect on ASG updates.

If `wait_for_elb_capacity` is set, Terraform will wait for exactly that number of Instances to be `"InService"` in all attached ELBs on both creation and updates.

These parameters can be used to ensure that service is being provided before Terraform moves on. If new instances don't pass the ELB's health checks for any reason, the Terraform apply will time out, and the ASG will be marked as tainted (i.e. marked to be destroyed in a follow up run).

As with ASG Capacity, Terraform will wait for up to `wait_for_capacity_timeout` for the proper number of instances to be healthy.

#### Troubleshooting Capacity Waiting Timeouts

If ASG creation takes more than a few minutes, this could indicate one of a number of configuration problems. See the [AWS Docs on Load Balancer Troubleshooting](https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elb-troubleshooting.html) for more information.

func GetGroup

func GetGroup(ctx *pulumi.Context,
	name string, id pulumi.ID, state *GroupState, opts ...pulumi.ResourceOpt) (*Group, error)

GetGroup gets an existing Group resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewGroup

func NewGroup(ctx *pulumi.Context,
	name string, args *GroupArgs, opts ...pulumi.ResourceOpt) (*Group, error)

NewGroup registers a new resource with the given unique name, arguments, and options.

func (*Group) Arn

func (r *Group) Arn() *pulumi.StringOutput

The ARN for this AutoScaling Group

func (*Group) AvailabilityZones

func (r *Group) AvailabilityZones() *pulumi.ArrayOutput

A list of one or more availability zones for the group. This parameter should not be specified when using `vpc_zone_identifier`.

func (*Group) DefaultCooldown

func (r *Group) DefaultCooldown() *pulumi.IntOutput

The amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

func (*Group) DesiredCapacity

func (r *Group) DesiredCapacity() *pulumi.IntOutput

The number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

func (*Group) EnabledMetrics

func (r *Group) EnabledMetrics() *pulumi.ArrayOutput

A list of metrics to collect. The allowed values are `GroupMinSize`, `GroupMaxSize`, `GroupDesiredCapacity`, `GroupInServiceInstances`, `GroupPendingInstances`, `GroupStandbyInstances`, `GroupTerminatingInstances`, `GroupTotalInstances`. * `wait_for_capacity_timeout` (Default: "10m") A maximum [duration](https://golang.org/pkg/time/#ParseDuration) that Terraform should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes Terraform to skip all Capacity Waiting behavior.

func (*Group) ForceDelete

func (r *Group) ForceDelete() *pulumi.BoolOutput

Allows deleting the autoscaling group without waiting for all instances in the pool to terminate. You can force an autoscaling group to delete even if it's in the process of scaling a resource. Normally, Terraform drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

func (*Group) HealthCheckGracePeriod

func (r *Group) HealthCheckGracePeriod() *pulumi.IntOutput

Time (in seconds) after instance comes into service before checking health.

func (*Group) HealthCheckType

func (r *Group) HealthCheckType() *pulumi.StringOutput

"EC2" or "ELB". Controls how health checking is done.

func (*Group) ID

func (r *Group) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*Group) InitialLifecycleHooks

func (r *Group) InitialLifecycleHooks() *pulumi.ArrayOutput

One or more [Lifecycle Hooks](http://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html) to attach to the autoscaling group **before** instances are launched. The syntax is exactly the same as the separate [`aws_autoscaling_lifecycle_hook`](https://www.terraform.io/docs/providers/aws/r/autoscaling_lifecycle_hooks.html) resource, without the `autoscaling_group_name` attribute. Please note that this will only work when creating a new autoscaling group. For all other use-cases, please use `aws_autoscaling_lifecycle_hook` resource.

func (*Group) LaunchConfiguration

func (r *Group) LaunchConfiguration() *pulumi.StringOutput

The name of the launch configuration to use.

func (*Group) LaunchTemplate

func (r *Group) LaunchTemplate() *pulumi.Output

Nested argument containing launch template settings along with the overrides to specify multiple instance types. Defined below.

func (*Group) LoadBalancers

func (r *Group) LoadBalancers() *pulumi.ArrayOutput

A list of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use `target_group_arns` instead.

func (*Group) MaxSize

func (r *Group) MaxSize() *pulumi.IntOutput

The maximum size of the auto scale group.

func (*Group) MetricsGranularity

func (r *Group) MetricsGranularity() *pulumi.StringOutput

The granularity to associate with the metrics to collect. The only valid value is `1Minute`. Default is `1Minute`.

func (*Group) MinElbCapacity

func (r *Group) MinElbCapacity() *pulumi.IntOutput

Setting this causes Terraform to wait for this number of instances from this autoscaling group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

func (*Group) MinSize

func (r *Group) MinSize() *pulumi.IntOutput

The minimum size of the auto scale group. (See also Waiting for Capacity below.)

func (*Group) MixedInstancesPolicy added in v0.16.3

func (r *Group) MixedInstancesPolicy() *pulumi.Output

Configuration block containing settings to define launch targets for Auto Scaling groups. Defined below.

func (*Group) Name

func (r *Group) Name() *pulumi.StringOutput

The name of the auto scaling group. By default generated by Terraform.

func (*Group) NamePrefix

func (r *Group) NamePrefix() *pulumi.StringOutput

Creates a unique name beginning with the specified prefix. Conflicts with `name`.

func (*Group) PlacementGroup

func (r *Group) PlacementGroup() *pulumi.StringOutput

The name of the placement group into which you'll launch your instances, if any.

func (*Group) ProtectFromScaleIn

func (r *Group) ProtectFromScaleIn() *pulumi.BoolOutput

Allows setting instance protection. The autoscaling group will not select instances with this setting for terminination during scale in events.

func (*Group) ServiceLinkedRoleArn

func (r *Group) ServiceLinkedRoleArn() *pulumi.StringOutput

The ARN of the service-linked role that the ASG will use to call other AWS services

func (*Group) SuspendedProcesses

func (r *Group) SuspendedProcesses() *pulumi.ArrayOutput

A list of processes to suspend for the AutoScaling Group. The allowed values are `Launch`, `Terminate`, `HealthCheck`, `ReplaceUnhealthy`, `AZRebalance`, `AlarmNotification`, `ScheduledActions`, `AddToLoadBalancer`. Note that if you suspend either the `Launch` or `Terminate` process types, it can prevent your autoscaling group from functioning properly.

func (*Group) Tags

func (r *Group) Tags() *pulumi.ArrayOutput

A list of tag blocks. Tags documented below.

func (*Group) TagsCollection

func (r *Group) TagsCollection() *pulumi.ArrayOutput

A list of tag blocks (maps). Tags documented below.

func (*Group) TargetGroupArns

func (r *Group) TargetGroupArns() *pulumi.ArrayOutput

A list of `aws_alb_target_group` ARNs, for use with Application Load Balancing.

func (*Group) TerminationPolicies

func (r *Group) TerminationPolicies() *pulumi.ArrayOutput

A list of policies to decide how the instances in the auto scale group should be terminated. The allowed values are `OldestInstance`, `NewestInstance`, `OldestLaunchConfiguration`, `ClosestToNextInstanceHour`, `OldestLaunchTemplate`, `AllocationStrategy`, `Default`.

func (*Group) URN

func (r *Group) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

func (*Group) VpcZoneIdentifiers

func (r *Group) VpcZoneIdentifiers() *pulumi.ArrayOutput

A list of subnet IDs to launch resources in.

func (*Group) WaitForCapacityTimeout

func (r *Group) WaitForCapacityTimeout() *pulumi.StringOutput

func (*Group) WaitForElbCapacity

func (r *Group) WaitForElbCapacity() *pulumi.IntOutput

Setting this will cause Terraform to wait for exactly this number of healthy instances from this autoscaling group in all attached load balancers on both create and update operations. (Takes precedence over `min_elb_capacity` behavior.) (See also Waiting for Capacity below.)

type GroupArgs

type GroupArgs struct {
	// A list of one or more availability zones for the group. This parameter should not be specified when using `vpc_zone_identifier`.
	AvailabilityZones interface{}
	// The amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
	DefaultCooldown interface{}
	// The number of Amazon EC2 instances that
	// should be running in the group. (See also Waiting for
	// Capacity below.)
	DesiredCapacity interface{}
	// A list of metrics to collect. The allowed values are `GroupMinSize`, `GroupMaxSize`, `GroupDesiredCapacity`, `GroupInServiceInstances`, `GroupPendingInstances`, `GroupStandbyInstances`, `GroupTerminatingInstances`, `GroupTotalInstances`.
	// * `wait_for_capacity_timeout` (Default: "10m") A maximum
	// [duration](https://golang.org/pkg/time/#ParseDuration) that Terraform should
	// wait for ASG instances to be healthy before timing out.  (See also Waiting
	// for Capacity below.) Setting this to "0" causes
	// Terraform to skip all Capacity Waiting behavior.
	EnabledMetrics interface{}
	// Allows deleting the autoscaling group without waiting
	// for all instances in the pool to terminate.  You can force an autoscaling group to delete
	// even if it's in the process of scaling a resource. Normally, Terraform
	// drains all the instances before deleting the group.  This bypasses that
	// behavior and potentially leaves resources dangling.
	ForceDelete interface{}
	// Time (in seconds) after instance comes into service before checking health.
	HealthCheckGracePeriod interface{}
	// "EC2" or "ELB". Controls how health checking is done.
	HealthCheckType interface{}
	// One or more
	// [Lifecycle Hooks](http://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html)
	// to attach to the autoscaling group **before** instances are launched. The
	// syntax is exactly the same as the separate
	// [`aws_autoscaling_lifecycle_hook`](https://www.terraform.io/docs/providers/aws/r/autoscaling_lifecycle_hooks.html)
	// resource, without the `autoscaling_group_name` attribute. Please note that this will only work when creating
	// a new autoscaling group. For all other use-cases, please use `aws_autoscaling_lifecycle_hook` resource.
	InitialLifecycleHooks interface{}
	// The name of the launch configuration to use.
	LaunchConfiguration interface{}
	// Nested argument containing launch template settings along with the overrides to specify multiple instance types. Defined below.
	LaunchTemplate interface{}
	// A list of elastic load balancer names to add to the autoscaling
	// group names. Only valid for classic load balancers. For ALBs, use `target_group_arns` instead.
	LoadBalancers interface{}
	// The maximum size of the auto scale group.
	MaxSize interface{}
	// The granularity to associate with the metrics to collect. The only valid value is `1Minute`. Default is `1Minute`.
	MetricsGranularity interface{}
	// Setting this causes Terraform to wait for
	// this number of instances from this autoscaling group to show up healthy in the
	// ELB only on creation. Updates will not wait on ELB instance number changes.
	// (See also Waiting for Capacity below.)
	MinElbCapacity interface{}
	// The minimum size of the auto scale group.
	// (See also Waiting for Capacity below.)
	MinSize interface{}
	// Configuration block containing settings to define launch targets for Auto Scaling groups. Defined below.
	MixedInstancesPolicy interface{}
	// The name of the auto scaling group. By default generated by Terraform.
	Name interface{}
	// Creates a unique name beginning with the specified
	// prefix. Conflicts with `name`.
	NamePrefix interface{}
	// The name of the placement group into which you'll launch your instances, if any.
	PlacementGroup interface{}
	// Allows setting instance protection. The
	// autoscaling group will not select instances with this setting for terminination
	// during scale in events.
	ProtectFromScaleIn interface{}
	// The ARN of the service-linked role that the ASG will use to call other AWS services
	ServiceLinkedRoleArn interface{}
	// A list of processes to suspend for the AutoScaling Group. The allowed values are `Launch`, `Terminate`, `HealthCheck`, `ReplaceUnhealthy`, `AZRebalance`, `AlarmNotification`, `ScheduledActions`, `AddToLoadBalancer`.
	// Note that if you suspend either the `Launch` or `Terminate` process types, it can prevent your autoscaling group from functioning properly.
	SuspendedProcesses interface{}
	// A list of tag blocks. Tags documented below.
	Tags interface{}
	// A list of tag blocks (maps). Tags documented below.
	TagsCollection interface{}
	// A list of `aws_alb_target_group` ARNs, for use with Application Load Balancing.
	TargetGroupArns interface{}
	// A list of policies to decide how the instances in the auto scale group should be terminated. The allowed values are `OldestInstance`, `NewestInstance`, `OldestLaunchConfiguration`, `ClosestToNextInstanceHour`, `OldestLaunchTemplate`, `AllocationStrategy`, `Default`.
	TerminationPolicies interface{}
	// A list of subnet IDs to launch resources in.
	VpcZoneIdentifiers     interface{}
	WaitForCapacityTimeout interface{}
	// Setting this will cause Terraform to wait
	// for exactly this number of healthy instances from this autoscaling group in
	// all attached load balancers on both create and update operations. (Takes
	// precedence over `min_elb_capacity` behavior.)
	// (See also Waiting for Capacity below.)
	WaitForElbCapacity interface{}
}

The set of arguments for constructing a Group resource.

type GroupState

type GroupState struct {
	// The ARN for this AutoScaling Group
	Arn interface{}
	// A list of one or more availability zones for the group. This parameter should not be specified when using `vpc_zone_identifier`.
	AvailabilityZones interface{}
	// The amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
	DefaultCooldown interface{}
	// The number of Amazon EC2 instances that
	// should be running in the group. (See also Waiting for
	// Capacity below.)
	DesiredCapacity interface{}
	// A list of metrics to collect. The allowed values are `GroupMinSize`, `GroupMaxSize`, `GroupDesiredCapacity`, `GroupInServiceInstances`, `GroupPendingInstances`, `GroupStandbyInstances`, `GroupTerminatingInstances`, `GroupTotalInstances`.
	// * `wait_for_capacity_timeout` (Default: "10m") A maximum
	// [duration](https://golang.org/pkg/time/#ParseDuration) that Terraform should
	// wait for ASG instances to be healthy before timing out.  (See also Waiting
	// for Capacity below.) Setting this to "0" causes
	// Terraform to skip all Capacity Waiting behavior.
	EnabledMetrics interface{}
	// Allows deleting the autoscaling group without waiting
	// for all instances in the pool to terminate.  You can force an autoscaling group to delete
	// even if it's in the process of scaling a resource. Normally, Terraform
	// drains all the instances before deleting the group.  This bypasses that
	// behavior and potentially leaves resources dangling.
	ForceDelete interface{}
	// Time (in seconds) after instance comes into service before checking health.
	HealthCheckGracePeriod interface{}
	// "EC2" or "ELB". Controls how health checking is done.
	HealthCheckType interface{}
	// One or more
	// [Lifecycle Hooks](http://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html)
	// to attach to the autoscaling group **before** instances are launched. The
	// syntax is exactly the same as the separate
	// [`aws_autoscaling_lifecycle_hook`](https://www.terraform.io/docs/providers/aws/r/autoscaling_lifecycle_hooks.html)
	// resource, without the `autoscaling_group_name` attribute. Please note that this will only work when creating
	// a new autoscaling group. For all other use-cases, please use `aws_autoscaling_lifecycle_hook` resource.
	InitialLifecycleHooks interface{}
	// The name of the launch configuration to use.
	LaunchConfiguration interface{}
	// Nested argument containing launch template settings along with the overrides to specify multiple instance types. Defined below.
	LaunchTemplate interface{}
	// A list of elastic load balancer names to add to the autoscaling
	// group names. Only valid for classic load balancers. For ALBs, use `target_group_arns` instead.
	LoadBalancers interface{}
	// The maximum size of the auto scale group.
	MaxSize interface{}
	// The granularity to associate with the metrics to collect. The only valid value is `1Minute`. Default is `1Minute`.
	MetricsGranularity interface{}
	// Setting this causes Terraform to wait for
	// this number of instances from this autoscaling group to show up healthy in the
	// ELB only on creation. Updates will not wait on ELB instance number changes.
	// (See also Waiting for Capacity below.)
	MinElbCapacity interface{}
	// The minimum size of the auto scale group.
	// (See also Waiting for Capacity below.)
	MinSize interface{}
	// Configuration block containing settings to define launch targets for Auto Scaling groups. Defined below.
	MixedInstancesPolicy interface{}
	// The name of the auto scaling group. By default generated by Terraform.
	Name interface{}
	// Creates a unique name beginning with the specified
	// prefix. Conflicts with `name`.
	NamePrefix interface{}
	// The name of the placement group into which you'll launch your instances, if any.
	PlacementGroup interface{}
	// Allows setting instance protection. The
	// autoscaling group will not select instances with this setting for terminination
	// during scale in events.
	ProtectFromScaleIn interface{}
	// The ARN of the service-linked role that the ASG will use to call other AWS services
	ServiceLinkedRoleArn interface{}
	// A list of processes to suspend for the AutoScaling Group. The allowed values are `Launch`, `Terminate`, `HealthCheck`, `ReplaceUnhealthy`, `AZRebalance`, `AlarmNotification`, `ScheduledActions`, `AddToLoadBalancer`.
	// Note that if you suspend either the `Launch` or `Terminate` process types, it can prevent your autoscaling group from functioning properly.
	SuspendedProcesses interface{}
	// A list of tag blocks. Tags documented below.
	Tags interface{}
	// A list of tag blocks (maps). Tags documented below.
	TagsCollection interface{}
	// A list of `aws_alb_target_group` ARNs, for use with Application Load Balancing.
	TargetGroupArns interface{}
	// A list of policies to decide how the instances in the auto scale group should be terminated. The allowed values are `OldestInstance`, `NewestInstance`, `OldestLaunchConfiguration`, `ClosestToNextInstanceHour`, `OldestLaunchTemplate`, `AllocationStrategy`, `Default`.
	TerminationPolicies interface{}
	// A list of subnet IDs to launch resources in.
	VpcZoneIdentifiers     interface{}
	WaitForCapacityTimeout interface{}
	// Setting this will cause Terraform to wait
	// for exactly this number of healthy instances from this autoscaling group in
	// all attached load balancers on both create and update operations. (Takes
	// precedence over `min_elb_capacity` behavior.)
	// (See also Waiting for Capacity below.)
	WaitForElbCapacity interface{}
}

Input properties used for looking up and filtering Group resources.

type LifecycleHook

type LifecycleHook struct {
	// contains filtered or unexported fields
}

Provides an AutoScaling Lifecycle Hook resource.

> **NOTE:** Terraform has two types of ways you can add lifecycle hooks - via the `initial_lifecycle_hook` attribute from the [`aws_autoscaling_group`](https://www.terraform.io/docs/providers/aws/r/autoscaling_group.html) resource, or via this one. Hooks added via this resource will not be added until the autoscaling group has been created, and depending on your [capacity](https://www.terraform.io/docs/providers/aws/r/autoscaling_group.html#waiting-for-capacity) settings, after the initial instances have been launched, creating unintended behavior. If you need hooks to run on all instances, add them with `initial_lifecycle_hook` in [`aws_autoscaling_group`](https://www.terraform.io/docs/providers/aws/r/autoscaling_group.html), but take care to not duplicate those hooks with this resource.

func GetLifecycleHook

func GetLifecycleHook(ctx *pulumi.Context,
	name string, id pulumi.ID, state *LifecycleHookState, opts ...pulumi.ResourceOpt) (*LifecycleHook, error)

GetLifecycleHook gets an existing LifecycleHook resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewLifecycleHook

func NewLifecycleHook(ctx *pulumi.Context,
	name string, args *LifecycleHookArgs, opts ...pulumi.ResourceOpt) (*LifecycleHook, error)

NewLifecycleHook registers a new resource with the given unique name, arguments, and options.

func (*LifecycleHook) AutoscalingGroupName

func (r *LifecycleHook) AutoscalingGroupName() *pulumi.StringOutput

The name of the Auto Scaling group to which you want to assign the lifecycle hook

func (*LifecycleHook) DefaultResult

func (r *LifecycleHook) DefaultResult() *pulumi.StringOutput

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The value for this parameter can be either CONTINUE or ABANDON. The default value for this parameter is ABANDON.

func (*LifecycleHook) HeartbeatTimeout

func (r *LifecycleHook) HeartbeatTimeout() *pulumi.IntOutput

Defines the amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action defined in the DefaultResult parameter

func (*LifecycleHook) ID

func (r *LifecycleHook) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*LifecycleHook) LifecycleTransition

func (r *LifecycleHook) LifecycleTransition() *pulumi.StringOutput

The instance state to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see [describe-lifecycle-hook-types](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/describe-lifecycle-hook-types.html#examples)

func (*LifecycleHook) Name

func (r *LifecycleHook) Name() *pulumi.StringOutput

The name of the lifecycle hook.

func (*LifecycleHook) NotificationMetadata

func (r *LifecycleHook) NotificationMetadata() *pulumi.StringOutput

Contains additional information that you want to include any time Auto Scaling sends a message to the notification target.

func (*LifecycleHook) NotificationTargetArn

func (r *LifecycleHook) NotificationTargetArn() *pulumi.StringOutput

The ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic.

func (*LifecycleHook) RoleArn

func (r *LifecycleHook) RoleArn() *pulumi.StringOutput

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.

func (*LifecycleHook) URN

func (r *LifecycleHook) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type LifecycleHookArgs

type LifecycleHookArgs struct {
	// The name of the Auto Scaling group to which you want to assign the lifecycle hook
	AutoscalingGroupName interface{}
	// Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The value for this parameter can be either CONTINUE or ABANDON. The default value for this parameter is ABANDON.
	DefaultResult interface{}
	// Defines the amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action defined in the DefaultResult parameter
	HeartbeatTimeout interface{}
	// The instance state to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see [describe-lifecycle-hook-types](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/describe-lifecycle-hook-types.html#examples)
	LifecycleTransition interface{}
	// The name of the lifecycle hook.
	Name interface{}
	// Contains additional information that you want to include any time Auto Scaling sends a message to the notification target.
	NotificationMetadata interface{}
	// The ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic.
	NotificationTargetArn interface{}
	// The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.
	RoleArn interface{}
}

The set of arguments for constructing a LifecycleHook resource.

type LifecycleHookState

type LifecycleHookState struct {
	// The name of the Auto Scaling group to which you want to assign the lifecycle hook
	AutoscalingGroupName interface{}
	// Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The value for this parameter can be either CONTINUE or ABANDON. The default value for this parameter is ABANDON.
	DefaultResult interface{}
	// Defines the amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action defined in the DefaultResult parameter
	HeartbeatTimeout interface{}
	// The instance state to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see [describe-lifecycle-hook-types](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/describe-lifecycle-hook-types.html#examples)
	LifecycleTransition interface{}
	// The name of the lifecycle hook.
	Name interface{}
	// Contains additional information that you want to include any time Auto Scaling sends a message to the notification target.
	NotificationMetadata interface{}
	// The ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic.
	NotificationTargetArn interface{}
	// The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.
	RoleArn interface{}
}

Input properties used for looking up and filtering LifecycleHook resources.

type Notification

type Notification struct {
	// contains filtered or unexported fields
}

Provides an AutoScaling Group with Notification support, via SNS Topics. Each of the `notifications` map to a [Notification Configuration][2] inside Amazon Web Services, and are applied to each AutoScaling Group you supply.

func GetNotification

func GetNotification(ctx *pulumi.Context,
	name string, id pulumi.ID, state *NotificationState, opts ...pulumi.ResourceOpt) (*Notification, error)

GetNotification gets an existing Notification resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewNotification

func NewNotification(ctx *pulumi.Context,
	name string, args *NotificationArgs, opts ...pulumi.ResourceOpt) (*Notification, error)

NewNotification registers a new resource with the given unique name, arguments, and options.

func (*Notification) GroupNames

func (r *Notification) GroupNames() *pulumi.ArrayOutput

A list of AutoScaling Group Names

func (*Notification) ID

func (r *Notification) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*Notification) Notifications

func (r *Notification) Notifications() *pulumi.ArrayOutput

A list of Notification Types that trigger notifications. Acceptable values are documented [in the AWS documentation here][1]

func (*Notification) TopicArn

func (r *Notification) TopicArn() *pulumi.StringOutput

The Topic ARN for notifications to be sent through

func (*Notification) URN

func (r *Notification) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type NotificationArgs

type NotificationArgs struct {
	// A list of AutoScaling Group Names
	GroupNames interface{}
	// A list of Notification Types that trigger
	// notifications. Acceptable values are documented [in the AWS documentation here][1]
	Notifications interface{}
	// The Topic ARN for notifications to be sent through
	TopicArn interface{}
}

The set of arguments for constructing a Notification resource.

type NotificationState

type NotificationState struct {
	// A list of AutoScaling Group Names
	GroupNames interface{}
	// A list of Notification Types that trigger
	// notifications. Acceptable values are documented [in the AWS documentation here][1]
	Notifications interface{}
	// The Topic ARN for notifications to be sent through
	TopicArn interface{}
}

Input properties used for looking up and filtering Notification resources.

type Policy

type Policy struct {
	// contains filtered or unexported fields
}

Provides an AutoScaling Scaling Policy resource.

> **NOTE:** You may want to omit `desired_capacity` attribute from attached `aws_autoscaling_group` when using autoscaling policies. It's good practice to pick either [manual](https://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-manual-scaling.html) or [dynamic](https://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-scale-based-on-demand.html) (policy-based) scaling.

func GetPolicy

func GetPolicy(ctx *pulumi.Context,
	name string, id pulumi.ID, state *PolicyState, opts ...pulumi.ResourceOpt) (*Policy, error)

GetPolicy gets an existing Policy resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewPolicy

func NewPolicy(ctx *pulumi.Context,
	name string, args *PolicyArgs, opts ...pulumi.ResourceOpt) (*Policy, error)

NewPolicy registers a new resource with the given unique name, arguments, and options.

func (*Policy) AdjustmentType

func (r *Policy) AdjustmentType() *pulumi.StringOutput

Specifies whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are `ChangeInCapacity`, `ExactCapacity`, and `PercentChangeInCapacity`.

func (*Policy) Arn

func (r *Policy) Arn() *pulumi.StringOutput

The ARN assigned by AWS to the scaling policy.

func (*Policy) AutoscalingGroupName

func (r *Policy) AutoscalingGroupName() *pulumi.StringOutput

The name of the autoscaling group.

func (*Policy) Cooldown

func (r *Policy) Cooldown() *pulumi.IntOutput

The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.

func (*Policy) EstimatedInstanceWarmup

func (r *Policy) EstimatedInstanceWarmup() *pulumi.IntOutput

The estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.

func (*Policy) ID

func (r *Policy) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*Policy) MetricAggregationType

func (r *Policy) MetricAggregationType() *pulumi.StringOutput

The aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".

func (*Policy) MinAdjustmentMagnitude

func (r *Policy) MinAdjustmentMagnitude() *pulumi.IntOutput

func (*Policy) Name

func (r *Policy) Name() *pulumi.StringOutput

The name of the dimension.

func (*Policy) PolicyType

func (r *Policy) PolicyType() *pulumi.StringOutput

The policy type, either "SimpleScaling", "StepScaling" or "TargetTrackingScaling". If this value isn't provided, AWS will default to "SimpleScaling."

func (*Policy) ScalingAdjustment

func (r *Policy) ScalingAdjustment() *pulumi.IntOutput

The number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.

func (*Policy) StepAdjustments

func (r *Policy) StepAdjustments() *pulumi.ArrayOutput

func (*Policy) TargetTrackingConfiguration

func (r *Policy) TargetTrackingConfiguration() *pulumi.Output

A target tracking policy. These have the following structure:

func (*Policy) URN

func (r *Policy) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type PolicyArgs

type PolicyArgs struct {
	// Specifies whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are `ChangeInCapacity`, `ExactCapacity`, and `PercentChangeInCapacity`.
	AdjustmentType interface{}
	// The name of the autoscaling group.
	AutoscalingGroupName interface{}
	// The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
	Cooldown interface{}
	// The estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
	EstimatedInstanceWarmup interface{}
	// The aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
	MetricAggregationType  interface{}
	MinAdjustmentMagnitude interface{}
	// The name of the dimension.
	Name interface{}
	// The policy type, either "SimpleScaling", "StepScaling" or "TargetTrackingScaling". If this value isn't provided, AWS will default to "SimpleScaling."
	PolicyType interface{}
	// The number of members by which to
	// scale, when the adjustment bounds are breached. A positive value scales
	// up. A negative value scales down.
	ScalingAdjustment interface{}
	StepAdjustments   interface{}
	// A target tracking policy. These have the following structure:
	TargetTrackingConfiguration interface{}
}

The set of arguments for constructing a Policy resource.

type PolicyState

type PolicyState struct {
	// Specifies whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are `ChangeInCapacity`, `ExactCapacity`, and `PercentChangeInCapacity`.
	AdjustmentType interface{}
	// The ARN assigned by AWS to the scaling policy.
	Arn interface{}
	// The name of the autoscaling group.
	AutoscalingGroupName interface{}
	// The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
	Cooldown interface{}
	// The estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
	EstimatedInstanceWarmup interface{}
	// The aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
	MetricAggregationType  interface{}
	MinAdjustmentMagnitude interface{}
	// The name of the dimension.
	Name interface{}
	// The policy type, either "SimpleScaling", "StepScaling" or "TargetTrackingScaling". If this value isn't provided, AWS will default to "SimpleScaling."
	PolicyType interface{}
	// The number of members by which to
	// scale, when the adjustment bounds are breached. A positive value scales
	// up. A negative value scales down.
	ScalingAdjustment interface{}
	StepAdjustments   interface{}
	// A target tracking policy. These have the following structure:
	TargetTrackingConfiguration interface{}
}

Input properties used for looking up and filtering Policy resources.

type Schedule

type Schedule struct {
	// contains filtered or unexported fields
}

Provides an AutoScaling Schedule resource.

func GetSchedule

func GetSchedule(ctx *pulumi.Context,
	name string, id pulumi.ID, state *ScheduleState, opts ...pulumi.ResourceOpt) (*Schedule, error)

GetSchedule gets an existing Schedule resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSchedule

func NewSchedule(ctx *pulumi.Context,
	name string, args *ScheduleArgs, opts ...pulumi.ResourceOpt) (*Schedule, error)

NewSchedule registers a new resource with the given unique name, arguments, and options.

func (*Schedule) Arn

func (r *Schedule) Arn() *pulumi.StringOutput

The ARN assigned by AWS to the autoscaling schedule.

func (*Schedule) AutoscalingGroupName

func (r *Schedule) AutoscalingGroupName() *pulumi.StringOutput

The name or Amazon Resource Name (ARN) of the Auto Scaling group.

func (*Schedule) DesiredCapacity

func (r *Schedule) DesiredCapacity() *pulumi.IntOutput

The number of EC2 instances that should be running in the group. Default 0. Set to -1 if you don't want to change the desired capacity at the scheduled time.

func (*Schedule) EndTime

func (r *Schedule) EndTime() *pulumi.StringOutput

The time for this action to end, in "YYYY-MM-DDThh:mm:ssZ" format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ). If you try to schedule your action in the past, Auto Scaling returns an error message.

func (*Schedule) ID

func (r *Schedule) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*Schedule) MaxSize

func (r *Schedule) MaxSize() *pulumi.IntOutput

The maximum size for the Auto Scaling group. Default 0. Set to -1 if you don't want to change the maximum size at the scheduled time.

func (*Schedule) MinSize

func (r *Schedule) MinSize() *pulumi.IntOutput

The minimum size for the Auto Scaling group. Default 0. Set to -1 if you don't want to change the minimum size at the scheduled time.

func (*Schedule) Recurrence

func (r *Schedule) Recurrence() *pulumi.StringOutput

The time when recurring future actions will start. Start time is specified by the user following the Unix cron syntax format.

func (*Schedule) ScheduledActionName

func (r *Schedule) ScheduledActionName() *pulumi.StringOutput

The name of this scaling action.

func (*Schedule) StartTime

func (r *Schedule) StartTime() *pulumi.StringOutput

The time for this action to start, in "YYYY-MM-DDThh:mm:ssZ" format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ). If you try to schedule your action in the past, Auto Scaling returns an error message.

func (*Schedule) URN

func (r *Schedule) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type ScheduleArgs

type ScheduleArgs struct {
	// The name or Amazon Resource Name (ARN) of the Auto Scaling group.
	AutoscalingGroupName interface{}
	// The number of EC2 instances that should be running in the group. Default 0.  Set to -1 if you don't want to change the desired capacity at the scheduled time.
	DesiredCapacity interface{}
	// The time for this action to end, in "YYYY-MM-DDThh:mm:ssZ" format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ).
	// If you try to schedule your action in the past, Auto Scaling returns an error message.
	EndTime interface{}
	// The maximum size for the Auto Scaling group. Default 0.
	// Set to -1 if you don't want to change the maximum size at the scheduled time.
	MaxSize interface{}
	// The minimum size for the Auto Scaling group. Default 0.
	// Set to -1 if you don't want to change the minimum size at the scheduled time.
	MinSize interface{}
	// The time when recurring future actions will start. Start time is specified by the user following the Unix cron syntax format.
	Recurrence interface{}
	// The name of this scaling action.
	ScheduledActionName interface{}
	// The time for this action to start, in "YYYY-MM-DDThh:mm:ssZ" format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ).
	// If you try to schedule your action in the past, Auto Scaling returns an error message.
	StartTime interface{}
}

The set of arguments for constructing a Schedule resource.

type ScheduleState

type ScheduleState struct {
	// The ARN assigned by AWS to the autoscaling schedule.
	Arn interface{}
	// The name or Amazon Resource Name (ARN) of the Auto Scaling group.
	AutoscalingGroupName interface{}
	// The number of EC2 instances that should be running in the group. Default 0.  Set to -1 if you don't want to change the desired capacity at the scheduled time.
	DesiredCapacity interface{}
	// The time for this action to end, in "YYYY-MM-DDThh:mm:ssZ" format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ).
	// If you try to schedule your action in the past, Auto Scaling returns an error message.
	EndTime interface{}
	// The maximum size for the Auto Scaling group. Default 0.
	// Set to -1 if you don't want to change the maximum size at the scheduled time.
	MaxSize interface{}
	// The minimum size for the Auto Scaling group. Default 0.
	// Set to -1 if you don't want to change the minimum size at the scheduled time.
	MinSize interface{}
	// The time when recurring future actions will start. Start time is specified by the user following the Unix cron syntax format.
	Recurrence interface{}
	// The name of this scaling action.
	ScheduledActionName interface{}
	// The time for this action to start, in "YYYY-MM-DDThh:mm:ssZ" format in UTC/GMT only (for example, 2014-06-01T00:00:00Z ).
	// If you try to schedule your action in the past, Auto Scaling returns an error message.
	StartTime interface{}
}

Input properties used for looking up and filtering Schedule resources.

Jump to

Keyboard shortcuts

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