NotificationArgs

data class NotificationArgs(val groupNames: Output<List<String>>? = null, val notifications: Output<List<String>>? = null, val topicArn: Output<String>? = null) : ConvertibleToJava<NotificationArgs>

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

Example Usage

Basic usage:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.sns.Topic("example", {name: "example-topic"});
const bar = new aws.autoscaling.Group("bar", {name: "foobar1-test"});
const foo = new aws.autoscaling.Group("foo", {name: "barfoo-test"});
const exampleNotifications = new aws.autoscaling.Notification("example_notifications", {
groupNames: [
bar.name,
foo.name,
],
notifications: [
"autoscaling:EC2_INSTANCE_LAUNCH",
"autoscaling:EC2_INSTANCE_TERMINATE",
"autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
"autoscaling:EC2_INSTANCE_TERMINATE_ERROR",
],
topicArn: example.arn,
});
import pulumi
import pulumi_aws as aws
example = aws.sns.Topic("example", name="example-topic")
bar = aws.autoscaling.Group("bar", name="foobar1-test")
foo = aws.autoscaling.Group("foo", name="barfoo-test")
example_notifications = aws.autoscaling.Notification("example_notifications",
group_names=[
bar.name,
foo.name,
],
notifications=[
"autoscaling:EC2_INSTANCE_LAUNCH",
"autoscaling:EC2_INSTANCE_TERMINATE",
"autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
"autoscaling:EC2_INSTANCE_TERMINATE_ERROR",
],
topic_arn=example.arn)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Sns.Topic("example", new()
{
Name = "example-topic",
});
var bar = new Aws.AutoScaling.Group("bar", new()
{
Name = "foobar1-test",
});
var foo = new Aws.AutoScaling.Group("foo", new()
{
Name = "barfoo-test",
});
var exampleNotifications = new Aws.AutoScaling.Notification("example_notifications", new()
{
GroupNames = new[]
{
bar.Name,
foo.Name,
},
Notifications = new[]
{
"autoscaling:EC2_INSTANCE_LAUNCH",
"autoscaling:EC2_INSTANCE_TERMINATE",
"autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
"autoscaling:EC2_INSTANCE_TERMINATE_ERROR",
},
TopicArn = example.Arn,
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := sns.NewTopic(ctx, "example", &sns.TopicArgs{
Name: pulumi.String("example-topic"),
})
if err != nil {
return err
}
bar, err := autoscaling.NewGroup(ctx, "bar", &autoscaling.GroupArgs{
Name: pulumi.String("foobar1-test"),
})
if err != nil {
return err
}
foo, err := autoscaling.NewGroup(ctx, "foo", &autoscaling.GroupArgs{
Name: pulumi.String("barfoo-test"),
})
if err != nil {
return err
}
_, err = autoscaling.NewNotification(ctx, "example_notifications", &autoscaling.NotificationArgs{
GroupNames: pulumi.StringArray{
bar.Name,
foo.Name,
},
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: example.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.sns.Topic;
import com.pulumi.aws.sns.TopicArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
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) {
var example = new Topic("example", TopicArgs.builder()
.name("example-topic")
.build());
var bar = new Group("bar", GroupArgs.builder()
.name("foobar1-test")
.build());
var foo = new Group("foo", GroupArgs.builder()
.name("barfoo-test")
.build());
var exampleNotifications = new Notification("exampleNotifications", NotificationArgs.builder()
.groupNames(
bar.name(),
foo.name())
.notifications(
"autoscaling:EC2_INSTANCE_LAUNCH",
"autoscaling:EC2_INSTANCE_TERMINATE",
"autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
"autoscaling:EC2_INSTANCE_TERMINATE_ERROR")
.topicArn(example.arn())
.build());
}
}
resources:
exampleNotifications:
type: aws:autoscaling:Notification
name: example_notifications
properties:
groupNames:
- ${bar.name}
- ${foo.name}
notifications:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
topicArn: ${example.arn}
example:
type: aws:sns:Topic
properties:
name: example-topic
bar:
type: aws:autoscaling:Group
properties:
name: foobar1-test
foo:
type: aws:autoscaling:Group
properties:
name: barfoo-test

Constructors

Link copied to clipboard
constructor(groupNames: Output<List<String>>? = null, notifications: Output<List<String>>? = null, topicArn: Output<String>? = null)

Properties

Link copied to clipboard
val groupNames: Output<List<String>>? = null

List of AutoScaling Group Names

Link copied to clipboard
val notifications: Output<List<String>>? = null

List of Notification Types that trigger notifications. Acceptable values are documented in the AWS documentation here

Link copied to clipboard
val topicArn: Output<String>? = null

Topic ARN for notifications to be sent through

Functions

Link copied to clipboard
open override fun toJava(): NotificationArgs