All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.awsnative.autoscaling.kotlin.inputs.AutoScalingGroupNotificationConfigurationArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.autoscaling.kotlin.inputs

import com.pulumi.awsnative.autoscaling.inputs.AutoScalingGroupNotificationConfigurationArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * A structure that specifies an Amazon SNS notification configuration for the ``NotificationConfigurations`` property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource.
 *  For an example template snippet, see [Configure Amazon EC2 Auto Scaling resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ec2-auto-scaling.html).
 *  For more information, see [Get Amazon SNS notifications when your Auto Scaling group scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in the *Amazon EC2 Auto Scaling User Guide*.
 * @property notificationTypes A list of event types that send a notification. Event types can include any of the following types.
 *   *Allowed values*:
 *   +   ``autoscaling:EC2_INSTANCE_LAUNCH``
 *   +   ``autoscaling:EC2_INSTANCE_LAUNCH_ERROR``
 *   +   ``autoscaling:EC2_INSTANCE_TERMINATE``
 *   +   ``autoscaling:EC2_INSTANCE_TERMINATE_ERROR``
 *   +   ``autoscaling:TEST_NOTIFICATION``
 * @property topicArn The Amazon Resource Name (ARN) of the Amazon SNS topic.
 */
public data class AutoScalingGroupNotificationConfigurationArgs(
    public val notificationTypes: Output>? = null,
    public val topicArn: Output>,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.autoscaling.inputs.AutoScalingGroupNotificationConfigurationArgs =
        com.pulumi.awsnative.autoscaling.inputs.AutoScalingGroupNotificationConfigurationArgs.builder()
            .notificationTypes(notificationTypes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .topicArn(topicArn.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

/**
 * Builder for [AutoScalingGroupNotificationConfigurationArgs].
 */
@PulumiTagMarker
public class AutoScalingGroupNotificationConfigurationArgsBuilder internal constructor() {
    private var notificationTypes: Output>? = null

    private var topicArn: Output>? = null

    /**
     * @param value A list of event types that send a notification. Event types can include any of the following types.
     *   *Allowed values*:
     *   +   ``autoscaling:EC2_INSTANCE_LAUNCH``
     *   +   ``autoscaling:EC2_INSTANCE_LAUNCH_ERROR``
     *   +   ``autoscaling:EC2_INSTANCE_TERMINATE``
     *   +   ``autoscaling:EC2_INSTANCE_TERMINATE_ERROR``
     *   +   ``autoscaling:TEST_NOTIFICATION``
     */
    @JvmName("mixwvbhnxvinttpi")
    public suspend fun notificationTypes(`value`: Output>) {
        this.notificationTypes = value
    }

    @JvmName("diodfnbjxusmnncf")
    public suspend fun notificationTypes(vararg values: Output) {
        this.notificationTypes = Output.all(values.asList())
    }

    /**
     * @param values A list of event types that send a notification. Event types can include any of the following types.
     *   *Allowed values*:
     *   +   ``autoscaling:EC2_INSTANCE_LAUNCH``
     *   +   ``autoscaling:EC2_INSTANCE_LAUNCH_ERROR``
     *   +   ``autoscaling:EC2_INSTANCE_TERMINATE``
     *   +   ``autoscaling:EC2_INSTANCE_TERMINATE_ERROR``
     *   +   ``autoscaling:TEST_NOTIFICATION``
     */
    @JvmName("xynynevnpdxhvjod")
    public suspend fun notificationTypes(values: List>) {
        this.notificationTypes = Output.all(values)
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the Amazon SNS topic.
     */
    @JvmName("lxgnljbjdfannvla")
    public suspend fun topicArn(`value`: Output>) {
        this.topicArn = value
    }

    @JvmName("slhtywrpscewtgdl")
    public suspend fun topicArn(vararg values: Output) {
        this.topicArn = Output.all(values.asList())
    }

    /**
     * @param values The Amazon Resource Name (ARN) of the Amazon SNS topic.
     */
    @JvmName("sgqhwgornaxednte")
    public suspend fun topicArn(values: List>) {
        this.topicArn = Output.all(values)
    }

    /**
     * @param value A list of event types that send a notification. Event types can include any of the following types.
     *   *Allowed values*:
     *   +   ``autoscaling:EC2_INSTANCE_LAUNCH``
     *   +   ``autoscaling:EC2_INSTANCE_LAUNCH_ERROR``
     *   +   ``autoscaling:EC2_INSTANCE_TERMINATE``
     *   +   ``autoscaling:EC2_INSTANCE_TERMINATE_ERROR``
     *   +   ``autoscaling:TEST_NOTIFICATION``
     */
    @JvmName("ysaotdgmqanmmfjt")
    public suspend fun notificationTypes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.notificationTypes = mapped
    }

    /**
     * @param values A list of event types that send a notification. Event types can include any of the following types.
     *   *Allowed values*:
     *   +   ``autoscaling:EC2_INSTANCE_LAUNCH``
     *   +   ``autoscaling:EC2_INSTANCE_LAUNCH_ERROR``
     *   +   ``autoscaling:EC2_INSTANCE_TERMINATE``
     *   +   ``autoscaling:EC2_INSTANCE_TERMINATE_ERROR``
     *   +   ``autoscaling:TEST_NOTIFICATION``
     */
    @JvmName("ronpmkvsnfsnhlwg")
    public suspend fun notificationTypes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.notificationTypes = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the Amazon SNS topic.
     */
    @JvmName("knltxexhkapiffhk")
    public suspend fun topicArn(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.topicArn = mapped
    }

    /**
     * @param values The Amazon Resource Name (ARN) of the Amazon SNS topic.
     */
    @JvmName("ajyienbpbngfmgbh")
    public suspend fun topicArn(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.topicArn = mapped
    }

    internal fun build(): AutoScalingGroupNotificationConfigurationArgs =
        AutoScalingGroupNotificationConfigurationArgs(
            notificationTypes = notificationTypes,
            topicArn = topicArn ?: throw PulumiNullFieldException("topicArn"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy