1. Packages
  2. AWS
  3. API Docs
  4. autoscaling
  5. getAmiIds
AWS v6.64.0 published on Friday, Dec 6, 2024 by Pulumi

aws.autoscaling.getAmiIds

Explore with Pulumi AI

aws logo
AWS v6.64.0 published on Friday, Dec 6, 2024 by Pulumi

    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

    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("slack_notifications", {
        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=[
        {
            "name": "tag:Team",
            "values": ["Pets"],
        },
        {
            "name": "tag-key",
            "values": ["Environment"],
        },
    ])
    slack_notifications = aws.autoscaling.Notification("slack_notifications",
        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")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/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, "slack_notifications", &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
    	})
    }
    
    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("slack_notifications", 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 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());
    
        }
    }
    
    resources:
      slackNotifications:
        type: aws:autoscaling:Notification
        name: slack_notifications
        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 getAmiIds

    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 getAmiIds(args: GetAmiIdsArgs, opts?: InvokeOptions): Promise<GetAmiIdsResult>
    function getAmiIdsOutput(args: GetAmiIdsOutputArgs, opts?: InvokeOptions): Output<GetAmiIdsResult>
    def get_ami_ids(filters: Optional[Sequence[GetAmiIdsFilter]] = None,
                    names: Optional[Sequence[str]] = None,
                    opts: Optional[InvokeOptions] = None) -> GetAmiIdsResult
    def get_ami_ids_output(filters: Optional[pulumi.Input[Sequence[pulumi.Input[GetAmiIdsFilterArgs]]]] = None,
                    names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                    opts: Optional[InvokeOptions] = None) -> Output[GetAmiIdsResult]
    func GetAmiIds(ctx *Context, args *GetAmiIdsArgs, opts ...InvokeOption) (*GetAmiIdsResult, error)
    func GetAmiIdsOutput(ctx *Context, args *GetAmiIdsOutputArgs, opts ...InvokeOption) GetAmiIdsResultOutput

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

    public static class GetAmiIds 
    {
        public static Task<GetAmiIdsResult> InvokeAsync(GetAmiIdsArgs args, InvokeOptions? opts = null)
        public static Output<GetAmiIdsResult> Invoke(GetAmiIdsInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetAmiIdsResult> getAmiIds(GetAmiIdsArgs args, InvokeOptions options)
    // Output-based functions aren't available in Java yet
    
    fn::invoke:
      function: aws:autoscaling/getAmiIds:getAmiIds
      arguments:
        # arguments dictionary

    The following arguments are supported:

    Filters List<GetAmiIdsFilter>
    Filter used to scope the list e.g., by tags. See related docs.
    Names List<string>
    List of autoscaling group names
    Filters []GetAmiIdsFilter
    Filter used to scope the list e.g., by tags. See related docs.
    Names []string
    List of autoscaling group names
    filters List<GetAmiIdsFilter>
    Filter used to scope the list e.g., by tags. See related docs.
    names List<String>
    List of autoscaling group names
    filters GetAmiIdsFilter[]
    Filter used to scope the list e.g., by tags. See related docs.
    names string[]
    List of autoscaling group names
    filters Sequence[GetAmiIdsFilter]
    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

    getAmiIds 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<GetAmiIdsFilter>
    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 []GetAmiIdsFilter
    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<GetAmiIdsFilter>
    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 GetAmiIdsFilter[]
    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[GetAmiIdsFilter]
    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

    GetAmiIdsFilter

    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
    AWS v6.64.0 published on Friday, Dec 6, 2024 by Pulumi