BudgetSubscription

class BudgetSubscription : KotlinCustomResource

Manages a Subscription Consumption Budget.

Example Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.CoreFunctions;
import com.pulumi.azure.core.inputs.GetSubscriptionArgs;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.monitoring.ActionGroup;
import com.pulumi.azure.monitoring.ActionGroupArgs;
import com.pulumi.azure.consumption.BudgetSubscription;
import com.pulumi.azure.consumption.BudgetSubscriptionArgs;
import com.pulumi.azure.consumption.inputs.BudgetSubscriptionTimePeriodArgs;
import com.pulumi.azure.consumption.inputs.BudgetSubscriptionFilterArgs;
import com.pulumi.azure.consumption.inputs.BudgetSubscriptionNotificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var current = CoreFunctions.getSubscription();
var exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
.location("eastus")
.build());
var exampleActionGroup = new ActionGroup("exampleActionGroup", ActionGroupArgs.builder()
.resourceGroupName(exampleResourceGroup.name())
.shortName("example")
.build());
var exampleBudgetSubscription = new BudgetSubscription("exampleBudgetSubscription", BudgetSubscriptionArgs.builder()
.subscriptionId(current.applyValue(getSubscriptionResult -> getSubscriptionResult.id()))
.amount(1000)
.timeGrain("Monthly")
.timePeriod(BudgetSubscriptionTimePeriodArgs.builder()
.startDate("2022-06-01T00:00:00Z")
.endDate("2022-07-01T00:00:00Z")
.build())
.filter(BudgetSubscriptionFilterArgs.builder()
.dimensions(BudgetSubscriptionFilterDimensionArgs.builder()
.name("ResourceGroupName")
.values(exampleResourceGroup.name())
.build())
.tags(BudgetSubscriptionFilterTagArgs.builder()
.name("foo")
.values(
"bar",
"baz")
.build())
.build())
.notifications(
BudgetSubscriptionNotificationArgs.builder()
.enabled(true)
.threshold(90)
.operator("EqualTo")
.contactEmails(
"foo@example.com",
"bar@example.com")
.contactGroups(exampleActionGroup.id())
.contactRoles("Owner")
.build(),
BudgetSubscriptionNotificationArgs.builder()
.enabled(false)
.threshold(100)
.operator("GreaterThan")
.thresholdType("Forecasted")
.contactEmails(
"foo@example.com",
"bar@example.com")
.build())
.build());
}
}

Import

Subscription Consumption Budgets can be imported using the resource id, e.g.

$ pulumi import azure:consumption/budgetSubscription:BudgetSubscription example /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Consumption/budgets/subscription1

Properties

Link copied to clipboard
val amount: Output<Double>

The total amount of cost to track with the budget.

Link copied to clipboard
val etag: Output<String>

(Optional) The ETag of the Subscription Consumption Budget.

Link copied to clipboard

A filter block as defined below.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val name: Output<String>

The name which should be used for this Subscription Consumption Budget. Changing this forces a new resource to be created.

Link copied to clipboard

One or more notification blocks as defined below.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val subscriptionId: Output<String>

The ID of the Subscription for which to create a Consumption Budget. Changing this forces a new resource to be created.

Link copied to clipboard
val timeGrain: Output<String>?

The time covered by a budget. Tracking of the amount will be reset based on the time grain. Must be one of BillingAnnual, BillingMonth, BillingQuarter, Annually, Monthly and Quarterly. Defaults to Monthly. Changing this forces a new resource to be created.

Link copied to clipboard

A time_period block as defined below.

Link copied to clipboard
val urn: Output<String>