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

com.pulumi.alicloud.ess.NotificationArgs Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.alicloud.ess;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;


public final class NotificationArgs extends com.pulumi.resources.ResourceArgs {

    public static final NotificationArgs Empty = new NotificationArgs();

    /**
     * The Alibaba Cloud Resource Name (ARN) of the notification object, The value must be in `acs:ess:{region}:{account-id}:{resource-relative-id}` format.
     * * region: the region ID of the scaling group. For more information, see `Regions and zones`
     * * account-id: the ID of your account.
     * * resource-relative-id: the notification method. Valid values : `cloudmonitor`, MNS queue: `queue/{queuename}`, Replace the queuename with the specific MNS queue name, MNS topic: `topic/{topicname}`, Replace the topicname with the specific MNS topic name.
     * 
     */
    @Import(name="notificationArn", required=true)
    private Output notificationArn;

    /**
     * @return The Alibaba Cloud Resource Name (ARN) of the notification object, The value must be in `acs:ess:{region}:{account-id}:{resource-relative-id}` format.
     * * region: the region ID of the scaling group. For more information, see `Regions and zones`
     * * account-id: the ID of your account.
     * * resource-relative-id: the notification method. Valid values : `cloudmonitor`, MNS queue: `queue/{queuename}`, Replace the queuename with the specific MNS queue name, MNS topic: `topic/{topicname}`, Replace the topicname with the specific MNS topic name.
     * 
     */
    public Output notificationArn() {
        return this.notificationArn;
    }

    /**
     * The notification types of Auto Scaling events and resource changes. Supported notification types: 'AUTOSCALING:SCALE_OUT_SUCCESS', 'AUTOSCALING:SCALE_IN_SUCCESS', 'AUTOSCALING:SCALE_OUT_ERROR', 'AUTOSCALING:SCALE_IN_ERROR', 'AUTOSCALING:SCALE_REJECT', 'AUTOSCALING:SCALE_OUT_START', 'AUTOSCALING:SCALE_IN_START', 'AUTOSCALING:SCHEDULE_TASK_EXPIRING'.
     * 
     */
    @Import(name="notificationTypes", required=true)
    private Output> notificationTypes;

    /**
     * @return The notification types of Auto Scaling events and resource changes. Supported notification types: 'AUTOSCALING:SCALE_OUT_SUCCESS', 'AUTOSCALING:SCALE_IN_SUCCESS', 'AUTOSCALING:SCALE_OUT_ERROR', 'AUTOSCALING:SCALE_IN_ERROR', 'AUTOSCALING:SCALE_REJECT', 'AUTOSCALING:SCALE_OUT_START', 'AUTOSCALING:SCALE_IN_START', 'AUTOSCALING:SCHEDULE_TASK_EXPIRING'.
     * 
     */
    public Output> notificationTypes() {
        return this.notificationTypes;
    }

    /**
     * The ID of the Auto Scaling group.
     * 
     */
    @Import(name="scalingGroupId", required=true)
    private Output scalingGroupId;

    /**
     * @return The ID of the Auto Scaling group.
     * 
     */
    public Output scalingGroupId() {
        return this.scalingGroupId;
    }

    private NotificationArgs() {}

    private NotificationArgs(NotificationArgs $) {
        this.notificationArn = $.notificationArn;
        this.notificationTypes = $.notificationTypes;
        this.scalingGroupId = $.scalingGroupId;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(NotificationArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private NotificationArgs $;

        public Builder() {
            $ = new NotificationArgs();
        }

        public Builder(NotificationArgs defaults) {
            $ = new NotificationArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param notificationArn The Alibaba Cloud Resource Name (ARN) of the notification object, The value must be in `acs:ess:{region}:{account-id}:{resource-relative-id}` format.
         * * region: the region ID of the scaling group. For more information, see `Regions and zones`
         * * account-id: the ID of your account.
         * * resource-relative-id: the notification method. Valid values : `cloudmonitor`, MNS queue: `queue/{queuename}`, Replace the queuename with the specific MNS queue name, MNS topic: `topic/{topicname}`, Replace the topicname with the specific MNS topic name.
         * 
         * @return builder
         * 
         */
        public Builder notificationArn(Output notificationArn) {
            $.notificationArn = notificationArn;
            return this;
        }

        /**
         * @param notificationArn The Alibaba Cloud Resource Name (ARN) of the notification object, The value must be in `acs:ess:{region}:{account-id}:{resource-relative-id}` format.
         * * region: the region ID of the scaling group. For more information, see `Regions and zones`
         * * account-id: the ID of your account.
         * * resource-relative-id: the notification method. Valid values : `cloudmonitor`, MNS queue: `queue/{queuename}`, Replace the queuename with the specific MNS queue name, MNS topic: `topic/{topicname}`, Replace the topicname with the specific MNS topic name.
         * 
         * @return builder
         * 
         */
        public Builder notificationArn(String notificationArn) {
            return notificationArn(Output.of(notificationArn));
        }

        /**
         * @param notificationTypes The notification types of Auto Scaling events and resource changes. Supported notification types: 'AUTOSCALING:SCALE_OUT_SUCCESS', 'AUTOSCALING:SCALE_IN_SUCCESS', 'AUTOSCALING:SCALE_OUT_ERROR', 'AUTOSCALING:SCALE_IN_ERROR', 'AUTOSCALING:SCALE_REJECT', 'AUTOSCALING:SCALE_OUT_START', 'AUTOSCALING:SCALE_IN_START', 'AUTOSCALING:SCHEDULE_TASK_EXPIRING'.
         * 
         * @return builder
         * 
         */
        public Builder notificationTypes(Output> notificationTypes) {
            $.notificationTypes = notificationTypes;
            return this;
        }

        /**
         * @param notificationTypes The notification types of Auto Scaling events and resource changes. Supported notification types: 'AUTOSCALING:SCALE_OUT_SUCCESS', 'AUTOSCALING:SCALE_IN_SUCCESS', 'AUTOSCALING:SCALE_OUT_ERROR', 'AUTOSCALING:SCALE_IN_ERROR', 'AUTOSCALING:SCALE_REJECT', 'AUTOSCALING:SCALE_OUT_START', 'AUTOSCALING:SCALE_IN_START', 'AUTOSCALING:SCHEDULE_TASK_EXPIRING'.
         * 
         * @return builder
         * 
         */
        public Builder notificationTypes(List notificationTypes) {
            return notificationTypes(Output.of(notificationTypes));
        }

        /**
         * @param notificationTypes The notification types of Auto Scaling events and resource changes. Supported notification types: 'AUTOSCALING:SCALE_OUT_SUCCESS', 'AUTOSCALING:SCALE_IN_SUCCESS', 'AUTOSCALING:SCALE_OUT_ERROR', 'AUTOSCALING:SCALE_IN_ERROR', 'AUTOSCALING:SCALE_REJECT', 'AUTOSCALING:SCALE_OUT_START', 'AUTOSCALING:SCALE_IN_START', 'AUTOSCALING:SCHEDULE_TASK_EXPIRING'.
         * 
         * @return builder
         * 
         */
        public Builder notificationTypes(String... notificationTypes) {
            return notificationTypes(List.of(notificationTypes));
        }

        /**
         * @param scalingGroupId The ID of the Auto Scaling group.
         * 
         * @return builder
         * 
         */
        public Builder scalingGroupId(Output scalingGroupId) {
            $.scalingGroupId = scalingGroupId;
            return this;
        }

        /**
         * @param scalingGroupId The ID of the Auto Scaling group.
         * 
         * @return builder
         * 
         */
        public Builder scalingGroupId(String scalingGroupId) {
            return scalingGroupId(Output.of(scalingGroupId));
        }

        public NotificationArgs build() {
            if ($.notificationArn == null) {
                throw new MissingRequiredPropertyException("NotificationArgs", "notificationArn");
            }
            if ($.notificationTypes == null) {
                throw new MissingRequiredPropertyException("NotificationArgs", "notificationTypes");
            }
            if ($.scalingGroupId == null) {
                throw new MissingRequiredPropertyException("NotificationArgs", "scalingGroupId");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy