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

com.pulumi.azure.costmanagement.ScheduledActionArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.

There is a newer version: 6.10.0-alpha.1731737215
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.azure.costmanagement;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ScheduledActionArgs Empty = new ScheduledActionArgs();

    /**
     * UTC day on which cost analysis data will be emailed. Must be between `1` and `31`. This property is applicable when `frequency` is `Monthly`.
     * 
     */
    @Import(name="dayOfMonth")
    private @Nullable Output dayOfMonth;

    /**
     * @return UTC day on which cost analysis data will be emailed. Must be between `1` and `31`. This property is applicable when `frequency` is `Monthly`.
     * 
     */
    public Optional> dayOfMonth() {
        return Optional.ofNullable(this.dayOfMonth);
    }

    /**
     * Specifies a list of day names on which cost analysis data will be emailed. This property is applicable when frequency is `Weekly` or `Monthly`. Possible values are `Friday`, `Monday`, `Saturday`, `Sunday`, `Thursday`, `Tuesday` and `Wednesday`.
     * 
     */
    @Import(name="daysOfWeeks")
    private @Nullable Output> daysOfWeeks;

    /**
     * @return Specifies a list of day names on which cost analysis data will be emailed. This property is applicable when frequency is `Weekly` or `Monthly`. Possible values are `Friday`, `Monday`, `Saturday`, `Sunday`, `Thursday`, `Tuesday` and `Wednesday`.
     * 
     */
    public Optional>> daysOfWeeks() {
        return Optional.ofNullable(this.daysOfWeeks);
    }

    /**
     * User visible input name of the Cost Management Scheduled Action.
     * 
     */
    @Import(name="displayName", required=true)
    private Output displayName;

    /**
     * @return User visible input name of the Cost Management Scheduled Action.
     * 
     */
    public Output displayName() {
        return this.displayName;
    }

    /**
     * Email address of the point of contact that should get the unsubscribe requests of Scheduled Action notification emails.
     * 
     */
    @Import(name="emailAddressSender", required=true)
    private Output emailAddressSender;

    /**
     * @return Email address of the point of contact that should get the unsubscribe requests of Scheduled Action notification emails.
     * 
     */
    public Output emailAddressSender() {
        return this.emailAddressSender;
    }

    /**
     * Specifies a list of email addresses that will receive the Scheduled Action.
     * 
     */
    @Import(name="emailAddresses", required=true)
    private Output> emailAddresses;

    /**
     * @return Specifies a list of email addresses that will receive the Scheduled Action.
     * 
     */
    public Output> emailAddresses() {
        return this.emailAddresses;
    }

    /**
     * Subject of the email. Length is limited to 70 characters.
     * 
     */
    @Import(name="emailSubject", required=true)
    private Output emailSubject;

    /**
     * @return Subject of the email. Length is limited to 70 characters.
     * 
     */
    public Output emailSubject() {
        return this.emailSubject;
    }

    /**
     * The end date and time of the Scheduled Action (UTC).
     * 
     */
    @Import(name="endDate", required=true)
    private Output endDate;

    /**
     * @return The end date and time of the Scheduled Action (UTC).
     * 
     */
    public Output endDate() {
        return this.endDate;
    }

    /**
     * Frequency of the schedule. Possible values are `Daily`, `Monthly` and `Weekly`. Value `Monthly` requires either `weeks_of_month` and `days_of_week` or `day_of_month` to be specified. Value `Weekly` requires `days_of_week` to be specified.
     * 
     */
    @Import(name="frequency", required=true)
    private Output frequency;

    /**
     * @return Frequency of the schedule. Possible values are `Daily`, `Monthly` and `Weekly`. Value `Monthly` requires either `weeks_of_month` and `days_of_week` or `day_of_month` to be specified. Value `Weekly` requires `days_of_week` to be specified.
     * 
     */
    public Output frequency() {
        return this.frequency;
    }

    /**
     * UTC time at which cost analysis data will be emailed. Must be between `0` and `23`.
     * 
     */
    @Import(name="hourOfDay")
    private @Nullable Output hourOfDay;

    /**
     * @return UTC time at which cost analysis data will be emailed. Must be between `0` and `23`.
     * 
     */
    public Optional> hourOfDay() {
        return Optional.ofNullable(this.hourOfDay);
    }

    /**
     * Message to be added in the email. Length is limited to 250 characters.
     * 
     */
    @Import(name="message")
    private @Nullable Output message;

    /**
     * @return Message to be added in the email. Length is limited to 250 characters.
     * 
     */
    public Optional> message() {
        return Optional.ofNullable(this.message);
    }

    /**
     * The name which should be used for this Azure Cost Management Scheduled Action. Changing this forces a new Azure Cost Management Scheduled Action to be created.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name which should be used for this Azure Cost Management Scheduled Action. Changing this forces a new Azure Cost Management Scheduled Action to be created.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The start date and time of the Scheduled Action (UTC).
     * 
     */
    @Import(name="startDate", required=true)
    private Output startDate;

    /**
     * @return The start date and time of the Scheduled Action (UTC).
     * 
     */
    public Output startDate() {
        return this.startDate;
    }

    /**
     * The ID of the Cost Management View that is used by the Scheduled Action. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="viewId", required=true)
    private Output viewId;

    /**
     * @return The ID of the Cost Management View that is used by the Scheduled Action. Changing this forces a new resource to be created.
     * 
     */
    public Output viewId() {
        return this.viewId;
    }

    /**
     * Specifies a list of weeks in which cost analysis data will be emailed. This property is applicable when `frequency` is `Monthly` and used in combination with `days_of_week`. Possible values are `First`, `Fourth`, `Last`, `Second` and `Third`.
     * 
     */
    @Import(name="weeksOfMonths")
    private @Nullable Output> weeksOfMonths;

    /**
     * @return Specifies a list of weeks in which cost analysis data will be emailed. This property is applicable when `frequency` is `Monthly` and used in combination with `days_of_week`. Possible values are `First`, `Fourth`, `Last`, `Second` and `Third`.
     * 
     */
    public Optional>> weeksOfMonths() {
        return Optional.ofNullable(this.weeksOfMonths);
    }

    private ScheduledActionArgs() {}

    private ScheduledActionArgs(ScheduledActionArgs $) {
        this.dayOfMonth = $.dayOfMonth;
        this.daysOfWeeks = $.daysOfWeeks;
        this.displayName = $.displayName;
        this.emailAddressSender = $.emailAddressSender;
        this.emailAddresses = $.emailAddresses;
        this.emailSubject = $.emailSubject;
        this.endDate = $.endDate;
        this.frequency = $.frequency;
        this.hourOfDay = $.hourOfDay;
        this.message = $.message;
        this.name = $.name;
        this.startDate = $.startDate;
        this.viewId = $.viewId;
        this.weeksOfMonths = $.weeksOfMonths;
    }

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

    public static final class Builder {
        private ScheduledActionArgs $;

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

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

        /**
         * @param dayOfMonth UTC day on which cost analysis data will be emailed. Must be between `1` and `31`. This property is applicable when `frequency` is `Monthly`.
         * 
         * @return builder
         * 
         */
        public Builder dayOfMonth(@Nullable Output dayOfMonth) {
            $.dayOfMonth = dayOfMonth;
            return this;
        }

        /**
         * @param dayOfMonth UTC day on which cost analysis data will be emailed. Must be between `1` and `31`. This property is applicable when `frequency` is `Monthly`.
         * 
         * @return builder
         * 
         */
        public Builder dayOfMonth(Integer dayOfMonth) {
            return dayOfMonth(Output.of(dayOfMonth));
        }

        /**
         * @param daysOfWeeks Specifies a list of day names on which cost analysis data will be emailed. This property is applicable when frequency is `Weekly` or `Monthly`. Possible values are `Friday`, `Monday`, `Saturday`, `Sunday`, `Thursday`, `Tuesday` and `Wednesday`.
         * 
         * @return builder
         * 
         */
        public Builder daysOfWeeks(@Nullable Output> daysOfWeeks) {
            $.daysOfWeeks = daysOfWeeks;
            return this;
        }

        /**
         * @param daysOfWeeks Specifies a list of day names on which cost analysis data will be emailed. This property is applicable when frequency is `Weekly` or `Monthly`. Possible values are `Friday`, `Monday`, `Saturday`, `Sunday`, `Thursday`, `Tuesday` and `Wednesday`.
         * 
         * @return builder
         * 
         */
        public Builder daysOfWeeks(List daysOfWeeks) {
            return daysOfWeeks(Output.of(daysOfWeeks));
        }

        /**
         * @param daysOfWeeks Specifies a list of day names on which cost analysis data will be emailed. This property is applicable when frequency is `Weekly` or `Monthly`. Possible values are `Friday`, `Monday`, `Saturday`, `Sunday`, `Thursday`, `Tuesday` and `Wednesday`.
         * 
         * @return builder
         * 
         */
        public Builder daysOfWeeks(String... daysOfWeeks) {
            return daysOfWeeks(List.of(daysOfWeeks));
        }

        /**
         * @param displayName User visible input name of the Cost Management Scheduled Action.
         * 
         * @return builder
         * 
         */
        public Builder displayName(Output displayName) {
            $.displayName = displayName;
            return this;
        }

        /**
         * @param displayName User visible input name of the Cost Management Scheduled Action.
         * 
         * @return builder
         * 
         */
        public Builder displayName(String displayName) {
            return displayName(Output.of(displayName));
        }

        /**
         * @param emailAddressSender Email address of the point of contact that should get the unsubscribe requests of Scheduled Action notification emails.
         * 
         * @return builder
         * 
         */
        public Builder emailAddressSender(Output emailAddressSender) {
            $.emailAddressSender = emailAddressSender;
            return this;
        }

        /**
         * @param emailAddressSender Email address of the point of contact that should get the unsubscribe requests of Scheduled Action notification emails.
         * 
         * @return builder
         * 
         */
        public Builder emailAddressSender(String emailAddressSender) {
            return emailAddressSender(Output.of(emailAddressSender));
        }

        /**
         * @param emailAddresses Specifies a list of email addresses that will receive the Scheduled Action.
         * 
         * @return builder
         * 
         */
        public Builder emailAddresses(Output> emailAddresses) {
            $.emailAddresses = emailAddresses;
            return this;
        }

        /**
         * @param emailAddresses Specifies a list of email addresses that will receive the Scheduled Action.
         * 
         * @return builder
         * 
         */
        public Builder emailAddresses(List emailAddresses) {
            return emailAddresses(Output.of(emailAddresses));
        }

        /**
         * @param emailAddresses Specifies a list of email addresses that will receive the Scheduled Action.
         * 
         * @return builder
         * 
         */
        public Builder emailAddresses(String... emailAddresses) {
            return emailAddresses(List.of(emailAddresses));
        }

        /**
         * @param emailSubject Subject of the email. Length is limited to 70 characters.
         * 
         * @return builder
         * 
         */
        public Builder emailSubject(Output emailSubject) {
            $.emailSubject = emailSubject;
            return this;
        }

        /**
         * @param emailSubject Subject of the email. Length is limited to 70 characters.
         * 
         * @return builder
         * 
         */
        public Builder emailSubject(String emailSubject) {
            return emailSubject(Output.of(emailSubject));
        }

        /**
         * @param endDate The end date and time of the Scheduled Action (UTC).
         * 
         * @return builder
         * 
         */
        public Builder endDate(Output endDate) {
            $.endDate = endDate;
            return this;
        }

        /**
         * @param endDate The end date and time of the Scheduled Action (UTC).
         * 
         * @return builder
         * 
         */
        public Builder endDate(String endDate) {
            return endDate(Output.of(endDate));
        }

        /**
         * @param frequency Frequency of the schedule. Possible values are `Daily`, `Monthly` and `Weekly`. Value `Monthly` requires either `weeks_of_month` and `days_of_week` or `day_of_month` to be specified. Value `Weekly` requires `days_of_week` to be specified.
         * 
         * @return builder
         * 
         */
        public Builder frequency(Output frequency) {
            $.frequency = frequency;
            return this;
        }

        /**
         * @param frequency Frequency of the schedule. Possible values are `Daily`, `Monthly` and `Weekly`. Value `Monthly` requires either `weeks_of_month` and `days_of_week` or `day_of_month` to be specified. Value `Weekly` requires `days_of_week` to be specified.
         * 
         * @return builder
         * 
         */
        public Builder frequency(String frequency) {
            return frequency(Output.of(frequency));
        }

        /**
         * @param hourOfDay UTC time at which cost analysis data will be emailed. Must be between `0` and `23`.
         * 
         * @return builder
         * 
         */
        public Builder hourOfDay(@Nullable Output hourOfDay) {
            $.hourOfDay = hourOfDay;
            return this;
        }

        /**
         * @param hourOfDay UTC time at which cost analysis data will be emailed. Must be between `0` and `23`.
         * 
         * @return builder
         * 
         */
        public Builder hourOfDay(Integer hourOfDay) {
            return hourOfDay(Output.of(hourOfDay));
        }

        /**
         * @param message Message to be added in the email. Length is limited to 250 characters.
         * 
         * @return builder
         * 
         */
        public Builder message(@Nullable Output message) {
            $.message = message;
            return this;
        }

        /**
         * @param message Message to be added in the email. Length is limited to 250 characters.
         * 
         * @return builder
         * 
         */
        public Builder message(String message) {
            return message(Output.of(message));
        }

        /**
         * @param name The name which should be used for this Azure Cost Management Scheduled Action. Changing this forces a new Azure Cost Management Scheduled Action to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name which should be used for this Azure Cost Management Scheduled Action. Changing this forces a new Azure Cost Management Scheduled Action to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param startDate The start date and time of the Scheduled Action (UTC).
         * 
         * @return builder
         * 
         */
        public Builder startDate(Output startDate) {
            $.startDate = startDate;
            return this;
        }

        /**
         * @param startDate The start date and time of the Scheduled Action (UTC).
         * 
         * @return builder
         * 
         */
        public Builder startDate(String startDate) {
            return startDate(Output.of(startDate));
        }

        /**
         * @param viewId The ID of the Cost Management View that is used by the Scheduled Action. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder viewId(Output viewId) {
            $.viewId = viewId;
            return this;
        }

        /**
         * @param viewId The ID of the Cost Management View that is used by the Scheduled Action. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder viewId(String viewId) {
            return viewId(Output.of(viewId));
        }

        /**
         * @param weeksOfMonths Specifies a list of weeks in which cost analysis data will be emailed. This property is applicable when `frequency` is `Monthly` and used in combination with `days_of_week`. Possible values are `First`, `Fourth`, `Last`, `Second` and `Third`.
         * 
         * @return builder
         * 
         */
        public Builder weeksOfMonths(@Nullable Output> weeksOfMonths) {
            $.weeksOfMonths = weeksOfMonths;
            return this;
        }

        /**
         * @param weeksOfMonths Specifies a list of weeks in which cost analysis data will be emailed. This property is applicable when `frequency` is `Monthly` and used in combination with `days_of_week`. Possible values are `First`, `Fourth`, `Last`, `Second` and `Third`.
         * 
         * @return builder
         * 
         */
        public Builder weeksOfMonths(List weeksOfMonths) {
            return weeksOfMonths(Output.of(weeksOfMonths));
        }

        /**
         * @param weeksOfMonths Specifies a list of weeks in which cost analysis data will be emailed. This property is applicable when `frequency` is `Monthly` and used in combination with `days_of_week`. Possible values are `First`, `Fourth`, `Last`, `Second` and `Third`.
         * 
         * @return builder
         * 
         */
        public Builder weeksOfMonths(String... weeksOfMonths) {
            return weeksOfMonths(List.of(weeksOfMonths));
        }

        public ScheduledActionArgs build() {
            if ($.displayName == null) {
                throw new MissingRequiredPropertyException("ScheduledActionArgs", "displayName");
            }
            if ($.emailAddressSender == null) {
                throw new MissingRequiredPropertyException("ScheduledActionArgs", "emailAddressSender");
            }
            if ($.emailAddresses == null) {
                throw new MissingRequiredPropertyException("ScheduledActionArgs", "emailAddresses");
            }
            if ($.emailSubject == null) {
                throw new MissingRequiredPropertyException("ScheduledActionArgs", "emailSubject");
            }
            if ($.endDate == null) {
                throw new MissingRequiredPropertyException("ScheduledActionArgs", "endDate");
            }
            if ($.frequency == null) {
                throw new MissingRequiredPropertyException("ScheduledActionArgs", "frequency");
            }
            if ($.startDate == null) {
                throw new MissingRequiredPropertyException("ScheduledActionArgs", "startDate");
            }
            if ($.viewId == null) {
                throw new MissingRequiredPropertyException("ScheduledActionArgs", "viewId");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy