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

com.pulumi.azurenative.costmanagement.inputs.ExportScheduleArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
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.azurenative.costmanagement.inputs;

import com.pulumi.azurenative.costmanagement.enums.RecurrenceType;
import com.pulumi.azurenative.costmanagement.enums.StatusType;
import com.pulumi.azurenative.costmanagement.inputs.ExportRecurrencePeriodArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * The schedule associated with the export.
 * 
 */
public final class ExportScheduleArgs extends com.pulumi.resources.ResourceArgs {

    public static final ExportScheduleArgs Empty = new ExportScheduleArgs();

    /**
     * The schedule recurrence.
     * 
     */
    @Import(name="recurrence")
    private @Nullable Output> recurrence;

    /**
     * @return The schedule recurrence.
     * 
     */
    public Optional>> recurrence() {
        return Optional.ofNullable(this.recurrence);
    }

    /**
     * Has start and end date of the recurrence. The start date must be in future. If present, the end date must be greater than start date.
     * 
     */
    @Import(name="recurrencePeriod")
    private @Nullable Output recurrencePeriod;

    /**
     * @return Has start and end date of the recurrence. The start date must be in future. If present, the end date must be greater than start date.
     * 
     */
    public Optional> recurrencePeriod() {
        return Optional.ofNullable(this.recurrencePeriod);
    }

    /**
     * The status of the export's schedule. If 'Inactive', the export's schedule is paused.
     * 
     */
    @Import(name="status")
    private @Nullable Output> status;

    /**
     * @return The status of the export's schedule. If 'Inactive', the export's schedule is paused.
     * 
     */
    public Optional>> status() {
        return Optional.ofNullable(this.status);
    }

    private ExportScheduleArgs() {}

    private ExportScheduleArgs(ExportScheduleArgs $) {
        this.recurrence = $.recurrence;
        this.recurrencePeriod = $.recurrencePeriod;
        this.status = $.status;
    }

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

    public static final class Builder {
        private ExportScheduleArgs $;

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

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

        /**
         * @param recurrence The schedule recurrence.
         * 
         * @return builder
         * 
         */
        public Builder recurrence(@Nullable Output> recurrence) {
            $.recurrence = recurrence;
            return this;
        }

        /**
         * @param recurrence The schedule recurrence.
         * 
         * @return builder
         * 
         */
        public Builder recurrence(Either recurrence) {
            return recurrence(Output.of(recurrence));
        }

        /**
         * @param recurrence The schedule recurrence.
         * 
         * @return builder
         * 
         */
        public Builder recurrence(String recurrence) {
            return recurrence(Either.ofLeft(recurrence));
        }

        /**
         * @param recurrence The schedule recurrence.
         * 
         * @return builder
         * 
         */
        public Builder recurrence(RecurrenceType recurrence) {
            return recurrence(Either.ofRight(recurrence));
        }

        /**
         * @param recurrencePeriod Has start and end date of the recurrence. The start date must be in future. If present, the end date must be greater than start date.
         * 
         * @return builder
         * 
         */
        public Builder recurrencePeriod(@Nullable Output recurrencePeriod) {
            $.recurrencePeriod = recurrencePeriod;
            return this;
        }

        /**
         * @param recurrencePeriod Has start and end date of the recurrence. The start date must be in future. If present, the end date must be greater than start date.
         * 
         * @return builder
         * 
         */
        public Builder recurrencePeriod(ExportRecurrencePeriodArgs recurrencePeriod) {
            return recurrencePeriod(Output.of(recurrencePeriod));
        }

        /**
         * @param status The status of the export's schedule. If 'Inactive', the export's schedule is paused.
         * 
         * @return builder
         * 
         */
        public Builder status(@Nullable Output> status) {
            $.status = status;
            return this;
        }

        /**
         * @param status The status of the export's schedule. If 'Inactive', the export's schedule is paused.
         * 
         * @return builder
         * 
         */
        public Builder status(Either status) {
            return status(Output.of(status));
        }

        /**
         * @param status The status of the export's schedule. If 'Inactive', the export's schedule is paused.
         * 
         * @return builder
         * 
         */
        public Builder status(String status) {
            return status(Either.ofLeft(status));
        }

        /**
         * @param status The status of the export's schedule. If 'Inactive', the export's schedule is paused.
         * 
         * @return builder
         * 
         */
        public Builder status(StatusType status) {
            return status(Either.ofRight(status));
        }

        public ExportScheduleArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy