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

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

There is a newer version: 2.82.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.ExportType;
import com.pulumi.azurenative.costmanagement.enums.TimeframeType;
import com.pulumi.azurenative.costmanagement.inputs.ExportDatasetArgs;
import com.pulumi.azurenative.costmanagement.inputs.ExportTimePeriodArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * The definition of an export.
 * 
 */
public final class ExportDefinitionArgs extends com.pulumi.resources.ResourceArgs {

    public static final ExportDefinitionArgs Empty = new ExportDefinitionArgs();

    /**
     * The definition for data in the export.
     * 
     */
    @Import(name="dataSet")
    private @Nullable Output dataSet;

    /**
     * @return The definition for data in the export.
     * 
     */
    public Optional> dataSet() {
        return Optional.ofNullable(this.dataSet);
    }

    /**
     * Has time period for pulling data for the export.
     * 
     */
    @Import(name="timePeriod")
    private @Nullable Output timePeriod;

    /**
     * @return Has time period for pulling data for the export.
     * 
     */
    public Optional> timePeriod() {
        return Optional.ofNullable(this.timePeriod);
    }

    /**
     * The time frame for pulling data for the export. If custom, then a specific time period must be provided.
     * 
     */
    @Import(name="timeframe", required=true)
    private Output> timeframe;

    /**
     * @return The time frame for pulling data for the export. If custom, then a specific time period must be provided.
     * 
     */
    public Output> timeframe() {
        return this.timeframe;
    }

    /**
     * The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations.
     * 
     */
    @Import(name="type", required=true)
    private Output> type;

    /**
     * @return The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations.
     * 
     */
    public Output> type() {
        return this.type;
    }

    private ExportDefinitionArgs() {}

    private ExportDefinitionArgs(ExportDefinitionArgs $) {
        this.dataSet = $.dataSet;
        this.timePeriod = $.timePeriod;
        this.timeframe = $.timeframe;
        this.type = $.type;
    }

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

    public static final class Builder {
        private ExportDefinitionArgs $;

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

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

        /**
         * @param dataSet The definition for data in the export.
         * 
         * @return builder
         * 
         */
        public Builder dataSet(@Nullable Output dataSet) {
            $.dataSet = dataSet;
            return this;
        }

        /**
         * @param dataSet The definition for data in the export.
         * 
         * @return builder
         * 
         */
        public Builder dataSet(ExportDatasetArgs dataSet) {
            return dataSet(Output.of(dataSet));
        }

        /**
         * @param timePeriod Has time period for pulling data for the export.
         * 
         * @return builder
         * 
         */
        public Builder timePeriod(@Nullable Output timePeriod) {
            $.timePeriod = timePeriod;
            return this;
        }

        /**
         * @param timePeriod Has time period for pulling data for the export.
         * 
         * @return builder
         * 
         */
        public Builder timePeriod(ExportTimePeriodArgs timePeriod) {
            return timePeriod(Output.of(timePeriod));
        }

        /**
         * @param timeframe The time frame for pulling data for the export. If custom, then a specific time period must be provided.
         * 
         * @return builder
         * 
         */
        public Builder timeframe(Output> timeframe) {
            $.timeframe = timeframe;
            return this;
        }

        /**
         * @param timeframe The time frame for pulling data for the export. If custom, then a specific time period must be provided.
         * 
         * @return builder
         * 
         */
        public Builder timeframe(Either timeframe) {
            return timeframe(Output.of(timeframe));
        }

        /**
         * @param timeframe The time frame for pulling data for the export. If custom, then a specific time period must be provided.
         * 
         * @return builder
         * 
         */
        public Builder timeframe(String timeframe) {
            return timeframe(Either.ofLeft(timeframe));
        }

        /**
         * @param timeframe The time frame for pulling data for the export. If custom, then a specific time period must be provided.
         * 
         * @return builder
         * 
         */
        public Builder timeframe(TimeframeType timeframe) {
            return timeframe(Either.ofRight(timeframe));
        }

        /**
         * @param type The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations.
         * 
         * @return builder
         * 
         */
        public Builder type(Output> type) {
            $.type = type;
            return this;
        }

        /**
         * @param type The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations.
         * 
         * @return builder
         * 
         */
        public Builder type(Either type) {
            return type(Output.of(type));
        }

        /**
         * @param type The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Either.ofLeft(type));
        }

        /**
         * @param type The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations.
         * 
         * @return builder
         * 
         */
        public Builder type(ExportType type) {
            return type(Either.ofRight(type));
        }

        public ExportDefinitionArgs build() {
            if ($.timeframe == null) {
                throw new MissingRequiredPropertyException("ExportDefinitionArgs", "timeframe");
            }
            if ($.type == null) {
                throw new MissingRequiredPropertyException("ExportDefinitionArgs", "type");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy