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

com.pulumi.azurenative.costmanagement.outputs.GetViewResult Maven / Gradle / Ivy

// *** 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.outputs;

import com.pulumi.azurenative.costmanagement.outputs.KpiPropertiesResponse;
import com.pulumi.azurenative.costmanagement.outputs.PivotPropertiesResponse;
import com.pulumi.azurenative.costmanagement.outputs.ReportConfigDatasetResponse;
import com.pulumi.azurenative.costmanagement.outputs.ReportConfigTimePeriodResponse;
import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class GetViewResult {
    /**
     * @return Show costs accumulated over time.
     * 
     */
    private @Nullable String accumulated;
    /**
     * @return Chart type of the main view in Cost Analysis. Required.
     * 
     */
    private @Nullable String chart;
    /**
     * @return Date the user created this view.
     * 
     */
    private String createdOn;
    /**
     * @return Currency of the current view.
     * 
     */
    private String currency;
    /**
     * @return Has definition for data in this report config.
     * 
     */
    private @Nullable ReportConfigDatasetResponse dataSet;
    /**
     * @return Date range of the current view.
     * 
     */
    private @Nullable String dateRange;
    /**
     * @return User input name of the view. Required.
     * 
     */
    private @Nullable String displayName;
    /**
     * @return eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not.
     * 
     */
    private @Nullable String eTag;
    /**
     * @return Resource Id.
     * 
     */
    private String id;
    /**
     * @return If true, report includes monetary commitment.
     * 
     */
    private @Nullable Boolean includeMonetaryCommitment;
    /**
     * @return List of KPIs to show in Cost Analysis UI.
     * 
     */
    private @Nullable List kpis;
    /**
     * @return Metric to use when displaying costs.
     * 
     */
    private @Nullable String metric;
    /**
     * @return Date when the user last modified this view.
     * 
     */
    private @Nullable String modifiedOn;
    /**
     * @return Resource name.
     * 
     */
    private String name;
    /**
     * @return Configuration of 3 sub-views in the Cost Analysis UI.
     * 
     */
    private @Nullable List pivots;
    /**
     * @return Cost Management scope to save the view on. This includes 'subscriptions/{subscriptionId}' for subscription scope, 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for BillingProfile scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope, '/providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for ExternalBillingAccount scope, and '/providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for ExternalSubscription scope.
     * 
     */
    private @Nullable String scope;
    /**
     * @return Has time period for pulling data for the report.
     * 
     */
    private @Nullable ReportConfigTimePeriodResponse timePeriod;
    /**
     * @return The time frame for pulling data for the report. If custom, then a specific time period must be provided.
     * 
     */
    private String timeframe;
    /**
     * @return Resource type.
     * 
     */
    private String type;

    private GetViewResult() {}
    /**
     * @return Show costs accumulated over time.
     * 
     */
    public Optional accumulated() {
        return Optional.ofNullable(this.accumulated);
    }
    /**
     * @return Chart type of the main view in Cost Analysis. Required.
     * 
     */
    public Optional chart() {
        return Optional.ofNullable(this.chart);
    }
    /**
     * @return Date the user created this view.
     * 
     */
    public String createdOn() {
        return this.createdOn;
    }
    /**
     * @return Currency of the current view.
     * 
     */
    public String currency() {
        return this.currency;
    }
    /**
     * @return Has definition for data in this report config.
     * 
     */
    public Optional dataSet() {
        return Optional.ofNullable(this.dataSet);
    }
    /**
     * @return Date range of the current view.
     * 
     */
    public Optional dateRange() {
        return Optional.ofNullable(this.dateRange);
    }
    /**
     * @return User input name of the view. Required.
     * 
     */
    public Optional displayName() {
        return Optional.ofNullable(this.displayName);
    }
    /**
     * @return eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not.
     * 
     */
    public Optional eTag() {
        return Optional.ofNullable(this.eTag);
    }
    /**
     * @return Resource Id.
     * 
     */
    public String id() {
        return this.id;
    }
    /**
     * @return If true, report includes monetary commitment.
     * 
     */
    public Optional includeMonetaryCommitment() {
        return Optional.ofNullable(this.includeMonetaryCommitment);
    }
    /**
     * @return List of KPIs to show in Cost Analysis UI.
     * 
     */
    public List kpis() {
        return this.kpis == null ? List.of() : this.kpis;
    }
    /**
     * @return Metric to use when displaying costs.
     * 
     */
    public Optional metric() {
        return Optional.ofNullable(this.metric);
    }
    /**
     * @return Date when the user last modified this view.
     * 
     */
    public Optional modifiedOn() {
        return Optional.ofNullable(this.modifiedOn);
    }
    /**
     * @return Resource name.
     * 
     */
    public String name() {
        return this.name;
    }
    /**
     * @return Configuration of 3 sub-views in the Cost Analysis UI.
     * 
     */
    public List pivots() {
        return this.pivots == null ? List.of() : this.pivots;
    }
    /**
     * @return Cost Management scope to save the view on. This includes 'subscriptions/{subscriptionId}' for subscription scope, 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for BillingProfile scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope, '/providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for ExternalBillingAccount scope, and '/providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for ExternalSubscription scope.
     * 
     */
    public Optional scope() {
        return Optional.ofNullable(this.scope);
    }
    /**
     * @return Has time period for pulling data for the report.
     * 
     */
    public Optional timePeriod() {
        return Optional.ofNullable(this.timePeriod);
    }
    /**
     * @return The time frame for pulling data for the report. If custom, then a specific time period must be provided.
     * 
     */
    public String timeframe() {
        return this.timeframe;
    }
    /**
     * @return Resource type.
     * 
     */
    public String type() {
        return this.type;
    }

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

    public static Builder builder(GetViewResult defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable String accumulated;
        private @Nullable String chart;
        private String createdOn;
        private String currency;
        private @Nullable ReportConfigDatasetResponse dataSet;
        private @Nullable String dateRange;
        private @Nullable String displayName;
        private @Nullable String eTag;
        private String id;
        private @Nullable Boolean includeMonetaryCommitment;
        private @Nullable List kpis;
        private @Nullable String metric;
        private @Nullable String modifiedOn;
        private String name;
        private @Nullable List pivots;
        private @Nullable String scope;
        private @Nullable ReportConfigTimePeriodResponse timePeriod;
        private String timeframe;
        private String type;
        public Builder() {}
        public Builder(GetViewResult defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.accumulated = defaults.accumulated;
    	      this.chart = defaults.chart;
    	      this.createdOn = defaults.createdOn;
    	      this.currency = defaults.currency;
    	      this.dataSet = defaults.dataSet;
    	      this.dateRange = defaults.dateRange;
    	      this.displayName = defaults.displayName;
    	      this.eTag = defaults.eTag;
    	      this.id = defaults.id;
    	      this.includeMonetaryCommitment = defaults.includeMonetaryCommitment;
    	      this.kpis = defaults.kpis;
    	      this.metric = defaults.metric;
    	      this.modifiedOn = defaults.modifiedOn;
    	      this.name = defaults.name;
    	      this.pivots = defaults.pivots;
    	      this.scope = defaults.scope;
    	      this.timePeriod = defaults.timePeriod;
    	      this.timeframe = defaults.timeframe;
    	      this.type = defaults.type;
        }

        @CustomType.Setter
        public Builder accumulated(@Nullable String accumulated) {

            this.accumulated = accumulated;
            return this;
        }
        @CustomType.Setter
        public Builder chart(@Nullable String chart) {

            this.chart = chart;
            return this;
        }
        @CustomType.Setter
        public Builder createdOn(String createdOn) {
            if (createdOn == null) {
              throw new MissingRequiredPropertyException("GetViewResult", "createdOn");
            }
            this.createdOn = createdOn;
            return this;
        }
        @CustomType.Setter
        public Builder currency(String currency) {
            if (currency == null) {
              throw new MissingRequiredPropertyException("GetViewResult", "currency");
            }
            this.currency = currency;
            return this;
        }
        @CustomType.Setter
        public Builder dataSet(@Nullable ReportConfigDatasetResponse dataSet) {

            this.dataSet = dataSet;
            return this;
        }
        @CustomType.Setter
        public Builder dateRange(@Nullable String dateRange) {

            this.dateRange = dateRange;
            return this;
        }
        @CustomType.Setter
        public Builder displayName(@Nullable String displayName) {

            this.displayName = displayName;
            return this;
        }
        @CustomType.Setter
        public Builder eTag(@Nullable String eTag) {

            this.eTag = eTag;
            return this;
        }
        @CustomType.Setter
        public Builder id(String id) {
            if (id == null) {
              throw new MissingRequiredPropertyException("GetViewResult", "id");
            }
            this.id = id;
            return this;
        }
        @CustomType.Setter
        public Builder includeMonetaryCommitment(@Nullable Boolean includeMonetaryCommitment) {

            this.includeMonetaryCommitment = includeMonetaryCommitment;
            return this;
        }
        @CustomType.Setter
        public Builder kpis(@Nullable List kpis) {

            this.kpis = kpis;
            return this;
        }
        public Builder kpis(KpiPropertiesResponse... kpis) {
            return kpis(List.of(kpis));
        }
        @CustomType.Setter
        public Builder metric(@Nullable String metric) {

            this.metric = metric;
            return this;
        }
        @CustomType.Setter
        public Builder modifiedOn(@Nullable String modifiedOn) {

            this.modifiedOn = modifiedOn;
            return this;
        }
        @CustomType.Setter
        public Builder name(String name) {
            if (name == null) {
              throw new MissingRequiredPropertyException("GetViewResult", "name");
            }
            this.name = name;
            return this;
        }
        @CustomType.Setter
        public Builder pivots(@Nullable List pivots) {

            this.pivots = pivots;
            return this;
        }
        public Builder pivots(PivotPropertiesResponse... pivots) {
            return pivots(List.of(pivots));
        }
        @CustomType.Setter
        public Builder scope(@Nullable String scope) {

            this.scope = scope;
            return this;
        }
        @CustomType.Setter
        public Builder timePeriod(@Nullable ReportConfigTimePeriodResponse timePeriod) {

            this.timePeriod = timePeriod;
            return this;
        }
        @CustomType.Setter
        public Builder timeframe(String timeframe) {
            if (timeframe == null) {
              throw new MissingRequiredPropertyException("GetViewResult", "timeframe");
            }
            this.timeframe = timeframe;
            return this;
        }
        @CustomType.Setter
        public Builder type(String type) {
            if (type == null) {
              throw new MissingRequiredPropertyException("GetViewResult", "type");
            }
            this.type = type;
            return this;
        }
        public GetViewResult build() {
            final var _resultValue = new GetViewResult();
            _resultValue.accumulated = accumulated;
            _resultValue.chart = chart;
            _resultValue.createdOn = createdOn;
            _resultValue.currency = currency;
            _resultValue.dataSet = dataSet;
            _resultValue.dateRange = dateRange;
            _resultValue.displayName = displayName;
            _resultValue.eTag = eTag;
            _resultValue.id = id;
            _resultValue.includeMonetaryCommitment = includeMonetaryCommitment;
            _resultValue.kpis = kpis;
            _resultValue.metric = metric;
            _resultValue.modifiedOn = modifiedOn;
            _resultValue.name = name;
            _resultValue.pivots = pivots;
            _resultValue.scope = scope;
            _resultValue.timePeriod = timePeriod;
            _resultValue.timeframe = timeframe;
            _resultValue.type = type;
            return _resultValue;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy