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

com.pulumi.azure.core.ResourceGroupCostManagementExportArgs 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.core;

import com.pulumi.azure.core.inputs.ResourceGroupCostManagementExportExportDataOptionsArgs;
import com.pulumi.azure.core.inputs.ResourceGroupCostManagementExportExportDataStorageLocationArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ResourceGroupCostManagementExportArgs Empty = new ResourceGroupCostManagementExportArgs();

    /**
     * Is the cost management export active? Default is `true`.
     * 
     */
    @Import(name="active")
    private @Nullable Output active;

    /**
     * @return Is the cost management export active? Default is `true`.
     * 
     */
    public Optional> active() {
        return Optional.ofNullable(this.active);
    }

    /**
     * A `export_data_options` block as defined below.
     * 
     */
    @Import(name="exportDataOptions", required=true)
    private Output exportDataOptions;

    /**
     * @return A `export_data_options` block as defined below.
     * 
     */
    public Output exportDataOptions() {
        return this.exportDataOptions;
    }

    /**
     * A `export_data_storage_location` block as defined below.
     * 
     */
    @Import(name="exportDataStorageLocation", required=true)
    private Output exportDataStorageLocation;

    /**
     * @return A `export_data_storage_location` block as defined below.
     * 
     */
    public Output exportDataStorageLocation() {
        return this.exportDataStorageLocation;
    }

    /**
     * Specifies the name of the Cost Management Export. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Specifies the name of the Cost Management Export. Changing this forces a new resource to be created.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The date the export will stop capturing information.
     * 
     */
    @Import(name="recurrencePeriodEndDate", required=true)
    private Output recurrencePeriodEndDate;

    /**
     * @return The date the export will stop capturing information.
     * 
     */
    public Output recurrencePeriodEndDate() {
        return this.recurrencePeriodEndDate;
    }

    /**
     * The date the export will start capturing information.
     * 
     */
    @Import(name="recurrencePeriodStartDate", required=true)
    private Output recurrencePeriodStartDate;

    /**
     * @return The date the export will start capturing information.
     * 
     */
    public Output recurrencePeriodStartDate() {
        return this.recurrencePeriodStartDate;
    }

    /**
     * How often the requested information will be exported. Valid values include `Annually`, `Daily`, `Monthly`, `Weekly`.
     * 
     */
    @Import(name="recurrenceType", required=true)
    private Output recurrenceType;

    /**
     * @return How often the requested information will be exported. Valid values include `Annually`, `Daily`, `Monthly`, `Weekly`.
     * 
     */
    public Output recurrenceType() {
        return this.recurrenceType;
    }

    /**
     * The id of the resource group on which to create an export. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="resourceGroupId", required=true)
    private Output resourceGroupId;

    /**
     * @return The id of the resource group on which to create an export. Changing this forces a new resource to be created.
     * 
     */
    public Output resourceGroupId() {
        return this.resourceGroupId;
    }

    private ResourceGroupCostManagementExportArgs() {}

    private ResourceGroupCostManagementExportArgs(ResourceGroupCostManagementExportArgs $) {
        this.active = $.active;
        this.exportDataOptions = $.exportDataOptions;
        this.exportDataStorageLocation = $.exportDataStorageLocation;
        this.name = $.name;
        this.recurrencePeriodEndDate = $.recurrencePeriodEndDate;
        this.recurrencePeriodStartDate = $.recurrencePeriodStartDate;
        this.recurrenceType = $.recurrenceType;
        this.resourceGroupId = $.resourceGroupId;
    }

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

    public static final class Builder {
        private ResourceGroupCostManagementExportArgs $;

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

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

        /**
         * @param active Is the cost management export active? Default is `true`.
         * 
         * @return builder
         * 
         */
        public Builder active(@Nullable Output active) {
            $.active = active;
            return this;
        }

        /**
         * @param active Is the cost management export active? Default is `true`.
         * 
         * @return builder
         * 
         */
        public Builder active(Boolean active) {
            return active(Output.of(active));
        }

        /**
         * @param exportDataOptions A `export_data_options` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder exportDataOptions(Output exportDataOptions) {
            $.exportDataOptions = exportDataOptions;
            return this;
        }

        /**
         * @param exportDataOptions A `export_data_options` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder exportDataOptions(ResourceGroupCostManagementExportExportDataOptionsArgs exportDataOptions) {
            return exportDataOptions(Output.of(exportDataOptions));
        }

        /**
         * @param exportDataStorageLocation A `export_data_storage_location` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder exportDataStorageLocation(Output exportDataStorageLocation) {
            $.exportDataStorageLocation = exportDataStorageLocation;
            return this;
        }

        /**
         * @param exportDataStorageLocation A `export_data_storage_location` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder exportDataStorageLocation(ResourceGroupCostManagementExportExportDataStorageLocationArgs exportDataStorageLocation) {
            return exportDataStorageLocation(Output.of(exportDataStorageLocation));
        }

        /**
         * @param name Specifies the name of the Cost Management Export. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Specifies the name of the Cost Management Export. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param recurrencePeriodEndDate The date the export will stop capturing information.
         * 
         * @return builder
         * 
         */
        public Builder recurrencePeriodEndDate(Output recurrencePeriodEndDate) {
            $.recurrencePeriodEndDate = recurrencePeriodEndDate;
            return this;
        }

        /**
         * @param recurrencePeriodEndDate The date the export will stop capturing information.
         * 
         * @return builder
         * 
         */
        public Builder recurrencePeriodEndDate(String recurrencePeriodEndDate) {
            return recurrencePeriodEndDate(Output.of(recurrencePeriodEndDate));
        }

        /**
         * @param recurrencePeriodStartDate The date the export will start capturing information.
         * 
         * @return builder
         * 
         */
        public Builder recurrencePeriodStartDate(Output recurrencePeriodStartDate) {
            $.recurrencePeriodStartDate = recurrencePeriodStartDate;
            return this;
        }

        /**
         * @param recurrencePeriodStartDate The date the export will start capturing information.
         * 
         * @return builder
         * 
         */
        public Builder recurrencePeriodStartDate(String recurrencePeriodStartDate) {
            return recurrencePeriodStartDate(Output.of(recurrencePeriodStartDate));
        }

        /**
         * @param recurrenceType How often the requested information will be exported. Valid values include `Annually`, `Daily`, `Monthly`, `Weekly`.
         * 
         * @return builder
         * 
         */
        public Builder recurrenceType(Output recurrenceType) {
            $.recurrenceType = recurrenceType;
            return this;
        }

        /**
         * @param recurrenceType How often the requested information will be exported. Valid values include `Annually`, `Daily`, `Monthly`, `Weekly`.
         * 
         * @return builder
         * 
         */
        public Builder recurrenceType(String recurrenceType) {
            return recurrenceType(Output.of(recurrenceType));
        }

        /**
         * @param resourceGroupId The id of the resource group on which to create an export. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupId(Output resourceGroupId) {
            $.resourceGroupId = resourceGroupId;
            return this;
        }

        /**
         * @param resourceGroupId The id of the resource group on which to create an export. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupId(String resourceGroupId) {
            return resourceGroupId(Output.of(resourceGroupId));
        }

        public ResourceGroupCostManagementExportArgs build() {
            if ($.exportDataOptions == null) {
                throw new MissingRequiredPropertyException("ResourceGroupCostManagementExportArgs", "exportDataOptions");
            }
            if ($.exportDataStorageLocation == null) {
                throw new MissingRequiredPropertyException("ResourceGroupCostManagementExportArgs", "exportDataStorageLocation");
            }
            if ($.recurrencePeriodEndDate == null) {
                throw new MissingRequiredPropertyException("ResourceGroupCostManagementExportArgs", "recurrencePeriodEndDate");
            }
            if ($.recurrencePeriodStartDate == null) {
                throw new MissingRequiredPropertyException("ResourceGroupCostManagementExportArgs", "recurrencePeriodStartDate");
            }
            if ($.recurrenceType == null) {
                throw new MissingRequiredPropertyException("ResourceGroupCostManagementExportArgs", "recurrenceType");
            }
            if ($.resourceGroupId == null) {
                throw new MissingRequiredPropertyException("ResourceGroupCostManagementExportArgs", "resourceGroupId");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy