1. Packages
  2. AWS
  3. API Docs
  4. getAutoscalingGroups
Viewing docs for AWS v5.43.0 (Older version)
published on Tuesday, Mar 10, 2026 by Pulumi
aws logo
Viewing docs for AWS v5.43.0 (Older version)
published on Tuesday, Mar 10, 2026 by Pulumi
    Deprecated: aws.getAutoscalingGroups has been deprecated in favor of aws.autoscaling.getAmiIds

    The Autoscaling Groups data source allows access to the list of AWS ASGs within a specific region. This will allow you to pass a list of AutoScaling Groups to other resources.

    Example Usage

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var groups = Aws.AutoScaling.GetAmiIds.Invoke(new()
        {
            Filters = new[]
            {
                new Aws.AutoScaling.Inputs.GetAmiIdsFilterInputArgs
                {
                    Name = "tag:Team",
                    Values = new[]
                    {
                        "Pets",
                    },
                },
                new Aws.AutoScaling.Inputs.GetAmiIdsFilterInputArgs
                {
                    Name = "tag-key",
                    Values = new[]
                    {
                        "Environment",
                    },
                },
            },
        });
    
        var slackNotifications = new Aws.AutoScaling.Notification("slackNotifications", new()
        {
            GroupNames = groups.Apply(getAmiIdsResult => getAmiIdsResult.Names),
            Notifications = new[]
            {
                "autoscaling:EC2_INSTANCE_LAUNCH",
                "autoscaling:EC2_INSTANCE_TERMINATE",
                "autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
                "autoscaling:EC2_INSTANCE_TERMINATE_ERROR",
            },
            TopicArn = "TOPIC ARN",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/autoscaling"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		groups, err := autoscaling.GetAmiIds(ctx, &autoscaling.GetAmiIdsArgs{
    			Filters: []autoscaling.GetAmiIdsFilter{
    				{
    					Name: "tag:Team",
    					Values: []string{
    						"Pets",
    					},
    				},
    				{
    					Name: "tag-key",
    					Values: []string{
    						"Environment",
    					},
    				},
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewNotification(ctx, "slackNotifications", &autoscaling.NotificationArgs{
    			GroupNames: interface{}(groups.Names),
    			Notifications: pulumi.StringArray{
    				pulumi.String("autoscaling:EC2_INSTANCE_LAUNCH"),
    				pulumi.String("autoscaling:EC2_INSTANCE_TERMINATE"),
    				pulumi.String("autoscaling:EC2_INSTANCE_LAUNCH_ERROR"),
    				pulumi.String("autoscaling:EC2_INSTANCE_TERMINATE_ERROR"),
    			},
    			TopicArn: pulumi.String("TOPIC ARN"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.autoscaling.AutoscalingFunctions;
    import com.pulumi.aws.autoscaling.inputs.GetAmiIdsArgs;
    import com.pulumi.aws.autoscaling.Notification;
    import com.pulumi.aws.autoscaling.NotificationArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var groups = AutoscalingFunctions.getAmiIds(GetAmiIdsArgs.builder()
                .filters(            
                    GetAmiIdsFilterArgs.builder()
                        .name("tag:Team")
                        .values("Pets")
                        .build(),
                    GetAmiIdsFilterArgs.builder()
                        .name("tag-key")
                        .values("Environment")
                        .build())
                .build());
    
            var slackNotifications = new Notification("slackNotifications", NotificationArgs.builder()        
                .groupNames(groups.applyValue(getAmiIdsResult -> getAmiIdsResult.names()))
                .notifications(            
                    "autoscaling:EC2_INSTANCE_LAUNCH",
                    "autoscaling:EC2_INSTANCE_TERMINATE",
                    "autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
                    "autoscaling:EC2_INSTANCE_TERMINATE_ERROR")
                .topicArn("TOPIC ARN")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const groups = aws.autoscaling.getAmiIds({
        filters: [
            {
                name: "tag:Team",
                values: ["Pets"],
            },
            {
                name: "tag-key",
                values: ["Environment"],
            },
        ],
    });
    const slackNotifications = new aws.autoscaling.Notification("slackNotifications", {
        groupNames: groups.then(groups => groups.names),
        notifications: [
            "autoscaling:EC2_INSTANCE_LAUNCH",
            "autoscaling:EC2_INSTANCE_TERMINATE",
            "autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
            "autoscaling:EC2_INSTANCE_TERMINATE_ERROR",
        ],
        topicArn: "TOPIC ARN",
    });
    
    import pulumi
    import pulumi_aws as aws
    
    groups = aws.autoscaling.get_ami_ids(filters=[
        aws.autoscaling.GetAmiIdsFilterArgs(
            name="tag:Team",
            values=["Pets"],
        ),
        aws.autoscaling.GetAmiIdsFilterArgs(
            name="tag-key",
            values=["Environment"],
        ),
    ])
    slack_notifications = aws.autoscaling.Notification("slackNotifications",
        group_names=groups.names,
        notifications=[
            "autoscaling:EC2_INSTANCE_LAUNCH",
            "autoscaling:EC2_INSTANCE_TERMINATE",
            "autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
            "autoscaling:EC2_INSTANCE_TERMINATE_ERROR",
        ],
        topic_arn="TOPIC ARN")
    
    resources:
      slackNotifications:
        type: aws:autoscaling:Notification
        properties:
          groupNames: ${groups.names}
          notifications:
            - autoscaling:EC2_INSTANCE_LAUNCH
            - autoscaling:EC2_INSTANCE_TERMINATE
            - autoscaling:EC2_INSTANCE_LAUNCH_ERROR
            - autoscaling:EC2_INSTANCE_TERMINATE_ERROR
          topicArn: TOPIC ARN
    variables:
      groups:
        fn::invoke:
          Function: aws:autoscaling:getAmiIds
          Arguments:
            filters:
              - name: tag:Team
                values:
                  - Pets
              - name: tag-key
                values:
                  - Environment
    

    Using getAutoscalingGroups

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getAutoscalingGroups(args: GetAutoscalingGroupsArgs, opts?: InvokeOptions): Promise<GetAutoscalingGroupsResult>
    function getAutoscalingGroupsOutput(args: GetAutoscalingGroupsOutputArgs, opts?: InvokeOptions): Output<GetAutoscalingGroupsResult>
    def get_autoscaling_groups(filters: Optional[Sequence[GetAutoscalingGroupsFilter]] = None,
                               names: Optional[Sequence[str]] = None,
                               opts: Optional[InvokeOptions] = None) -> GetAutoscalingGroupsResult
    def get_autoscaling_groups_output(filters: Optional[pulumi.Input[Sequence[pulumi.Input[GetAutoscalingGroupsFilterArgs]]]] = None,
                               names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                               opts: Optional[InvokeOptions] = None) -> Output[GetAutoscalingGroupsResult]
    func GetAutoscalingGroups(ctx *Context, args *GetAutoscalingGroupsArgs, opts ...InvokeOption) (*GetAutoscalingGroupsResult, error)
    func GetAutoscalingGroupsOutput(ctx *Context, args *GetAutoscalingGroupsOutputArgs, opts ...InvokeOption) GetAutoscalingGroupsResultOutput

    > Note: This function is named GetAutoscalingGroups in the Go SDK.

    public static class GetAutoscalingGroups 
    {
        public static Task<GetAutoscalingGroupsResult> InvokeAsync(GetAutoscalingGroupsArgs args, InvokeOptions? opts = null)
        public static Output<GetAutoscalingGroupsResult> Invoke(GetAutoscalingGroupsInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetAutoscalingGroupsResult> getAutoscalingGroups(GetAutoscalingGroupsArgs args, InvokeOptions options)
    public static Output<GetAutoscalingGroupsResult> getAutoscalingGroups(GetAutoscalingGroupsArgs args, InvokeOptions options)
    
    fn::invoke:
      function: aws:index/getAutoscalingGroups:getAutoscalingGroups
      arguments:
        # arguments dictionary

    The following arguments are supported:

    Filters List<GetAutoscalingGroupsFilter>
    Filter used to scope the list e.g., by tags. See related docs.
    Names List<string>
    List of autoscaling group names
    Filters []GetAutoscalingGroupsFilter
    Filter used to scope the list e.g., by tags. See related docs.
    Names []string
    List of autoscaling group names
    filters List<GetAutoscalingGroupsFilter>
    Filter used to scope the list e.g., by tags. See related docs.
    names List<String>
    List of autoscaling group names
    filters GetAutoscalingGroupsFilter[]
    Filter used to scope the list e.g., by tags. See related docs.
    names string[]
    List of autoscaling group names
    filters Sequence[GetAutoscalingGroupsFilter]
    Filter used to scope the list e.g., by tags. See related docs.
    names Sequence[str]
    List of autoscaling group names
    filters List<Property Map>
    Filter used to scope the list e.g., by tags. See related docs.
    names List<String>
    List of autoscaling group names

    getAutoscalingGroups Result

    The following output properties are available:

    Arns List<string>
    List of the Autoscaling Groups Arns in the current region.
    Id string
    The provider-assigned unique ID for this managed resource.
    Names List<string>
    List of the Autoscaling Groups in the current region.
    Filters List<GetAutoscalingGroupsFilter>
    Arns []string
    List of the Autoscaling Groups Arns in the current region.
    Id string
    The provider-assigned unique ID for this managed resource.
    Names []string
    List of the Autoscaling Groups in the current region.
    Filters []GetAutoscalingGroupsFilter
    arns List<String>
    List of the Autoscaling Groups Arns in the current region.
    id String
    The provider-assigned unique ID for this managed resource.
    names List<String>
    List of the Autoscaling Groups in the current region.
    filters List<GetAutoscalingGroupsFilter>
    arns string[]
    List of the Autoscaling Groups Arns in the current region.
    id string
    The provider-assigned unique ID for this managed resource.
    names string[]
    List of the Autoscaling Groups in the current region.
    filters GetAutoscalingGroupsFilter[]
    arns Sequence[str]
    List of the Autoscaling Groups Arns in the current region.
    id str
    The provider-assigned unique ID for this managed resource.
    names Sequence[str]
    List of the Autoscaling Groups in the current region.
    filters Sequence[GetAutoscalingGroupsFilter]
    arns List<String>
    List of the Autoscaling Groups Arns in the current region.
    id String
    The provider-assigned unique ID for this managed resource.
    names List<String>
    List of the Autoscaling Groups in the current region.
    filters List<Property Map>

    Supporting Types

    GetAutoscalingGroupsFilter

    Name string
    Name of the DescribeAutoScalingGroup filter. The recommended values are: tag-key, tag-value, and tag:<tag name>
    Values List<string>
    Value of the filter.
    Name string
    Name of the DescribeAutoScalingGroup filter. The recommended values are: tag-key, tag-value, and tag:<tag name>
    Values []string
    Value of the filter.
    name String
    Name of the DescribeAutoScalingGroup filter. The recommended values are: tag-key, tag-value, and tag:<tag name>
    values List<String>
    Value of the filter.
    name string
    Name of the DescribeAutoScalingGroup filter. The recommended values are: tag-key, tag-value, and tag:<tag name>
    values string[]
    Value of the filter.
    name str
    Name of the DescribeAutoScalingGroup filter. The recommended values are: tag-key, tag-value, and tag:<tag name>
    values Sequence[str]
    Value of the filter.
    name String
    Name of the DescribeAutoScalingGroup filter. The recommended values are: tag-key, tag-value, and tag:<tag name>
    values List<String>
    Value of the filter.

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the aws Terraform Provider.
    aws logo
    Viewing docs for AWS v5.43.0 (Older version)
    published on Tuesday, Mar 10, 2026 by Pulumi
      Try Pulumi Cloud free. Your team will thank you.