Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.azurenative.costmanagement.BudgetArgs Maven / Gradle / Ivy
Go to download
A native Pulumi package for creating and managing Azure resources.
// *** 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;
import com.pulumi.azurenative.costmanagement.enums.CategoryType;
import com.pulumi.azurenative.costmanagement.enums.TimeGrainType;
import com.pulumi.azurenative.costmanagement.inputs.BudgetFilterArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetTimePeriodArgs;
import com.pulumi.azurenative.costmanagement.inputs.NotificationArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Double;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class BudgetArgs extends com.pulumi.resources.ResourceArgs {
public static final BudgetArgs Empty = new BudgetArgs();
/**
* The total amount of cost to track with the budget.
*
* Supported for CategoryType(s): Cost.
*
* Required for CategoryType(s): Cost.
*
*/
@Import(name="amount")
private @Nullable Output amount;
/**
* @return The total amount of cost to track with the budget.
*
* Supported for CategoryType(s): Cost.
*
* Required for CategoryType(s): Cost.
*
*/
public Optional> amount() {
return Optional.ofNullable(this.amount);
}
/**
* Budget Name.
*
*/
@Import(name="budgetName")
private @Nullable Output budgetName;
/**
* @return Budget Name.
*
*/
public Optional> budgetName() {
return Optional.ofNullable(this.budgetName);
}
/**
* The category of the budget.
* - 'Cost' defines a Budget.
* - 'ReservationUtilization' defines a Reservation Utilization Alert Rule.
*
*/
@Import(name="category", required=true)
private Output> category;
/**
* @return The category of the budget.
* - 'Cost' defines a Budget.
* - 'ReservationUtilization' defines a Reservation Utilization Alert Rule.
*
*/
public Output> category() {
return this.category;
}
/**
* 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.
*
*/
@Import(name="eTag")
private @Nullable Output eTag;
/**
* @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);
}
/**
* May be used to filter budgets by user-specified dimensions and/or tags.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
*/
@Import(name="filter")
private @Nullable Output filter;
/**
* @return May be used to filter budgets by user-specified dimensions and/or tags.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
*/
public Optional> filter() {
return Optional.ofNullable(this.filter);
}
/**
* Dictionary of notifications associated with the budget.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* - Constraints for **CategoryType: Cost** - Budget can have up to 5 notifications with thresholdType: Actual and 5 notifications with thresholdType: Forecasted.
* - Constraints for **CategoryType: ReservationUtilization** - Only one notification allowed. thresholdType is not applicable.
*
*/
@Import(name="notifications")
private @Nullable Output> notifications;
/**
* @return Dictionary of notifications associated with the budget.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* - Constraints for **CategoryType: Cost** - Budget can have up to 5 notifications with thresholdType: Actual and 5 notifications with thresholdType: Forecasted.
* - Constraints for **CategoryType: ReservationUtilization** - Only one notification allowed. thresholdType is not applicable.
*
*/
public Optional>> notifications() {
return Optional.ofNullable(this.notifications);
}
/**
* The scope associated with budget operations.
*
* Supported scopes for **CategoryType: Cost**
*
* Azure RBAC Scopes:
* - '/subscriptions/{subscriptionId}/' for subscription scope
* - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope
* - '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope
*
* EA (Enterprise Agreement) Scopes:
*
* - '/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
*
* MCA (Modern Customer Agreement) Scopes:
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' for invoiceSection scope
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' for customer scope (CSP only)
*
* Supported scopes for **CategoryType: ReservationUtilization**
*
* EA (Enterprise Agreement) Scopes:
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account Scope
*
* MCA (Modern Customer Agreement) Scopes:
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope (non-CSP only)
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' for customer scope (CSP only)
*
*/
@Import(name="scope", required=true)
private Output scope;
/**
* @return The scope associated with budget operations.
*
* Supported scopes for **CategoryType: Cost**
*
* Azure RBAC Scopes:
* - '/subscriptions/{subscriptionId}/' for subscription scope
* - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope
* - '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope
*
* EA (Enterprise Agreement) Scopes:
*
* - '/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
*
* MCA (Modern Customer Agreement) Scopes:
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' for invoiceSection scope
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' for customer scope (CSP only)
*
* Supported scopes for **CategoryType: ReservationUtilization**
*
* EA (Enterprise Agreement) Scopes:
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account Scope
*
* MCA (Modern Customer Agreement) Scopes:
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope (non-CSP only)
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' for customer scope (CSP only)
*
*/
public Output scope() {
return this.scope;
}
/**
* The time covered by a budget. Tracking of the amount will be reset based on the time grain.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* Supported timeGrainTypes for **CategoryType: Cost**
*
* - Monthly
* - Quarterly
* - Annually
* - BillingMonth*
* - BillingQuarter*
* - BillingAnnual*
*
* *only supported for Web Direct customers.
*
* Supported timeGrainTypes for **CategoryType: ReservationUtilization**
* - Last7Days
* - Last30Days
*
* Required for CategoryType(s): Cost, ReservationUtilization.
*
*/
@Import(name="timeGrain", required=true)
private Output> timeGrain;
/**
* @return The time covered by a budget. Tracking of the amount will be reset based on the time grain.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* Supported timeGrainTypes for **CategoryType: Cost**
*
* - Monthly
* - Quarterly
* - Annually
* - BillingMonth*
* - BillingQuarter*
* - BillingAnnual*
*
* *only supported for Web Direct customers.
*
* Supported timeGrainTypes for **CategoryType: ReservationUtilization**
* - Last7Days
* - Last30Days
*
* Required for CategoryType(s): Cost, ReservationUtilization.
*
*/
public Output> timeGrain() {
return this.timeGrain;
}
/**
* The time period that defines the active period of the budget. The budget will evaluate data on or after the startDate and will expire on the endDate.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* Required for CategoryType(s): Cost, ReservationUtilization.
*
*/
@Import(name="timePeriod", required=true)
private Output timePeriod;
/**
* @return The time period that defines the active period of the budget. The budget will evaluate data on or after the startDate and will expire on the endDate.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* Required for CategoryType(s): Cost, ReservationUtilization.
*
*/
public Output timePeriod() {
return this.timePeriod;
}
private BudgetArgs() {}
private BudgetArgs(BudgetArgs $) {
this.amount = $.amount;
this.budgetName = $.budgetName;
this.category = $.category;
this.eTag = $.eTag;
this.filter = $.filter;
this.notifications = $.notifications;
this.scope = $.scope;
this.timeGrain = $.timeGrain;
this.timePeriod = $.timePeriod;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(BudgetArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private BudgetArgs $;
public Builder() {
$ = new BudgetArgs();
}
public Builder(BudgetArgs defaults) {
$ = new BudgetArgs(Objects.requireNonNull(defaults));
}
/**
* @param amount The total amount of cost to track with the budget.
*
* Supported for CategoryType(s): Cost.
*
* Required for CategoryType(s): Cost.
*
* @return builder
*
*/
public Builder amount(@Nullable Output amount) {
$.amount = amount;
return this;
}
/**
* @param amount The total amount of cost to track with the budget.
*
* Supported for CategoryType(s): Cost.
*
* Required for CategoryType(s): Cost.
*
* @return builder
*
*/
public Builder amount(Double amount) {
return amount(Output.of(amount));
}
/**
* @param budgetName Budget Name.
*
* @return builder
*
*/
public Builder budgetName(@Nullable Output budgetName) {
$.budgetName = budgetName;
return this;
}
/**
* @param budgetName Budget Name.
*
* @return builder
*
*/
public Builder budgetName(String budgetName) {
return budgetName(Output.of(budgetName));
}
/**
* @param category The category of the budget.
* - 'Cost' defines a Budget.
* - 'ReservationUtilization' defines a Reservation Utilization Alert Rule.
*
* @return builder
*
*/
public Builder category(Output> category) {
$.category = category;
return this;
}
/**
* @param category The category of the budget.
* - 'Cost' defines a Budget.
* - 'ReservationUtilization' defines a Reservation Utilization Alert Rule.
*
* @return builder
*
*/
public Builder category(Either category) {
return category(Output.of(category));
}
/**
* @param category The category of the budget.
* - 'Cost' defines a Budget.
* - 'ReservationUtilization' defines a Reservation Utilization Alert Rule.
*
* @return builder
*
*/
public Builder category(String category) {
return category(Either.ofLeft(category));
}
/**
* @param category The category of the budget.
* - 'Cost' defines a Budget.
* - 'ReservationUtilization' defines a Reservation Utilization Alert Rule.
*
* @return builder
*
*/
public Builder category(CategoryType category) {
return category(Either.ofRight(category));
}
/**
* @param eTag 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.
*
* @return builder
*
*/
public Builder eTag(@Nullable Output eTag) {
$.eTag = eTag;
return this;
}
/**
* @param eTag 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.
*
* @return builder
*
*/
public Builder eTag(String eTag) {
return eTag(Output.of(eTag));
}
/**
* @param filter May be used to filter budgets by user-specified dimensions and/or tags.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* @return builder
*
*/
public Builder filter(@Nullable Output filter) {
$.filter = filter;
return this;
}
/**
* @param filter May be used to filter budgets by user-specified dimensions and/or tags.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* @return builder
*
*/
public Builder filter(BudgetFilterArgs filter) {
return filter(Output.of(filter));
}
/**
* @param notifications Dictionary of notifications associated with the budget.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* - Constraints for **CategoryType: Cost** - Budget can have up to 5 notifications with thresholdType: Actual and 5 notifications with thresholdType: Forecasted.
* - Constraints for **CategoryType: ReservationUtilization** - Only one notification allowed. thresholdType is not applicable.
*
* @return builder
*
*/
public Builder notifications(@Nullable Output> notifications) {
$.notifications = notifications;
return this;
}
/**
* @param notifications Dictionary of notifications associated with the budget.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* - Constraints for **CategoryType: Cost** - Budget can have up to 5 notifications with thresholdType: Actual and 5 notifications with thresholdType: Forecasted.
* - Constraints for **CategoryType: ReservationUtilization** - Only one notification allowed. thresholdType is not applicable.
*
* @return builder
*
*/
public Builder notifications(Map notifications) {
return notifications(Output.of(notifications));
}
/**
* @param scope The scope associated with budget operations.
*
* Supported scopes for **CategoryType: Cost**
*
* Azure RBAC Scopes:
* - '/subscriptions/{subscriptionId}/' for subscription scope
* - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope
* - '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope
*
* EA (Enterprise Agreement) Scopes:
*
* - '/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
*
* MCA (Modern Customer Agreement) Scopes:
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' for invoiceSection scope
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' for customer scope (CSP only)
*
* Supported scopes for **CategoryType: ReservationUtilization**
*
* EA (Enterprise Agreement) Scopes:
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account Scope
*
* MCA (Modern Customer Agreement) Scopes:
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope (non-CSP only)
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' for customer scope (CSP only)
*
* @return builder
*
*/
public Builder scope(Output scope) {
$.scope = scope;
return this;
}
/**
* @param scope The scope associated with budget operations.
*
* Supported scopes for **CategoryType: Cost**
*
* Azure RBAC Scopes:
* - '/subscriptions/{subscriptionId}/' for subscription scope
* - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope
* - '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope
*
* EA (Enterprise Agreement) Scopes:
*
* - '/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
*
* MCA (Modern Customer Agreement) Scopes:
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' for invoiceSection scope
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' for customer scope (CSP only)
*
* Supported scopes for **CategoryType: ReservationUtilization**
*
* EA (Enterprise Agreement) Scopes:
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account Scope
*
* MCA (Modern Customer Agreement) Scopes:
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope (non-CSP only)
* - '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' for customer scope (CSP only)
*
* @return builder
*
*/
public Builder scope(String scope) {
return scope(Output.of(scope));
}
/**
* @param timeGrain The time covered by a budget. Tracking of the amount will be reset based on the time grain.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* Supported timeGrainTypes for **CategoryType: Cost**
*
* - Monthly
* - Quarterly
* - Annually
* - BillingMonth*
* - BillingQuarter*
* - BillingAnnual*
*
* *only supported for Web Direct customers.
*
* Supported timeGrainTypes for **CategoryType: ReservationUtilization**
* - Last7Days
* - Last30Days
*
* Required for CategoryType(s): Cost, ReservationUtilization.
*
* @return builder
*
*/
public Builder timeGrain(Output> timeGrain) {
$.timeGrain = timeGrain;
return this;
}
/**
* @param timeGrain The time covered by a budget. Tracking of the amount will be reset based on the time grain.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* Supported timeGrainTypes for **CategoryType: Cost**
*
* - Monthly
* - Quarterly
* - Annually
* - BillingMonth*
* - BillingQuarter*
* - BillingAnnual*
*
* *only supported for Web Direct customers.
*
* Supported timeGrainTypes for **CategoryType: ReservationUtilization**
* - Last7Days
* - Last30Days
*
* Required for CategoryType(s): Cost, ReservationUtilization.
*
* @return builder
*
*/
public Builder timeGrain(Either timeGrain) {
return timeGrain(Output.of(timeGrain));
}
/**
* @param timeGrain The time covered by a budget. Tracking of the amount will be reset based on the time grain.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* Supported timeGrainTypes for **CategoryType: Cost**
*
* - Monthly
* - Quarterly
* - Annually
* - BillingMonth*
* - BillingQuarter*
* - BillingAnnual*
*
* *only supported for Web Direct customers.
*
* Supported timeGrainTypes for **CategoryType: ReservationUtilization**
* - Last7Days
* - Last30Days
*
* Required for CategoryType(s): Cost, ReservationUtilization.
*
* @return builder
*
*/
public Builder timeGrain(String timeGrain) {
return timeGrain(Either.ofLeft(timeGrain));
}
/**
* @param timeGrain The time covered by a budget. Tracking of the amount will be reset based on the time grain.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* Supported timeGrainTypes for **CategoryType: Cost**
*
* - Monthly
* - Quarterly
* - Annually
* - BillingMonth*
* - BillingQuarter*
* - BillingAnnual*
*
* *only supported for Web Direct customers.
*
* Supported timeGrainTypes for **CategoryType: ReservationUtilization**
* - Last7Days
* - Last30Days
*
* Required for CategoryType(s): Cost, ReservationUtilization.
*
* @return builder
*
*/
public Builder timeGrain(TimeGrainType timeGrain) {
return timeGrain(Either.ofRight(timeGrain));
}
/**
* @param timePeriod The time period that defines the active period of the budget. The budget will evaluate data on or after the startDate and will expire on the endDate.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* Required for CategoryType(s): Cost, ReservationUtilization.
*
* @return builder
*
*/
public Builder timePeriod(Output timePeriod) {
$.timePeriod = timePeriod;
return this;
}
/**
* @param timePeriod The time period that defines the active period of the budget. The budget will evaluate data on or after the startDate and will expire on the endDate.
*
* Supported for CategoryType(s): Cost, ReservationUtilization.
*
* Required for CategoryType(s): Cost, ReservationUtilization.
*
* @return builder
*
*/
public Builder timePeriod(BudgetTimePeriodArgs timePeriod) {
return timePeriod(Output.of(timePeriod));
}
public BudgetArgs build() {
if ($.category == null) {
throw new MissingRequiredPropertyException("BudgetArgs", "category");
}
if ($.scope == null) {
throw new MissingRequiredPropertyException("BudgetArgs", "scope");
}
if ($.timeGrain == null) {
throw new MissingRequiredPropertyException("BudgetArgs", "timeGrain");
}
if ($.timePeriod == null) {
throw new MissingRequiredPropertyException("BudgetArgs", "timePeriod");
}
return $;
}
}
}