azure-native.costmanagement.Budget
Explore with Pulumi AI
A budget resource. Azure REST API version: 2023-04-01-preview.
Other available API versions: 2019-04-01-preview, 2023-08-01, 2023-09-01, 2023-11-01, 2024-08-01.
Example Usage
CreateOrUpdate-Cost-Subscription-Budget
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() => 
{
    var budget = new AzureNative.CostManagement.Budget("budget", new()
    {
        Amount = 100.65,
        BudgetName = "TestBudget",
        Category = AzureNative.CostManagement.CategoryType.Cost,
        ETag = "\"1d34d016a593709\"",
        Filter = new AzureNative.CostManagement.Inputs.BudgetFilterArgs
        {
            And = new[]
            {
                new AzureNative.CostManagement.Inputs.BudgetFilterPropertiesArgs
                {
                    Dimensions = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
                    {
                        Name = "ResourceId",
                        Operator = AzureNative.CostManagement.BudgetOperatorType.In,
                        Values = new[]
                        {
                            "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MSVM2",
                            "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1",
                        },
                    },
                },
                new AzureNative.CostManagement.Inputs.BudgetFilterPropertiesArgs
                {
                    Tags = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
                    {
                        Name = "category",
                        Operator = AzureNative.CostManagement.BudgetOperatorType.In,
                        Values = new[]
                        {
                            "Dev",
                            "Prod",
                        },
                    },
                },
                new AzureNative.CostManagement.Inputs.BudgetFilterPropertiesArgs
                {
                    Tags = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
                    {
                        Name = "department",
                        Operator = AzureNative.CostManagement.BudgetOperatorType.In,
                        Values = new[]
                        {
                            "engineering",
                            "sales",
                        },
                    },
                },
            },
        },
        Notifications = 
        {
            { "Actual_GreaterThan_80_Percent", new AzureNative.CostManagement.Inputs.NotificationArgs
            {
                ContactEmails = new[]
                {
                    "johndoe@contoso.com",
                    "janesmith@contoso.com",
                },
                ContactGroups = new[]
                {
                    "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup",
                },
                ContactRoles = new[]
                {
                    "Contributor",
                    "Reader",
                },
                Enabled = true,
                Locale = AzureNative.CostManagement.CultureCode.En_us,
                Operator = AzureNative.CostManagement.BudgetNotificationOperatorType.GreaterThan,
                Threshold = 80,
                ThresholdType = AzureNative.CostManagement.ThresholdType.Actual,
            } },
        },
        Scope = "subscriptions/00000000-0000-0000-0000-000000000000",
        TimeGrain = AzureNative.CostManagement.TimeGrainType.Monthly,
        TimePeriod = new AzureNative.CostManagement.Inputs.BudgetTimePeriodArgs
        {
            EndDate = "2024-10-31T00:00:00Z",
            StartDate = "2023-04-01T00:00:00Z",
        },
    });
});
package main
import (
	costmanagement "github.com/pulumi/pulumi-azure-native-sdk/costmanagement/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := costmanagement.NewBudget(ctx, "budget", &costmanagement.BudgetArgs{
			Amount:     pulumi.Float64(100.65),
			BudgetName: pulumi.String("TestBudget"),
			Category:   pulumi.String(costmanagement.CategoryTypeCost),
			ETag:       pulumi.String("\"1d34d016a593709\""),
			Filter: &costmanagement.BudgetFilterArgs{
				And: costmanagement.BudgetFilterPropertiesArray{
					&costmanagement.BudgetFilterPropertiesArgs{
						Dimensions: &costmanagement.BudgetComparisonExpressionArgs{
							Name:     pulumi.String("ResourceId"),
							Operator: pulumi.String(costmanagement.BudgetOperatorTypeIn),
							Values: pulumi.StringArray{
								pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MSVM2"),
								pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1"),
							},
						},
					},
					&costmanagement.BudgetFilterPropertiesArgs{
						Tags: &costmanagement.BudgetComparisonExpressionArgs{
							Name:     pulumi.String("category"),
							Operator: pulumi.String(costmanagement.BudgetOperatorTypeIn),
							Values: pulumi.StringArray{
								pulumi.String("Dev"),
								pulumi.String("Prod"),
							},
						},
					},
					&costmanagement.BudgetFilterPropertiesArgs{
						Tags: &costmanagement.BudgetComparisonExpressionArgs{
							Name:     pulumi.String("department"),
							Operator: pulumi.String(costmanagement.BudgetOperatorTypeIn),
							Values: pulumi.StringArray{
								pulumi.String("engineering"),
								pulumi.String("sales"),
							},
						},
					},
				},
			},
			Notifications: costmanagement.NotificationMap{
				"Actual_GreaterThan_80_Percent": &costmanagement.NotificationArgs{
					ContactEmails: pulumi.StringArray{
						pulumi.String("johndoe@contoso.com"),
						pulumi.String("janesmith@contoso.com"),
					},
					ContactGroups: pulumi.StringArray{
						pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup"),
					},
					ContactRoles: pulumi.StringArray{
						pulumi.String("Contributor"),
						pulumi.String("Reader"),
					},
					Enabled:       pulumi.Bool(true),
					Locale:        pulumi.String(costmanagement.CultureCode_En_Us),
					Operator:      pulumi.String(costmanagement.BudgetNotificationOperatorTypeGreaterThan),
					Threshold:     pulumi.Float64(80),
					ThresholdType: pulumi.String(costmanagement.ThresholdTypeActual),
				},
			},
			Scope:     pulumi.String("subscriptions/00000000-0000-0000-0000-000000000000"),
			TimeGrain: pulumi.String(costmanagement.TimeGrainTypeMonthly),
			TimePeriod: &costmanagement.BudgetTimePeriodArgs{
				EndDate:   pulumi.String("2024-10-31T00:00:00Z"),
				StartDate: pulumi.String("2023-04-01T00:00:00Z"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.costmanagement.Budget;
import com.pulumi.azurenative.costmanagement.BudgetArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetFilterArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetTimePeriodArgs;
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) {
        var budget = new Budget("budget", BudgetArgs.builder()
            .amount(100.65)
            .budgetName("TestBudget")
            .category("Cost")
            .eTag("\"1d34d016a593709\"")
            .filter(BudgetFilterArgs.builder()
                .and(                
                    BudgetFilterPropertiesArgs.builder()
                        .dimensions(BudgetComparisonExpressionArgs.builder()
                            .name("ResourceId")
                            .operator("In")
                            .values(                            
                                "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MSVM2",
                                "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1")
                            .build())
                        .build(),
                    BudgetFilterPropertiesArgs.builder()
                        .tags(BudgetComparisonExpressionArgs.builder()
                            .name("category")
                            .operator("In")
                            .values(                            
                                "Dev",
                                "Prod")
                            .build())
                        .build(),
                    BudgetFilterPropertiesArgs.builder()
                        .tags(BudgetComparisonExpressionArgs.builder()
                            .name("department")
                            .operator("In")
                            .values(                            
                                "engineering",
                                "sales")
                            .build())
                        .build())
                .build())
            .notifications(Map.of("Actual_GreaterThan_80_Percent", Map.ofEntries(
                Map.entry("contactEmails",                 
                    "johndoe@contoso.com",
                    "janesmith@contoso.com"),
                Map.entry("contactGroups", "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup"),
                Map.entry("contactRoles",                 
                    "Contributor",
                    "Reader"),
                Map.entry("enabled", true),
                Map.entry("locale", "en-us"),
                Map.entry("operator", "GreaterThan"),
                Map.entry("threshold", 80),
                Map.entry("thresholdType", "Actual")
            )))
            .scope("subscriptions/00000000-0000-0000-0000-000000000000")
            .timeGrain("Monthly")
            .timePeriod(BudgetTimePeriodArgs.builder()
                .endDate("2024-10-31T00:00:00Z")
                .startDate("2023-04-01T00:00:00Z")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const budget = new azure_native.costmanagement.Budget("budget", {
    amount: 100.65,
    budgetName: "TestBudget",
    category: azure_native.costmanagement.CategoryType.Cost,
    eTag: "\"1d34d016a593709\"",
    filter: {
        and: [
            {
                dimensions: {
                    name: "ResourceId",
                    operator: azure_native.costmanagement.BudgetOperatorType.In,
                    values: [
                        "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MSVM2",
                        "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1",
                    ],
                },
            },
            {
                tags: {
                    name: "category",
                    operator: azure_native.costmanagement.BudgetOperatorType.In,
                    values: [
                        "Dev",
                        "Prod",
                    ],
                },
            },
            {
                tags: {
                    name: "department",
                    operator: azure_native.costmanagement.BudgetOperatorType.In,
                    values: [
                        "engineering",
                        "sales",
                    ],
                },
            },
        ],
    },
    notifications: {
        Actual_GreaterThan_80_Percent: {
            contactEmails: [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            contactGroups: ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup"],
            contactRoles: [
                "Contributor",
                "Reader",
            ],
            enabled: true,
            locale: azure_native.costmanagement.CultureCode.En_us,
            operator: azure_native.costmanagement.BudgetNotificationOperatorType.GreaterThan,
            threshold: 80,
            thresholdType: azure_native.costmanagement.ThresholdType.Actual,
        },
    },
    scope: "subscriptions/00000000-0000-0000-0000-000000000000",
    timeGrain: azure_native.costmanagement.TimeGrainType.Monthly,
    timePeriod: {
        endDate: "2024-10-31T00:00:00Z",
        startDate: "2023-04-01T00:00:00Z",
    },
});
import pulumi
import pulumi_azure_native as azure_native
budget = azure_native.costmanagement.Budget("budget",
    amount=100.65,
    budget_name="TestBudget",
    category=azure_native.costmanagement.CategoryType.COST,
    e_tag="\"1d34d016a593709\"",
    filter={
        "and_": [
            {
                "dimensions": {
                    "name": "ResourceId",
                    "operator": azure_native.costmanagement.BudgetOperatorType.IN_,
                    "values": [
                        "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MSVM2",
                        "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1",
                    ],
                },
            },
            {
                "tags": {
                    "name": "category",
                    "operator": azure_native.costmanagement.BudgetOperatorType.IN_,
                    "values": [
                        "Dev",
                        "Prod",
                    ],
                },
            },
            {
                "tags": {
                    "name": "department",
                    "operator": azure_native.costmanagement.BudgetOperatorType.IN_,
                    "values": [
                        "engineering",
                        "sales",
                    ],
                },
            },
        ],
    },
    notifications={
        "Actual_GreaterThan_80_Percent": {
            "contact_emails": [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            "contact_groups": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup"],
            "contact_roles": [
                "Contributor",
                "Reader",
            ],
            "enabled": True,
            "locale": azure_native.costmanagement.CultureCode.EN_US,
            "operator": azure_native.costmanagement.BudgetNotificationOperatorType.GREATER_THAN,
            "threshold": 80,
            "threshold_type": azure_native.costmanagement.ThresholdType.ACTUAL,
        },
    },
    scope="subscriptions/00000000-0000-0000-0000-000000000000",
    time_grain=azure_native.costmanagement.TimeGrainType.MONTHLY,
    time_period={
        "end_date": "2024-10-31T00:00:00Z",
        "start_date": "2023-04-01T00:00:00Z",
    })
resources:
  budget:
    type: azure-native:costmanagement:Budget
    properties:
      amount: 100.65
      budgetName: TestBudget
      category: Cost
      eTag: '"1d34d016a593709"'
      filter:
        and:
          - dimensions:
              name: ResourceId
              operator: In
              values:
                - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MSVM2
                - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1
          - tags:
              name: category
              operator: In
              values:
                - Dev
                - Prod
          - tags:
              name: department
              operator: In
              values:
                - engineering
                - sales
      notifications:
        Actual_GreaterThan_80_Percent:
          contactEmails:
            - johndoe@contoso.com
            - janesmith@contoso.com
          contactGroups:
            - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup
          contactRoles:
            - Contributor
            - Reader
          enabled: true
          locale: en-us
          operator: GreaterThan
          threshold: 80
          thresholdType: Actual
      scope: subscriptions/00000000-0000-0000-0000-000000000000
      timeGrain: Monthly
      timePeriod:
        endDate: 2024-10-31T00:00:00Z
        startDate: 2023-04-01T00:00:00Z
CreateOrUpdate-ReservationUtilization-BillingAccountEA-AlertRule
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() => 
{
    var budget = new AzureNative.CostManagement.Budget("budget", new()
    {
        BudgetName = "TestAlertRule",
        Category = AzureNative.CostManagement.CategoryType.ReservationUtilization,
        ETag = "\"1d34d016a593709\"",
        Filter = null,
        Notifications = 
        {
            { "Actual_LessThan_99_Percent", new AzureNative.CostManagement.Inputs.NotificationArgs
            {
                ContactEmails = new[]
                {
                    "johndoe@contoso.com",
                    "janesmith@contoso.com",
                },
                Enabled = true,
                Frequency = AzureNative.CostManagement.Frequency.Weekly,
                Locale = AzureNative.CostManagement.CultureCode.En_us,
                Operator = AzureNative.CostManagement.BudgetNotificationOperatorType.LessThan,
                Threshold = 99,
            } },
        },
        Scope = "providers/Microsoft.Billing/billingAccounts/123456",
        TimeGrain = AzureNative.CostManagement.TimeGrainType.Last7Days,
        TimePeriod = new AzureNative.CostManagement.Inputs.BudgetTimePeriodArgs
        {
            EndDate = "2025-04-01T00:00:00Z",
            StartDate = "2023-04-01T00:00:00Z",
        },
    });
});
package main
import (
	costmanagement "github.com/pulumi/pulumi-azure-native-sdk/costmanagement/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := costmanagement.NewBudget(ctx, "budget", &costmanagement.BudgetArgs{
			BudgetName: pulumi.String("TestAlertRule"),
			Category:   pulumi.String(costmanagement.CategoryTypeReservationUtilization),
			ETag:       pulumi.String("\"1d34d016a593709\""),
			Filter:     &costmanagement.BudgetFilterArgs{},
			Notifications: costmanagement.NotificationMap{
				"Actual_LessThan_99_Percent": &costmanagement.NotificationArgs{
					ContactEmails: pulumi.StringArray{
						pulumi.String("johndoe@contoso.com"),
						pulumi.String("janesmith@contoso.com"),
					},
					Enabled:   pulumi.Bool(true),
					Frequency: pulumi.String(costmanagement.FrequencyWeekly),
					Locale:    pulumi.String(costmanagement.CultureCode_En_Us),
					Operator:  pulumi.String(costmanagement.BudgetNotificationOperatorTypeLessThan),
					Threshold: pulumi.Float64(99),
				},
			},
			Scope:     pulumi.String("providers/Microsoft.Billing/billingAccounts/123456"),
			TimeGrain: pulumi.String(costmanagement.TimeGrainTypeLast7Days),
			TimePeriod: &costmanagement.BudgetTimePeriodArgs{
				EndDate:   pulumi.String("2025-04-01T00:00:00Z"),
				StartDate: pulumi.String("2023-04-01T00:00:00Z"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.costmanagement.Budget;
import com.pulumi.azurenative.costmanagement.BudgetArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetFilterArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetTimePeriodArgs;
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) {
        var budget = new Budget("budget", BudgetArgs.builder()
            .budgetName("TestAlertRule")
            .category("ReservationUtilization")
            .eTag("\"1d34d016a593709\"")
            .filter()
            .notifications(Map.of("Actual_LessThan_99_Percent", Map.ofEntries(
                Map.entry("contactEmails",                 
                    "johndoe@contoso.com",
                    "janesmith@contoso.com"),
                Map.entry("enabled", true),
                Map.entry("frequency", "Weekly"),
                Map.entry("locale", "en-us"),
                Map.entry("operator", "LessThan"),
                Map.entry("threshold", 99)
            )))
            .scope("providers/Microsoft.Billing/billingAccounts/123456")
            .timeGrain("Last7Days")
            .timePeriod(BudgetTimePeriodArgs.builder()
                .endDate("2025-04-01T00:00:00Z")
                .startDate("2023-04-01T00:00:00Z")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const budget = new azure_native.costmanagement.Budget("budget", {
    budgetName: "TestAlertRule",
    category: azure_native.costmanagement.CategoryType.ReservationUtilization,
    eTag: "\"1d34d016a593709\"",
    filter: {},
    notifications: {
        Actual_LessThan_99_Percent: {
            contactEmails: [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            enabled: true,
            frequency: azure_native.costmanagement.Frequency.Weekly,
            locale: azure_native.costmanagement.CultureCode.En_us,
            operator: azure_native.costmanagement.BudgetNotificationOperatorType.LessThan,
            threshold: 99,
        },
    },
    scope: "providers/Microsoft.Billing/billingAccounts/123456",
    timeGrain: azure_native.costmanagement.TimeGrainType.Last7Days,
    timePeriod: {
        endDate: "2025-04-01T00:00:00Z",
        startDate: "2023-04-01T00:00:00Z",
    },
});
import pulumi
import pulumi_azure_native as azure_native
budget = azure_native.costmanagement.Budget("budget",
    budget_name="TestAlertRule",
    category=azure_native.costmanagement.CategoryType.RESERVATION_UTILIZATION,
    e_tag="\"1d34d016a593709\"",
    filter={},
    notifications={
        "Actual_LessThan_99_Percent": {
            "contact_emails": [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            "enabled": True,
            "frequency": azure_native.costmanagement.Frequency.WEEKLY,
            "locale": azure_native.costmanagement.CultureCode.EN_US,
            "operator": azure_native.costmanagement.BudgetNotificationOperatorType.LESS_THAN,
            "threshold": 99,
        },
    },
    scope="providers/Microsoft.Billing/billingAccounts/123456",
    time_grain=azure_native.costmanagement.TimeGrainType.LAST7_DAYS,
    time_period={
        "end_date": "2025-04-01T00:00:00Z",
        "start_date": "2023-04-01T00:00:00Z",
    })
resources:
  budget:
    type: azure-native:costmanagement:Budget
    properties:
      budgetName: TestAlertRule
      category: ReservationUtilization
      eTag: '"1d34d016a593709"'
      filter: {}
      notifications:
        Actual_LessThan_99_Percent:
          contactEmails:
            - johndoe@contoso.com
            - janesmith@contoso.com
          enabled: true
          frequency: Weekly
          locale: en-us
          operator: LessThan
          threshold: 99
      scope: providers/Microsoft.Billing/billingAccounts/123456
      timeGrain: Last7Days
      timePeriod:
        endDate: 2025-04-01T00:00:00Z
        startDate: 2023-04-01T00:00:00Z
CreateOrUpdate-ReservationUtilization-BillingAccountEA-AlertRule-ReservationIdFilter
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() => 
{
    var budget = new AzureNative.CostManagement.Budget("budget", new()
    {
        BudgetName = "TestAlertRule",
        Category = AzureNative.CostManagement.CategoryType.ReservationUtilization,
        ETag = "\"1d34d016a593709\"",
        Filter = new AzureNative.CostManagement.Inputs.BudgetFilterArgs
        {
            Dimensions = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
            {
                Name = "ReservationId",
                Operator = AzureNative.CostManagement.BudgetOperatorType.In,
                Values = new[]
                {
                    "00000000-0000-0000-0000-000000000000",
                    "00000000-0000-0000-0000-000000000001",
                    "00000000-0000-0000-0000-000000000002",
                },
            },
        },
        Notifications = 
        {
            { "Actual_LessThan_99_Percent", new AzureNative.CostManagement.Inputs.NotificationArgs
            {
                ContactEmails = new[]
                {
                    "johndoe@contoso.com",
                    "janesmith@contoso.com",
                },
                Enabled = true,
                Frequency = AzureNative.CostManagement.Frequency.Weekly,
                Locale = AzureNative.CostManagement.CultureCode.En_us,
                Operator = AzureNative.CostManagement.BudgetNotificationOperatorType.LessThan,
                Threshold = 99,
            } },
        },
        Scope = "providers/Microsoft.Billing/billingAccounts/123456",
        TimeGrain = AzureNative.CostManagement.TimeGrainType.Last7Days,
        TimePeriod = new AzureNative.CostManagement.Inputs.BudgetTimePeriodArgs
        {
            EndDate = "2025-04-01T00:00:00Z",
            StartDate = "2023-04-01T00:00:00Z",
        },
    });
});
package main
import (
	costmanagement "github.com/pulumi/pulumi-azure-native-sdk/costmanagement/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := costmanagement.NewBudget(ctx, "budget", &costmanagement.BudgetArgs{
			BudgetName: pulumi.String("TestAlertRule"),
			Category:   pulumi.String(costmanagement.CategoryTypeReservationUtilization),
			ETag:       pulumi.String("\"1d34d016a593709\""),
			Filter: &costmanagement.BudgetFilterArgs{
				Dimensions: &costmanagement.BudgetComparisonExpressionArgs{
					Name:     pulumi.String("ReservationId"),
					Operator: pulumi.String(costmanagement.BudgetOperatorTypeIn),
					Values: pulumi.StringArray{
						pulumi.String("00000000-0000-0000-0000-000000000000"),
						pulumi.String("00000000-0000-0000-0000-000000000001"),
						pulumi.String("00000000-0000-0000-0000-000000000002"),
					},
				},
			},
			Notifications: costmanagement.NotificationMap{
				"Actual_LessThan_99_Percent": &costmanagement.NotificationArgs{
					ContactEmails: pulumi.StringArray{
						pulumi.String("johndoe@contoso.com"),
						pulumi.String("janesmith@contoso.com"),
					},
					Enabled:   pulumi.Bool(true),
					Frequency: pulumi.String(costmanagement.FrequencyWeekly),
					Locale:    pulumi.String(costmanagement.CultureCode_En_Us),
					Operator:  pulumi.String(costmanagement.BudgetNotificationOperatorTypeLessThan),
					Threshold: pulumi.Float64(99),
				},
			},
			Scope:     pulumi.String("providers/Microsoft.Billing/billingAccounts/123456"),
			TimeGrain: pulumi.String(costmanagement.TimeGrainTypeLast7Days),
			TimePeriod: &costmanagement.BudgetTimePeriodArgs{
				EndDate:   pulumi.String("2025-04-01T00:00:00Z"),
				StartDate: pulumi.String("2023-04-01T00:00:00Z"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.costmanagement.Budget;
import com.pulumi.azurenative.costmanagement.BudgetArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetFilterArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetComparisonExpressionArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetTimePeriodArgs;
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) {
        var budget = new Budget("budget", BudgetArgs.builder()
            .budgetName("TestAlertRule")
            .category("ReservationUtilization")
            .eTag("\"1d34d016a593709\"")
            .filter(BudgetFilterArgs.builder()
                .dimensions(BudgetComparisonExpressionArgs.builder()
                    .name("ReservationId")
                    .operator("In")
                    .values(                    
                        "00000000-0000-0000-0000-000000000000",
                        "00000000-0000-0000-0000-000000000001",
                        "00000000-0000-0000-0000-000000000002")
                    .build())
                .build())
            .notifications(Map.of("Actual_LessThan_99_Percent", Map.ofEntries(
                Map.entry("contactEmails",                 
                    "johndoe@contoso.com",
                    "janesmith@contoso.com"),
                Map.entry("enabled", true),
                Map.entry("frequency", "Weekly"),
                Map.entry("locale", "en-us"),
                Map.entry("operator", "LessThan"),
                Map.entry("threshold", 99)
            )))
            .scope("providers/Microsoft.Billing/billingAccounts/123456")
            .timeGrain("Last7Days")
            .timePeriod(BudgetTimePeriodArgs.builder()
                .endDate("2025-04-01T00:00:00Z")
                .startDate("2023-04-01T00:00:00Z")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const budget = new azure_native.costmanagement.Budget("budget", {
    budgetName: "TestAlertRule",
    category: azure_native.costmanagement.CategoryType.ReservationUtilization,
    eTag: "\"1d34d016a593709\"",
    filter: {
        dimensions: {
            name: "ReservationId",
            operator: azure_native.costmanagement.BudgetOperatorType.In,
            values: [
                "00000000-0000-0000-0000-000000000000",
                "00000000-0000-0000-0000-000000000001",
                "00000000-0000-0000-0000-000000000002",
            ],
        },
    },
    notifications: {
        Actual_LessThan_99_Percent: {
            contactEmails: [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            enabled: true,
            frequency: azure_native.costmanagement.Frequency.Weekly,
            locale: azure_native.costmanagement.CultureCode.En_us,
            operator: azure_native.costmanagement.BudgetNotificationOperatorType.LessThan,
            threshold: 99,
        },
    },
    scope: "providers/Microsoft.Billing/billingAccounts/123456",
    timeGrain: azure_native.costmanagement.TimeGrainType.Last7Days,
    timePeriod: {
        endDate: "2025-04-01T00:00:00Z",
        startDate: "2023-04-01T00:00:00Z",
    },
});
import pulumi
import pulumi_azure_native as azure_native
budget = azure_native.costmanagement.Budget("budget",
    budget_name="TestAlertRule",
    category=azure_native.costmanagement.CategoryType.RESERVATION_UTILIZATION,
    e_tag="\"1d34d016a593709\"",
    filter={
        "dimensions": {
            "name": "ReservationId",
            "operator": azure_native.costmanagement.BudgetOperatorType.IN_,
            "values": [
                "00000000-0000-0000-0000-000000000000",
                "00000000-0000-0000-0000-000000000001",
                "00000000-0000-0000-0000-000000000002",
            ],
        },
    },
    notifications={
        "Actual_LessThan_99_Percent": {
            "contact_emails": [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            "enabled": True,
            "frequency": azure_native.costmanagement.Frequency.WEEKLY,
            "locale": azure_native.costmanagement.CultureCode.EN_US,
            "operator": azure_native.costmanagement.BudgetNotificationOperatorType.LESS_THAN,
            "threshold": 99,
        },
    },
    scope="providers/Microsoft.Billing/billingAccounts/123456",
    time_grain=azure_native.costmanagement.TimeGrainType.LAST7_DAYS,
    time_period={
        "end_date": "2025-04-01T00:00:00Z",
        "start_date": "2023-04-01T00:00:00Z",
    })
resources:
  budget:
    type: azure-native:costmanagement:Budget
    properties:
      budgetName: TestAlertRule
      category: ReservationUtilization
      eTag: '"1d34d016a593709"'
      filter:
        dimensions:
          name: ReservationId
          operator: In
          values:
            - 00000000-0000-0000-0000-000000000000
            - 00000000-0000-0000-0000-000000000001
            - 00000000-0000-0000-0000-000000000002
      notifications:
        Actual_LessThan_99_Percent:
          contactEmails:
            - johndoe@contoso.com
            - janesmith@contoso.com
          enabled: true
          frequency: Weekly
          locale: en-us
          operator: LessThan
          threshold: 99
      scope: providers/Microsoft.Billing/billingAccounts/123456
      timeGrain: Last7Days
      timePeriod:
        endDate: 2025-04-01T00:00:00Z
        startDate: 2023-04-01T00:00:00Z
CreateOrUpdate-ReservationUtilization-BillingAccountEA-AlertRule-ReservedResourceTypeFilter
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() => 
{
    var budget = new AzureNative.CostManagement.Budget("budget", new()
    {
        BudgetName = "TestAlertRule",
        Category = AzureNative.CostManagement.CategoryType.ReservationUtilization,
        ETag = "\"1d34d016a593709\"",
        Filter = new AzureNative.CostManagement.Inputs.BudgetFilterArgs
        {
            Dimensions = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
            {
                Name = "ReservedResourceType",
                Operator = AzureNative.CostManagement.BudgetOperatorType.In,
                Values = new[]
                {
                    "VirtualMachines",
                    "SqlDatabases",
                    "CosmosDb",
                },
            },
        },
        Notifications = 
        {
            { "Actual_LessThan_99_Percent", new AzureNative.CostManagement.Inputs.NotificationArgs
            {
                ContactEmails = new[]
                {
                    "johndoe@contoso.com",
                    "janesmith@contoso.com",
                },
                Enabled = true,
                Frequency = AzureNative.CostManagement.Frequency.Weekly,
                Locale = AzureNative.CostManagement.CultureCode.En_us,
                Operator = AzureNative.CostManagement.BudgetNotificationOperatorType.LessThan,
                Threshold = 99,
            } },
        },
        Scope = "providers/Microsoft.Billing/billingAccounts/123456",
        TimeGrain = AzureNative.CostManagement.TimeGrainType.Last7Days,
        TimePeriod = new AzureNative.CostManagement.Inputs.BudgetTimePeriodArgs
        {
            EndDate = "2025-04-01T00:00:00Z",
            StartDate = "2023-04-01T00:00:00Z",
        },
    });
});
package main
import (
	costmanagement "github.com/pulumi/pulumi-azure-native-sdk/costmanagement/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := costmanagement.NewBudget(ctx, "budget", &costmanagement.BudgetArgs{
			BudgetName: pulumi.String("TestAlertRule"),
			Category:   pulumi.String(costmanagement.CategoryTypeReservationUtilization),
			ETag:       pulumi.String("\"1d34d016a593709\""),
			Filter: &costmanagement.BudgetFilterArgs{
				Dimensions: &costmanagement.BudgetComparisonExpressionArgs{
					Name:     pulumi.String("ReservedResourceType"),
					Operator: pulumi.String(costmanagement.BudgetOperatorTypeIn),
					Values: pulumi.StringArray{
						pulumi.String("VirtualMachines"),
						pulumi.String("SqlDatabases"),
						pulumi.String("CosmosDb"),
					},
				},
			},
			Notifications: costmanagement.NotificationMap{
				"Actual_LessThan_99_Percent": &costmanagement.NotificationArgs{
					ContactEmails: pulumi.StringArray{
						pulumi.String("johndoe@contoso.com"),
						pulumi.String("janesmith@contoso.com"),
					},
					Enabled:   pulumi.Bool(true),
					Frequency: pulumi.String(costmanagement.FrequencyWeekly),
					Locale:    pulumi.String(costmanagement.CultureCode_En_Us),
					Operator:  pulumi.String(costmanagement.BudgetNotificationOperatorTypeLessThan),
					Threshold: pulumi.Float64(99),
				},
			},
			Scope:     pulumi.String("providers/Microsoft.Billing/billingAccounts/123456"),
			TimeGrain: pulumi.String(costmanagement.TimeGrainTypeLast7Days),
			TimePeriod: &costmanagement.BudgetTimePeriodArgs{
				EndDate:   pulumi.String("2025-04-01T00:00:00Z"),
				StartDate: pulumi.String("2023-04-01T00:00:00Z"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.costmanagement.Budget;
import com.pulumi.azurenative.costmanagement.BudgetArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetFilterArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetComparisonExpressionArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetTimePeriodArgs;
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) {
        var budget = new Budget("budget", BudgetArgs.builder()
            .budgetName("TestAlertRule")
            .category("ReservationUtilization")
            .eTag("\"1d34d016a593709\"")
            .filter(BudgetFilterArgs.builder()
                .dimensions(BudgetComparisonExpressionArgs.builder()
                    .name("ReservedResourceType")
                    .operator("In")
                    .values(                    
                        "VirtualMachines",
                        "SqlDatabases",
                        "CosmosDb")
                    .build())
                .build())
            .notifications(Map.of("Actual_LessThan_99_Percent", Map.ofEntries(
                Map.entry("contactEmails",                 
                    "johndoe@contoso.com",
                    "janesmith@contoso.com"),
                Map.entry("enabled", true),
                Map.entry("frequency", "Weekly"),
                Map.entry("locale", "en-us"),
                Map.entry("operator", "LessThan"),
                Map.entry("threshold", 99)
            )))
            .scope("providers/Microsoft.Billing/billingAccounts/123456")
            .timeGrain("Last7Days")
            .timePeriod(BudgetTimePeriodArgs.builder()
                .endDate("2025-04-01T00:00:00Z")
                .startDate("2023-04-01T00:00:00Z")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const budget = new azure_native.costmanagement.Budget("budget", {
    budgetName: "TestAlertRule",
    category: azure_native.costmanagement.CategoryType.ReservationUtilization,
    eTag: "\"1d34d016a593709\"",
    filter: {
        dimensions: {
            name: "ReservedResourceType",
            operator: azure_native.costmanagement.BudgetOperatorType.In,
            values: [
                "VirtualMachines",
                "SqlDatabases",
                "CosmosDb",
            ],
        },
    },
    notifications: {
        Actual_LessThan_99_Percent: {
            contactEmails: [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            enabled: true,
            frequency: azure_native.costmanagement.Frequency.Weekly,
            locale: azure_native.costmanagement.CultureCode.En_us,
            operator: azure_native.costmanagement.BudgetNotificationOperatorType.LessThan,
            threshold: 99,
        },
    },
    scope: "providers/Microsoft.Billing/billingAccounts/123456",
    timeGrain: azure_native.costmanagement.TimeGrainType.Last7Days,
    timePeriod: {
        endDate: "2025-04-01T00:00:00Z",
        startDate: "2023-04-01T00:00:00Z",
    },
});
import pulumi
import pulumi_azure_native as azure_native
budget = azure_native.costmanagement.Budget("budget",
    budget_name="TestAlertRule",
    category=azure_native.costmanagement.CategoryType.RESERVATION_UTILIZATION,
    e_tag="\"1d34d016a593709\"",
    filter={
        "dimensions": {
            "name": "ReservedResourceType",
            "operator": azure_native.costmanagement.BudgetOperatorType.IN_,
            "values": [
                "VirtualMachines",
                "SqlDatabases",
                "CosmosDb",
            ],
        },
    },
    notifications={
        "Actual_LessThan_99_Percent": {
            "contact_emails": [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            "enabled": True,
            "frequency": azure_native.costmanagement.Frequency.WEEKLY,
            "locale": azure_native.costmanagement.CultureCode.EN_US,
            "operator": azure_native.costmanagement.BudgetNotificationOperatorType.LESS_THAN,
            "threshold": 99,
        },
    },
    scope="providers/Microsoft.Billing/billingAccounts/123456",
    time_grain=azure_native.costmanagement.TimeGrainType.LAST7_DAYS,
    time_period={
        "end_date": "2025-04-01T00:00:00Z",
        "start_date": "2023-04-01T00:00:00Z",
    })
resources:
  budget:
    type: azure-native:costmanagement:Budget
    properties:
      budgetName: TestAlertRule
      category: ReservationUtilization
      eTag: '"1d34d016a593709"'
      filter:
        dimensions:
          name: ReservedResourceType
          operator: In
          values:
            - VirtualMachines
            - SqlDatabases
            - CosmosDb
      notifications:
        Actual_LessThan_99_Percent:
          contactEmails:
            - johndoe@contoso.com
            - janesmith@contoso.com
          enabled: true
          frequency: Weekly
          locale: en-us
          operator: LessThan
          threshold: 99
      scope: providers/Microsoft.Billing/billingAccounts/123456
      timeGrain: Last7Days
      timePeriod:
        endDate: 2025-04-01T00:00:00Z
        startDate: 2023-04-01T00:00:00Z
CreateOrUpdate-ReservationUtilization-BillingProfileMCA-AlertRule-ReservationIdFilter
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() => 
{
    var budget = new AzureNative.CostManagement.Budget("budget", new()
    {
        BudgetName = "TestAlertRule",
        Category = AzureNative.CostManagement.CategoryType.ReservationUtilization,
        ETag = "\"1d34d016a593709\"",
        Filter = new AzureNative.CostManagement.Inputs.BudgetFilterArgs
        {
            Dimensions = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
            {
                Name = "ReservationId",
                Operator = AzureNative.CostManagement.BudgetOperatorType.In,
                Values = new[]
                {
                    "00000000-0000-0000-0000-000000000000",
                    "00000000-0000-0000-0000-000000000001",
                    "00000000-0000-0000-0000-000000000002",
                },
            },
        },
        Notifications = 
        {
            { "Actual_LessThan_99_Percent", new AzureNative.CostManagement.Inputs.NotificationArgs
            {
                ContactEmails = new[]
                {
                    "johndoe@contoso.com",
                    "janesmith@contoso.com",
                },
                Enabled = true,
                Frequency = AzureNative.CostManagement.Frequency.Daily,
                Locale = AzureNative.CostManagement.CultureCode.En_us,
                Operator = AzureNative.CostManagement.BudgetNotificationOperatorType.LessThan,
                Threshold = 99,
            } },
        },
        Scope = "providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN",
        TimeGrain = AzureNative.CostManagement.TimeGrainType.Last30Days,
        TimePeriod = new AzureNative.CostManagement.Inputs.BudgetTimePeriodArgs
        {
            EndDate = "2025-04-01T00:00:00Z",
            StartDate = "2023-04-01T00:00:00Z",
        },
    });
});
package main
import (
	costmanagement "github.com/pulumi/pulumi-azure-native-sdk/costmanagement/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := costmanagement.NewBudget(ctx, "budget", &costmanagement.BudgetArgs{
			BudgetName: pulumi.String("TestAlertRule"),
			Category:   pulumi.String(costmanagement.CategoryTypeReservationUtilization),
			ETag:       pulumi.String("\"1d34d016a593709\""),
			Filter: &costmanagement.BudgetFilterArgs{
				Dimensions: &costmanagement.BudgetComparisonExpressionArgs{
					Name:     pulumi.String("ReservationId"),
					Operator: pulumi.String(costmanagement.BudgetOperatorTypeIn),
					Values: pulumi.StringArray{
						pulumi.String("00000000-0000-0000-0000-000000000000"),
						pulumi.String("00000000-0000-0000-0000-000000000001"),
						pulumi.String("00000000-0000-0000-0000-000000000002"),
					},
				},
			},
			Notifications: costmanagement.NotificationMap{
				"Actual_LessThan_99_Percent": &costmanagement.NotificationArgs{
					ContactEmails: pulumi.StringArray{
						pulumi.String("johndoe@contoso.com"),
						pulumi.String("janesmith@contoso.com"),
					},
					Enabled:   pulumi.Bool(true),
					Frequency: pulumi.String(costmanagement.FrequencyDaily),
					Locale:    pulumi.String(costmanagement.CultureCode_En_Us),
					Operator:  pulumi.String(costmanagement.BudgetNotificationOperatorTypeLessThan),
					Threshold: pulumi.Float64(99),
				},
			},
			Scope:     pulumi.String("providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN"),
			TimeGrain: pulumi.String(costmanagement.TimeGrainTypeLast30Days),
			TimePeriod: &costmanagement.BudgetTimePeriodArgs{
				EndDate:   pulumi.String("2025-04-01T00:00:00Z"),
				StartDate: pulumi.String("2023-04-01T00:00:00Z"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.costmanagement.Budget;
import com.pulumi.azurenative.costmanagement.BudgetArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetFilterArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetComparisonExpressionArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetTimePeriodArgs;
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) {
        var budget = new Budget("budget", BudgetArgs.builder()
            .budgetName("TestAlertRule")
            .category("ReservationUtilization")
            .eTag("\"1d34d016a593709\"")
            .filter(BudgetFilterArgs.builder()
                .dimensions(BudgetComparisonExpressionArgs.builder()
                    .name("ReservationId")
                    .operator("In")
                    .values(                    
                        "00000000-0000-0000-0000-000000000000",
                        "00000000-0000-0000-0000-000000000001",
                        "00000000-0000-0000-0000-000000000002")
                    .build())
                .build())
            .notifications(Map.of("Actual_LessThan_99_Percent", Map.ofEntries(
                Map.entry("contactEmails",                 
                    "johndoe@contoso.com",
                    "janesmith@contoso.com"),
                Map.entry("enabled", true),
                Map.entry("frequency", "Daily"),
                Map.entry("locale", "en-us"),
                Map.entry("operator", "LessThan"),
                Map.entry("threshold", 99)
            )))
            .scope("providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN")
            .timeGrain("Last30Days")
            .timePeriod(BudgetTimePeriodArgs.builder()
                .endDate("2025-04-01T00:00:00Z")
                .startDate("2023-04-01T00:00:00Z")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const budget = new azure_native.costmanagement.Budget("budget", {
    budgetName: "TestAlertRule",
    category: azure_native.costmanagement.CategoryType.ReservationUtilization,
    eTag: "\"1d34d016a593709\"",
    filter: {
        dimensions: {
            name: "ReservationId",
            operator: azure_native.costmanagement.BudgetOperatorType.In,
            values: [
                "00000000-0000-0000-0000-000000000000",
                "00000000-0000-0000-0000-000000000001",
                "00000000-0000-0000-0000-000000000002",
            ],
        },
    },
    notifications: {
        Actual_LessThan_99_Percent: {
            contactEmails: [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            enabled: true,
            frequency: azure_native.costmanagement.Frequency.Daily,
            locale: azure_native.costmanagement.CultureCode.En_us,
            operator: azure_native.costmanagement.BudgetNotificationOperatorType.LessThan,
            threshold: 99,
        },
    },
    scope: "providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN",
    timeGrain: azure_native.costmanagement.TimeGrainType.Last30Days,
    timePeriod: {
        endDate: "2025-04-01T00:00:00Z",
        startDate: "2023-04-01T00:00:00Z",
    },
});
import pulumi
import pulumi_azure_native as azure_native
budget = azure_native.costmanagement.Budget("budget",
    budget_name="TestAlertRule",
    category=azure_native.costmanagement.CategoryType.RESERVATION_UTILIZATION,
    e_tag="\"1d34d016a593709\"",
    filter={
        "dimensions": {
            "name": "ReservationId",
            "operator": azure_native.costmanagement.BudgetOperatorType.IN_,
            "values": [
                "00000000-0000-0000-0000-000000000000",
                "00000000-0000-0000-0000-000000000001",
                "00000000-0000-0000-0000-000000000002",
            ],
        },
    },
    notifications={
        "Actual_LessThan_99_Percent": {
            "contact_emails": [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            "enabled": True,
            "frequency": azure_native.costmanagement.Frequency.DAILY,
            "locale": azure_native.costmanagement.CultureCode.EN_US,
            "operator": azure_native.costmanagement.BudgetNotificationOperatorType.LESS_THAN,
            "threshold": 99,
        },
    },
    scope="providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN",
    time_grain=azure_native.costmanagement.TimeGrainType.LAST30_DAYS,
    time_period={
        "end_date": "2025-04-01T00:00:00Z",
        "start_date": "2023-04-01T00:00:00Z",
    })
resources:
  budget:
    type: azure-native:costmanagement:Budget
    properties:
      budgetName: TestAlertRule
      category: ReservationUtilization
      eTag: '"1d34d016a593709"'
      filter:
        dimensions:
          name: ReservationId
          operator: In
          values:
            - 00000000-0000-0000-0000-000000000000
            - 00000000-0000-0000-0000-000000000001
            - 00000000-0000-0000-0000-000000000002
      notifications:
        Actual_LessThan_99_Percent:
          contactEmails:
            - johndoe@contoso.com
            - janesmith@contoso.com
          enabled: true
          frequency: Daily
          locale: en-us
          operator: LessThan
          threshold: 99
      scope: providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN
      timeGrain: Last30Days
      timePeriod:
        endDate: 2025-04-01T00:00:00Z
        startDate: 2023-04-01T00:00:00Z
CreateOrUpdate-ReservationUtilization-BillingProfileMCA-AlertRule-ReservedResourceTypeFilter
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() => 
{
    var budget = new AzureNative.CostManagement.Budget("budget", new()
    {
        BudgetName = "TestAlertRule",
        Category = AzureNative.CostManagement.CategoryType.ReservationUtilization,
        ETag = "\"1d34d016a593709\"",
        Filter = new AzureNative.CostManagement.Inputs.BudgetFilterArgs
        {
            Dimensions = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
            {
                Name = "ReservedResourceType",
                Operator = AzureNative.CostManagement.BudgetOperatorType.In,
                Values = new[]
                {
                    "VirtualMachines",
                    "SqlDatabases",
                    "CosmosDb",
                },
            },
        },
        Notifications = 
        {
            { "Actual_LessThan_99_Percent", new AzureNative.CostManagement.Inputs.NotificationArgs
            {
                ContactEmails = new[]
                {
                    "johndoe@contoso.com",
                    "janesmith@contoso.com",
                },
                Enabled = true,
                Frequency = AzureNative.CostManagement.Frequency.Daily,
                Locale = AzureNative.CostManagement.CultureCode.En_us,
                Operator = AzureNative.CostManagement.BudgetNotificationOperatorType.LessThan,
                Threshold = 99,
            } },
        },
        Scope = "providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN",
        TimeGrain = AzureNative.CostManagement.TimeGrainType.Last30Days,
        TimePeriod = new AzureNative.CostManagement.Inputs.BudgetTimePeriodArgs
        {
            EndDate = "2025-04-01T00:00:00Z",
            StartDate = "2023-04-01T00:00:00Z",
        },
    });
});
package main
import (
	costmanagement "github.com/pulumi/pulumi-azure-native-sdk/costmanagement/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := costmanagement.NewBudget(ctx, "budget", &costmanagement.BudgetArgs{
			BudgetName: pulumi.String("TestAlertRule"),
			Category:   pulumi.String(costmanagement.CategoryTypeReservationUtilization),
			ETag:       pulumi.String("\"1d34d016a593709\""),
			Filter: &costmanagement.BudgetFilterArgs{
				Dimensions: &costmanagement.BudgetComparisonExpressionArgs{
					Name:     pulumi.String("ReservedResourceType"),
					Operator: pulumi.String(costmanagement.BudgetOperatorTypeIn),
					Values: pulumi.StringArray{
						pulumi.String("VirtualMachines"),
						pulumi.String("SqlDatabases"),
						pulumi.String("CosmosDb"),
					},
				},
			},
			Notifications: costmanagement.NotificationMap{
				"Actual_LessThan_99_Percent": &costmanagement.NotificationArgs{
					ContactEmails: pulumi.StringArray{
						pulumi.String("johndoe@contoso.com"),
						pulumi.String("janesmith@contoso.com"),
					},
					Enabled:   pulumi.Bool(true),
					Frequency: pulumi.String(costmanagement.FrequencyDaily),
					Locale:    pulumi.String(costmanagement.CultureCode_En_Us),
					Operator:  pulumi.String(costmanagement.BudgetNotificationOperatorTypeLessThan),
					Threshold: pulumi.Float64(99),
				},
			},
			Scope:     pulumi.String("providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN"),
			TimeGrain: pulumi.String(costmanagement.TimeGrainTypeLast30Days),
			TimePeriod: &costmanagement.BudgetTimePeriodArgs{
				EndDate:   pulumi.String("2025-04-01T00:00:00Z"),
				StartDate: pulumi.String("2023-04-01T00:00:00Z"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.costmanagement.Budget;
import com.pulumi.azurenative.costmanagement.BudgetArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetFilterArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetComparisonExpressionArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetTimePeriodArgs;
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) {
        var budget = new Budget("budget", BudgetArgs.builder()
            .budgetName("TestAlertRule")
            .category("ReservationUtilization")
            .eTag("\"1d34d016a593709\"")
            .filter(BudgetFilterArgs.builder()
                .dimensions(BudgetComparisonExpressionArgs.builder()
                    .name("ReservedResourceType")
                    .operator("In")
                    .values(                    
                        "VirtualMachines",
                        "SqlDatabases",
                        "CosmosDb")
                    .build())
                .build())
            .notifications(Map.of("Actual_LessThan_99_Percent", Map.ofEntries(
                Map.entry("contactEmails",                 
                    "johndoe@contoso.com",
                    "janesmith@contoso.com"),
                Map.entry("enabled", true),
                Map.entry("frequency", "Daily"),
                Map.entry("locale", "en-us"),
                Map.entry("operator", "LessThan"),
                Map.entry("threshold", 99)
            )))
            .scope("providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN")
            .timeGrain("Last30Days")
            .timePeriod(BudgetTimePeriodArgs.builder()
                .endDate("2025-04-01T00:00:00Z")
                .startDate("2023-04-01T00:00:00Z")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const budget = new azure_native.costmanagement.Budget("budget", {
    budgetName: "TestAlertRule",
    category: azure_native.costmanagement.CategoryType.ReservationUtilization,
    eTag: "\"1d34d016a593709\"",
    filter: {
        dimensions: {
            name: "ReservedResourceType",
            operator: azure_native.costmanagement.BudgetOperatorType.In,
            values: [
                "VirtualMachines",
                "SqlDatabases",
                "CosmosDb",
            ],
        },
    },
    notifications: {
        Actual_LessThan_99_Percent: {
            contactEmails: [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            enabled: true,
            frequency: azure_native.costmanagement.Frequency.Daily,
            locale: azure_native.costmanagement.CultureCode.En_us,
            operator: azure_native.costmanagement.BudgetNotificationOperatorType.LessThan,
            threshold: 99,
        },
    },
    scope: "providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN",
    timeGrain: azure_native.costmanagement.TimeGrainType.Last30Days,
    timePeriod: {
        endDate: "2025-04-01T00:00:00Z",
        startDate: "2023-04-01T00:00:00Z",
    },
});
import pulumi
import pulumi_azure_native as azure_native
budget = azure_native.costmanagement.Budget("budget",
    budget_name="TestAlertRule",
    category=azure_native.costmanagement.CategoryType.RESERVATION_UTILIZATION,
    e_tag="\"1d34d016a593709\"",
    filter={
        "dimensions": {
            "name": "ReservedResourceType",
            "operator": azure_native.costmanagement.BudgetOperatorType.IN_,
            "values": [
                "VirtualMachines",
                "SqlDatabases",
                "CosmosDb",
            ],
        },
    },
    notifications={
        "Actual_LessThan_99_Percent": {
            "contact_emails": [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            "enabled": True,
            "frequency": azure_native.costmanagement.Frequency.DAILY,
            "locale": azure_native.costmanagement.CultureCode.EN_US,
            "operator": azure_native.costmanagement.BudgetNotificationOperatorType.LESS_THAN,
            "threshold": 99,
        },
    },
    scope="providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN",
    time_grain=azure_native.costmanagement.TimeGrainType.LAST30_DAYS,
    time_period={
        "end_date": "2025-04-01T00:00:00Z",
        "start_date": "2023-04-01T00:00:00Z",
    })
resources:
  budget:
    type: azure-native:costmanagement:Budget
    properties:
      budgetName: TestAlertRule
      category: ReservationUtilization
      eTag: '"1d34d016a593709"'
      filter:
        dimensions:
          name: ReservedResourceType
          operator: In
          values:
            - VirtualMachines
            - SqlDatabases
            - CosmosDb
      notifications:
        Actual_LessThan_99_Percent:
          contactEmails:
            - johndoe@contoso.com
            - janesmith@contoso.com
          enabled: true
          frequency: Daily
          locale: en-us
          operator: LessThan
          threshold: 99
      scope: providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN
      timeGrain: Last30Days
      timePeriod:
        endDate: 2025-04-01T00:00:00Z
        startDate: 2023-04-01T00:00:00Z
CreateOrUpdate-ReservationUtilization-BillingProfileMCA-AlertRule.json
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() => 
{
    var budget = new AzureNative.CostManagement.Budget("budget", new()
    {
        BudgetName = "TestAlertRule",
        Category = AzureNative.CostManagement.CategoryType.ReservationUtilization,
        ETag = "\"1d34d016a593709\"",
        Filter = null,
        Notifications = 
        {
            { "Actual_LessThan_99_Percent", new AzureNative.CostManagement.Inputs.NotificationArgs
            {
                ContactEmails = new[]
                {
                    "johndoe@contoso.com",
                    "janesmith@contoso.com",
                },
                Enabled = true,
                Frequency = AzureNative.CostManagement.Frequency.Daily,
                Locale = AzureNative.CostManagement.CultureCode.En_us,
                Operator = AzureNative.CostManagement.BudgetNotificationOperatorType.LessThan,
                Threshold = 99,
            } },
        },
        Scope = "providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN",
        TimeGrain = AzureNative.CostManagement.TimeGrainType.Last30Days,
        TimePeriod = new AzureNative.CostManagement.Inputs.BudgetTimePeriodArgs
        {
            EndDate = "2025-04-01T00:00:00Z",
            StartDate = "2023-04-01T00:00:00Z",
        },
    });
});
package main
import (
	costmanagement "github.com/pulumi/pulumi-azure-native-sdk/costmanagement/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := costmanagement.NewBudget(ctx, "budget", &costmanagement.BudgetArgs{
			BudgetName: pulumi.String("TestAlertRule"),
			Category:   pulumi.String(costmanagement.CategoryTypeReservationUtilization),
			ETag:       pulumi.String("\"1d34d016a593709\""),
			Filter:     &costmanagement.BudgetFilterArgs{},
			Notifications: costmanagement.NotificationMap{
				"Actual_LessThan_99_Percent": &costmanagement.NotificationArgs{
					ContactEmails: pulumi.StringArray{
						pulumi.String("johndoe@contoso.com"),
						pulumi.String("janesmith@contoso.com"),
					},
					Enabled:   pulumi.Bool(true),
					Frequency: pulumi.String(costmanagement.FrequencyDaily),
					Locale:    pulumi.String(costmanagement.CultureCode_En_Us),
					Operator:  pulumi.String(costmanagement.BudgetNotificationOperatorTypeLessThan),
					Threshold: pulumi.Float64(99),
				},
			},
			Scope:     pulumi.String("providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN"),
			TimeGrain: pulumi.String(costmanagement.TimeGrainTypeLast30Days),
			TimePeriod: &costmanagement.BudgetTimePeriodArgs{
				EndDate:   pulumi.String("2025-04-01T00:00:00Z"),
				StartDate: pulumi.String("2023-04-01T00:00:00Z"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.costmanagement.Budget;
import com.pulumi.azurenative.costmanagement.BudgetArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetFilterArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetTimePeriodArgs;
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) {
        var budget = new Budget("budget", BudgetArgs.builder()
            .budgetName("TestAlertRule")
            .category("ReservationUtilization")
            .eTag("\"1d34d016a593709\"")
            .filter()
            .notifications(Map.of("Actual_LessThan_99_Percent", Map.ofEntries(
                Map.entry("contactEmails",                 
                    "johndoe@contoso.com",
                    "janesmith@contoso.com"),
                Map.entry("enabled", true),
                Map.entry("frequency", "Daily"),
                Map.entry("locale", "en-us"),
                Map.entry("operator", "LessThan"),
                Map.entry("threshold", 99)
            )))
            .scope("providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN")
            .timeGrain("Last30Days")
            .timePeriod(BudgetTimePeriodArgs.builder()
                .endDate("2025-04-01T00:00:00Z")
                .startDate("2023-04-01T00:00:00Z")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const budget = new azure_native.costmanagement.Budget("budget", {
    budgetName: "TestAlertRule",
    category: azure_native.costmanagement.CategoryType.ReservationUtilization,
    eTag: "\"1d34d016a593709\"",
    filter: {},
    notifications: {
        Actual_LessThan_99_Percent: {
            contactEmails: [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            enabled: true,
            frequency: azure_native.costmanagement.Frequency.Daily,
            locale: azure_native.costmanagement.CultureCode.En_us,
            operator: azure_native.costmanagement.BudgetNotificationOperatorType.LessThan,
            threshold: 99,
        },
    },
    scope: "providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN",
    timeGrain: azure_native.costmanagement.TimeGrainType.Last30Days,
    timePeriod: {
        endDate: "2025-04-01T00:00:00Z",
        startDate: "2023-04-01T00:00:00Z",
    },
});
import pulumi
import pulumi_azure_native as azure_native
budget = azure_native.costmanagement.Budget("budget",
    budget_name="TestAlertRule",
    category=azure_native.costmanagement.CategoryType.RESERVATION_UTILIZATION,
    e_tag="\"1d34d016a593709\"",
    filter={},
    notifications={
        "Actual_LessThan_99_Percent": {
            "contact_emails": [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            "enabled": True,
            "frequency": azure_native.costmanagement.Frequency.DAILY,
            "locale": azure_native.costmanagement.CultureCode.EN_US,
            "operator": azure_native.costmanagement.BudgetNotificationOperatorType.LESS_THAN,
            "threshold": 99,
        },
    },
    scope="providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN",
    time_grain=azure_native.costmanagement.TimeGrainType.LAST30_DAYS,
    time_period={
        "end_date": "2025-04-01T00:00:00Z",
        "start_date": "2023-04-01T00:00:00Z",
    })
resources:
  budget:
    type: azure-native:costmanagement:Budget
    properties:
      budgetName: TestAlertRule
      category: ReservationUtilization
      eTag: '"1d34d016a593709"'
      filter: {}
      notifications:
        Actual_LessThan_99_Percent:
          contactEmails:
            - johndoe@contoso.com
            - janesmith@contoso.com
          enabled: true
          frequency: Daily
          locale: en-us
          operator: LessThan
          threshold: 99
      scope: providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/billingProfiles/KKKK-LLLL-MMM-NNN
      timeGrain: Last30Days
      timePeriod:
        endDate: 2025-04-01T00:00:00Z
        startDate: 2023-04-01T00:00:00Z
CreateOrUpdate-ReservationUtilization-CustomerCSP-AlertRule-ReservationIdFilter
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() => 
{
    var budget = new AzureNative.CostManagement.Budget("budget", new()
    {
        BudgetName = "TestAlertRule",
        Category = AzureNative.CostManagement.CategoryType.ReservationUtilization,
        ETag = "\"1d34d016a593709\"",
        Filter = new AzureNative.CostManagement.Inputs.BudgetFilterArgs
        {
            Dimensions = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
            {
                Name = "ReservationId",
                Operator = AzureNative.CostManagement.BudgetOperatorType.In,
                Values = new[]
                {
                    "00000000-0000-0000-0000-000000000000",
                    "00000000-0000-0000-0000-000000000001",
                    "00000000-0000-0000-0000-000000000002",
                },
            },
        },
        Notifications = 
        {
            { "Actual_LessThan_99_Percent", new AzureNative.CostManagement.Inputs.NotificationArgs
            {
                ContactEmails = new[]
                {
                    "johndoe@contoso.com",
                    "janesmith@contoso.com",
                },
                Enabled = true,
                Frequency = AzureNative.CostManagement.Frequency.Daily,
                Locale = AzureNative.CostManagement.CultureCode.En_us,
                Operator = AzureNative.CostManagement.BudgetNotificationOperatorType.LessThan,
                Threshold = 99,
            } },
        },
        Scope = "providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444",
        TimeGrain = AzureNative.CostManagement.TimeGrainType.Last30Days,
        TimePeriod = new AzureNative.CostManagement.Inputs.BudgetTimePeriodArgs
        {
            EndDate = "2025-04-01T00:00:00Z",
            StartDate = "2023-04-01T00:00:00Z",
        },
    });
});
package main
import (
	costmanagement "github.com/pulumi/pulumi-azure-native-sdk/costmanagement/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := costmanagement.NewBudget(ctx, "budget", &costmanagement.BudgetArgs{
			BudgetName: pulumi.String("TestAlertRule"),
			Category:   pulumi.String(costmanagement.CategoryTypeReservationUtilization),
			ETag:       pulumi.String("\"1d34d016a593709\""),
			Filter: &costmanagement.BudgetFilterArgs{
				Dimensions: &costmanagement.BudgetComparisonExpressionArgs{
					Name:     pulumi.String("ReservationId"),
					Operator: pulumi.String(costmanagement.BudgetOperatorTypeIn),
					Values: pulumi.StringArray{
						pulumi.String("00000000-0000-0000-0000-000000000000"),
						pulumi.String("00000000-0000-0000-0000-000000000001"),
						pulumi.String("00000000-0000-0000-0000-000000000002"),
					},
				},
			},
			Notifications: costmanagement.NotificationMap{
				"Actual_LessThan_99_Percent": &costmanagement.NotificationArgs{
					ContactEmails: pulumi.StringArray{
						pulumi.String("johndoe@contoso.com"),
						pulumi.String("janesmith@contoso.com"),
					},
					Enabled:   pulumi.Bool(true),
					Frequency: pulumi.String(costmanagement.FrequencyDaily),
					Locale:    pulumi.String(costmanagement.CultureCode_En_Us),
					Operator:  pulumi.String(costmanagement.BudgetNotificationOperatorTypeLessThan),
					Threshold: pulumi.Float64(99),
				},
			},
			Scope:     pulumi.String("providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444"),
			TimeGrain: pulumi.String(costmanagement.TimeGrainTypeLast30Days),
			TimePeriod: &costmanagement.BudgetTimePeriodArgs{
				EndDate:   pulumi.String("2025-04-01T00:00:00Z"),
				StartDate: pulumi.String("2023-04-01T00:00:00Z"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.costmanagement.Budget;
import com.pulumi.azurenative.costmanagement.BudgetArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetFilterArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetComparisonExpressionArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetTimePeriodArgs;
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) {
        var budget = new Budget("budget", BudgetArgs.builder()
            .budgetName("TestAlertRule")
            .category("ReservationUtilization")
            .eTag("\"1d34d016a593709\"")
            .filter(BudgetFilterArgs.builder()
                .dimensions(BudgetComparisonExpressionArgs.builder()
                    .name("ReservationId")
                    .operator("In")
                    .values(                    
                        "00000000-0000-0000-0000-000000000000",
                        "00000000-0000-0000-0000-000000000001",
                        "00000000-0000-0000-0000-000000000002")
                    .build())
                .build())
            .notifications(Map.of("Actual_LessThan_99_Percent", Map.ofEntries(
                Map.entry("contactEmails",                 
                    "johndoe@contoso.com",
                    "janesmith@contoso.com"),
                Map.entry("enabled", true),
                Map.entry("frequency", "Daily"),
                Map.entry("locale", "en-us"),
                Map.entry("operator", "LessThan"),
                Map.entry("threshold", 99)
            )))
            .scope("providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444")
            .timeGrain("Last30Days")
            .timePeriod(BudgetTimePeriodArgs.builder()
                .endDate("2025-04-01T00:00:00Z")
                .startDate("2023-04-01T00:00:00Z")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const budget = new azure_native.costmanagement.Budget("budget", {
    budgetName: "TestAlertRule",
    category: azure_native.costmanagement.CategoryType.ReservationUtilization,
    eTag: "\"1d34d016a593709\"",
    filter: {
        dimensions: {
            name: "ReservationId",
            operator: azure_native.costmanagement.BudgetOperatorType.In,
            values: [
                "00000000-0000-0000-0000-000000000000",
                "00000000-0000-0000-0000-000000000001",
                "00000000-0000-0000-0000-000000000002",
            ],
        },
    },
    notifications: {
        Actual_LessThan_99_Percent: {
            contactEmails: [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            enabled: true,
            frequency: azure_native.costmanagement.Frequency.Daily,
            locale: azure_native.costmanagement.CultureCode.En_us,
            operator: azure_native.costmanagement.BudgetNotificationOperatorType.LessThan,
            threshold: 99,
        },
    },
    scope: "providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444",
    timeGrain: azure_native.costmanagement.TimeGrainType.Last30Days,
    timePeriod: {
        endDate: "2025-04-01T00:00:00Z",
        startDate: "2023-04-01T00:00:00Z",
    },
});
import pulumi
import pulumi_azure_native as azure_native
budget = azure_native.costmanagement.Budget("budget",
    budget_name="TestAlertRule",
    category=azure_native.costmanagement.CategoryType.RESERVATION_UTILIZATION,
    e_tag="\"1d34d016a593709\"",
    filter={
        "dimensions": {
            "name": "ReservationId",
            "operator": azure_native.costmanagement.BudgetOperatorType.IN_,
            "values": [
                "00000000-0000-0000-0000-000000000000",
                "00000000-0000-0000-0000-000000000001",
                "00000000-0000-0000-0000-000000000002",
            ],
        },
    },
    notifications={
        "Actual_LessThan_99_Percent": {
            "contact_emails": [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            "enabled": True,
            "frequency": azure_native.costmanagement.Frequency.DAILY,
            "locale": azure_native.costmanagement.CultureCode.EN_US,
            "operator": azure_native.costmanagement.BudgetNotificationOperatorType.LESS_THAN,
            "threshold": 99,
        },
    },
    scope="providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444",
    time_grain=azure_native.costmanagement.TimeGrainType.LAST30_DAYS,
    time_period={
        "end_date": "2025-04-01T00:00:00Z",
        "start_date": "2023-04-01T00:00:00Z",
    })
resources:
  budget:
    type: azure-native:costmanagement:Budget
    properties:
      budgetName: TestAlertRule
      category: ReservationUtilization
      eTag: '"1d34d016a593709"'
      filter:
        dimensions:
          name: ReservationId
          operator: In
          values:
            - 00000000-0000-0000-0000-000000000000
            - 00000000-0000-0000-0000-000000000001
            - 00000000-0000-0000-0000-000000000002
      notifications:
        Actual_LessThan_99_Percent:
          contactEmails:
            - johndoe@contoso.com
            - janesmith@contoso.com
          enabled: true
          frequency: Daily
          locale: en-us
          operator: LessThan
          threshold: 99
      scope: providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444
      timeGrain: Last30Days
      timePeriod:
        endDate: 2025-04-01T00:00:00Z
        startDate: 2023-04-01T00:00:00Z
CreateOrUpdate-ReservationUtilization-CustomerCSP-AlertRule-ReservedResourceTypeFilter
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() => 
{
    var budget = new AzureNative.CostManagement.Budget("budget", new()
    {
        BudgetName = "TestAlertRule",
        Category = AzureNative.CostManagement.CategoryType.ReservationUtilization,
        ETag = "\"1d34d016a593709\"",
        Filter = new AzureNative.CostManagement.Inputs.BudgetFilterArgs
        {
            Dimensions = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
            {
                Name = "ReservedResourceType",
                Operator = AzureNative.CostManagement.BudgetOperatorType.In,
                Values = new[]
                {
                    "VirtualMachines",
                    "SqlDatabases",
                    "CosmosDb",
                },
            },
        },
        Notifications = 
        {
            { "Actual_LessThan_99_Percent", new AzureNative.CostManagement.Inputs.NotificationArgs
            {
                ContactEmails = new[]
                {
                    "johndoe@contoso.com",
                    "janesmith@contoso.com",
                },
                Enabled = true,
                Frequency = AzureNative.CostManagement.Frequency.Daily,
                Locale = AzureNative.CostManagement.CultureCode.En_us,
                Operator = AzureNative.CostManagement.BudgetNotificationOperatorType.LessThan,
                Threshold = 99,
            } },
        },
        Scope = "providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444",
        TimeGrain = AzureNative.CostManagement.TimeGrainType.Last30Days,
        TimePeriod = new AzureNative.CostManagement.Inputs.BudgetTimePeriodArgs
        {
            EndDate = "2025-04-01T00:00:00Z",
            StartDate = "2023-04-01T00:00:00Z",
        },
    });
});
package main
import (
	costmanagement "github.com/pulumi/pulumi-azure-native-sdk/costmanagement/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := costmanagement.NewBudget(ctx, "budget", &costmanagement.BudgetArgs{
			BudgetName: pulumi.String("TestAlertRule"),
			Category:   pulumi.String(costmanagement.CategoryTypeReservationUtilization),
			ETag:       pulumi.String("\"1d34d016a593709\""),
			Filter: &costmanagement.BudgetFilterArgs{
				Dimensions: &costmanagement.BudgetComparisonExpressionArgs{
					Name:     pulumi.String("ReservedResourceType"),
					Operator: pulumi.String(costmanagement.BudgetOperatorTypeIn),
					Values: pulumi.StringArray{
						pulumi.String("VirtualMachines"),
						pulumi.String("SqlDatabases"),
						pulumi.String("CosmosDb"),
					},
				},
			},
			Notifications: costmanagement.NotificationMap{
				"Actual_LessThan_99_Percent": &costmanagement.NotificationArgs{
					ContactEmails: pulumi.StringArray{
						pulumi.String("johndoe@contoso.com"),
						pulumi.String("janesmith@contoso.com"),
					},
					Enabled:   pulumi.Bool(true),
					Frequency: pulumi.String(costmanagement.FrequencyDaily),
					Locale:    pulumi.String(costmanagement.CultureCode_En_Us),
					Operator:  pulumi.String(costmanagement.BudgetNotificationOperatorTypeLessThan),
					Threshold: pulumi.Float64(99),
				},
			},
			Scope:     pulumi.String("providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444"),
			TimeGrain: pulumi.String(costmanagement.TimeGrainTypeLast30Days),
			TimePeriod: &costmanagement.BudgetTimePeriodArgs{
				EndDate:   pulumi.String("2025-04-01T00:00:00Z"),
				StartDate: pulumi.String("2023-04-01T00:00:00Z"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.costmanagement.Budget;
import com.pulumi.azurenative.costmanagement.BudgetArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetFilterArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetComparisonExpressionArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetTimePeriodArgs;
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) {
        var budget = new Budget("budget", BudgetArgs.builder()
            .budgetName("TestAlertRule")
            .category("ReservationUtilization")
            .eTag("\"1d34d016a593709\"")
            .filter(BudgetFilterArgs.builder()
                .dimensions(BudgetComparisonExpressionArgs.builder()
                    .name("ReservedResourceType")
                    .operator("In")
                    .values(                    
                        "VirtualMachines",
                        "SqlDatabases",
                        "CosmosDb")
                    .build())
                .build())
            .notifications(Map.of("Actual_LessThan_99_Percent", Map.ofEntries(
                Map.entry("contactEmails",                 
                    "johndoe@contoso.com",
                    "janesmith@contoso.com"),
                Map.entry("enabled", true),
                Map.entry("frequency", "Daily"),
                Map.entry("locale", "en-us"),
                Map.entry("operator", "LessThan"),
                Map.entry("threshold", 99)
            )))
            .scope("providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444")
            .timeGrain("Last30Days")
            .timePeriod(BudgetTimePeriodArgs.builder()
                .endDate("2025-04-01T00:00:00Z")
                .startDate("2023-04-01T00:00:00Z")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const budget = new azure_native.costmanagement.Budget("budget", {
    budgetName: "TestAlertRule",
    category: azure_native.costmanagement.CategoryType.ReservationUtilization,
    eTag: "\"1d34d016a593709\"",
    filter: {
        dimensions: {
            name: "ReservedResourceType",
            operator: azure_native.costmanagement.BudgetOperatorType.In,
            values: [
                "VirtualMachines",
                "SqlDatabases",
                "CosmosDb",
            ],
        },
    },
    notifications: {
        Actual_LessThan_99_Percent: {
            contactEmails: [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            enabled: true,
            frequency: azure_native.costmanagement.Frequency.Daily,
            locale: azure_native.costmanagement.CultureCode.En_us,
            operator: azure_native.costmanagement.BudgetNotificationOperatorType.LessThan,
            threshold: 99,
        },
    },
    scope: "providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444",
    timeGrain: azure_native.costmanagement.TimeGrainType.Last30Days,
    timePeriod: {
        endDate: "2025-04-01T00:00:00Z",
        startDate: "2023-04-01T00:00:00Z",
    },
});
import pulumi
import pulumi_azure_native as azure_native
budget = azure_native.costmanagement.Budget("budget",
    budget_name="TestAlertRule",
    category=azure_native.costmanagement.CategoryType.RESERVATION_UTILIZATION,
    e_tag="\"1d34d016a593709\"",
    filter={
        "dimensions": {
            "name": "ReservedResourceType",
            "operator": azure_native.costmanagement.BudgetOperatorType.IN_,
            "values": [
                "VirtualMachines",
                "SqlDatabases",
                "CosmosDb",
            ],
        },
    },
    notifications={
        "Actual_LessThan_99_Percent": {
            "contact_emails": [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            "enabled": True,
            "frequency": azure_native.costmanagement.Frequency.DAILY,
            "locale": azure_native.costmanagement.CultureCode.EN_US,
            "operator": azure_native.costmanagement.BudgetNotificationOperatorType.LESS_THAN,
            "threshold": 99,
        },
    },
    scope="providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444",
    time_grain=azure_native.costmanagement.TimeGrainType.LAST30_DAYS,
    time_period={
        "end_date": "2025-04-01T00:00:00Z",
        "start_date": "2023-04-01T00:00:00Z",
    })
resources:
  budget:
    type: azure-native:costmanagement:Budget
    properties:
      budgetName: TestAlertRule
      category: ReservationUtilization
      eTag: '"1d34d016a593709"'
      filter:
        dimensions:
          name: ReservedResourceType
          operator: In
          values:
            - VirtualMachines
            - SqlDatabases
            - CosmosDb
      notifications:
        Actual_LessThan_99_Percent:
          contactEmails:
            - johndoe@contoso.com
            - janesmith@contoso.com
          enabled: true
          frequency: Daily
          locale: en-us
          operator: LessThan
          threshold: 99
      scope: providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444
      timeGrain: Last30Days
      timePeriod:
        endDate: 2025-04-01T00:00:00Z
        startDate: 2023-04-01T00:00:00Z
CreateOrUpdate-ReservationUtilization-CustomerCSP-AlertRule.json
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() => 
{
    var budget = new AzureNative.CostManagement.Budget("budget", new()
    {
        BudgetName = "TestAlertRule",
        Category = AzureNative.CostManagement.CategoryType.ReservationUtilization,
        ETag = "\"1d34d016a593709\"",
        Filter = null,
        Notifications = 
        {
            { "Actual_LessThan_99_Percent", new AzureNative.CostManagement.Inputs.NotificationArgs
            {
                ContactEmails = new[]
                {
                    "johndoe@contoso.com",
                    "janesmith@contoso.com",
                },
                Enabled = true,
                Frequency = AzureNative.CostManagement.Frequency.Daily,
                Locale = AzureNative.CostManagement.CultureCode.En_us,
                Operator = AzureNative.CostManagement.BudgetNotificationOperatorType.LessThan,
                Threshold = 99,
            } },
        },
        Scope = "providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444",
        TimeGrain = AzureNative.CostManagement.TimeGrainType.Last30Days,
        TimePeriod = new AzureNative.CostManagement.Inputs.BudgetTimePeriodArgs
        {
            EndDate = "2025-04-01T00:00:00Z",
            StartDate = "2023-04-01T00:00:00Z",
        },
    });
});
package main
import (
	costmanagement "github.com/pulumi/pulumi-azure-native-sdk/costmanagement/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := costmanagement.NewBudget(ctx, "budget", &costmanagement.BudgetArgs{
			BudgetName: pulumi.String("TestAlertRule"),
			Category:   pulumi.String(costmanagement.CategoryTypeReservationUtilization),
			ETag:       pulumi.String("\"1d34d016a593709\""),
			Filter:     &costmanagement.BudgetFilterArgs{},
			Notifications: costmanagement.NotificationMap{
				"Actual_LessThan_99_Percent": &costmanagement.NotificationArgs{
					ContactEmails: pulumi.StringArray{
						pulumi.String("johndoe@contoso.com"),
						pulumi.String("janesmith@contoso.com"),
					},
					Enabled:   pulumi.Bool(true),
					Frequency: pulumi.String(costmanagement.FrequencyDaily),
					Locale:    pulumi.String(costmanagement.CultureCode_En_Us),
					Operator:  pulumi.String(costmanagement.BudgetNotificationOperatorTypeLessThan),
					Threshold: pulumi.Float64(99),
				},
			},
			Scope:     pulumi.String("providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444"),
			TimeGrain: pulumi.String(costmanagement.TimeGrainTypeLast30Days),
			TimePeriod: &costmanagement.BudgetTimePeriodArgs{
				EndDate:   pulumi.String("2025-04-01T00:00:00Z"),
				StartDate: pulumi.String("2023-04-01T00:00:00Z"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.costmanagement.Budget;
import com.pulumi.azurenative.costmanagement.BudgetArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetFilterArgs;
import com.pulumi.azurenative.costmanagement.inputs.BudgetTimePeriodArgs;
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) {
        var budget = new Budget("budget", BudgetArgs.builder()
            .budgetName("TestAlertRule")
            .category("ReservationUtilization")
            .eTag("\"1d34d016a593709\"")
            .filter()
            .notifications(Map.of("Actual_LessThan_99_Percent", Map.ofEntries(
                Map.entry("contactEmails",                 
                    "johndoe@contoso.com",
                    "janesmith@contoso.com"),
                Map.entry("enabled", true),
                Map.entry("frequency", "Daily"),
                Map.entry("locale", "en-us"),
                Map.entry("operator", "LessThan"),
                Map.entry("threshold", 99)
            )))
            .scope("providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444")
            .timeGrain("Last30Days")
            .timePeriod(BudgetTimePeriodArgs.builder()
                .endDate("2025-04-01T00:00:00Z")
                .startDate("2023-04-01T00:00:00Z")
                .build())
            .build());
    }
}
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const budget = new azure_native.costmanagement.Budget("budget", {
    budgetName: "TestAlertRule",
    category: azure_native.costmanagement.CategoryType.ReservationUtilization,
    eTag: "\"1d34d016a593709\"",
    filter: {},
    notifications: {
        Actual_LessThan_99_Percent: {
            contactEmails: [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            enabled: true,
            frequency: azure_native.costmanagement.Frequency.Daily,
            locale: azure_native.costmanagement.CultureCode.En_us,
            operator: azure_native.costmanagement.BudgetNotificationOperatorType.LessThan,
            threshold: 99,
        },
    },
    scope: "providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444",
    timeGrain: azure_native.costmanagement.TimeGrainType.Last30Days,
    timePeriod: {
        endDate: "2025-04-01T00:00:00Z",
        startDate: "2023-04-01T00:00:00Z",
    },
});
import pulumi
import pulumi_azure_native as azure_native
budget = azure_native.costmanagement.Budget("budget",
    budget_name="TestAlertRule",
    category=azure_native.costmanagement.CategoryType.RESERVATION_UTILIZATION,
    e_tag="\"1d34d016a593709\"",
    filter={},
    notifications={
        "Actual_LessThan_99_Percent": {
            "contact_emails": [
                "johndoe@contoso.com",
                "janesmith@contoso.com",
            ],
            "enabled": True,
            "frequency": azure_native.costmanagement.Frequency.DAILY,
            "locale": azure_native.costmanagement.CultureCode.EN_US,
            "operator": azure_native.costmanagement.BudgetNotificationOperatorType.LESS_THAN,
            "threshold": 99,
        },
    },
    scope="providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444",
    time_grain=azure_native.costmanagement.TimeGrainType.LAST30_DAYS,
    time_period={
        "end_date": "2025-04-01T00:00:00Z",
        "start_date": "2023-04-01T00:00:00Z",
    })
resources:
  budget:
    type: azure-native:costmanagement:Budget
    properties:
      budgetName: TestAlertRule
      category: ReservationUtilization
      eTag: '"1d34d016a593709"'
      filter: {}
      notifications:
        Actual_LessThan_99_Percent:
          contactEmails:
            - johndoe@contoso.com
            - janesmith@contoso.com
          enabled: true
          frequency: Daily
          locale: en-us
          operator: LessThan
          threshold: 99
      scope: providers/Microsoft.Billing/billingAccounts/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj_2023-04-01/customers/000000-1111-2222-3333-444444444444
      timeGrain: Last30Days
      timePeriod:
        endDate: 2025-04-01T00:00:00Z
        startDate: 2023-04-01T00:00:00Z
Create Budget Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Budget(name: string, args: BudgetArgs, opts?: CustomResourceOptions);@overload
def Budget(resource_name: str,
           args: BudgetArgs,
           opts: Optional[ResourceOptions] = None)
@overload
def Budget(resource_name: str,
           opts: Optional[ResourceOptions] = None,
           category: Optional[Union[str, CategoryType]] = None,
           scope: Optional[str] = None,
           time_grain: Optional[Union[str, TimeGrainType]] = None,
           time_period: Optional[BudgetTimePeriodArgs] = None,
           amount: Optional[float] = None,
           budget_name: Optional[str] = None,
           e_tag: Optional[str] = None,
           filter: Optional[BudgetFilterArgs] = None,
           notifications: Optional[Mapping[str, NotificationArgs]] = None)func NewBudget(ctx *Context, name string, args BudgetArgs, opts ...ResourceOption) (*Budget, error)public Budget(string name, BudgetArgs args, CustomResourceOptions? opts = null)
public Budget(String name, BudgetArgs args)
public Budget(String name, BudgetArgs args, CustomResourceOptions options)
type: azure-native:costmanagement:Budget
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args BudgetArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args BudgetArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args BudgetArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args BudgetArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args BudgetArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var azure_nativeBudgetResource = new AzureNative.CostManagement.Budget("azure-nativeBudgetResource", new()
{
    Category = "string",
    Scope = "string",
    TimeGrain = "string",
    TimePeriod = new AzureNative.CostManagement.Inputs.BudgetTimePeriodArgs
    {
        StartDate = "string",
        EndDate = "string",
    },
    Amount = 0,
    BudgetName = "string",
    ETag = "string",
    Filter = new AzureNative.CostManagement.Inputs.BudgetFilterArgs
    {
        And = new[]
        {
            new AzureNative.CostManagement.Inputs.BudgetFilterPropertiesArgs
            {
                Dimensions = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
                {
                    Name = "string",
                    Operator = "string",
                    Values = new[]
                    {
                        "string",
                    },
                },
                Tags = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
                {
                    Name = "string",
                    Operator = "string",
                    Values = new[]
                    {
                        "string",
                    },
                },
            },
        },
        Dimensions = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
        {
            Name = "string",
            Operator = "string",
            Values = new[]
            {
                "string",
            },
        },
        Tags = new AzureNative.CostManagement.Inputs.BudgetComparisonExpressionArgs
        {
            Name = "string",
            Operator = "string",
            Values = new[]
            {
                "string",
            },
        },
    },
    Notifications = 
    {
        { "string", new AzureNative.CostManagement.Inputs.NotificationArgs
        {
            ContactEmails = new[]
            {
                "string",
            },
            Enabled = false,
            Operator = "string",
            Threshold = 0,
            ContactGroups = new[]
            {
                "string",
            },
            ContactRoles = new[]
            {
                "string",
            },
            Frequency = "string",
            Locale = "string",
            ThresholdType = "string",
        } },
    },
});
example, err := costmanagement.NewBudget(ctx, "azure-nativeBudgetResource", &costmanagement.BudgetArgs{
	Category:  pulumi.String("string"),
	Scope:     pulumi.String("string"),
	TimeGrain: pulumi.String("string"),
	TimePeriod: &costmanagement.BudgetTimePeriodArgs{
		StartDate: pulumi.String("string"),
		EndDate:   pulumi.String("string"),
	},
	Amount:     pulumi.Float64(0),
	BudgetName: pulumi.String("string"),
	ETag:       pulumi.String("string"),
	Filter: &costmanagement.BudgetFilterArgs{
		And: costmanagement.BudgetFilterPropertiesArray{
			&costmanagement.BudgetFilterPropertiesArgs{
				Dimensions: &costmanagement.BudgetComparisonExpressionArgs{
					Name:     pulumi.String("string"),
					Operator: pulumi.String("string"),
					Values: pulumi.StringArray{
						pulumi.String("string"),
					},
				},
				Tags: &costmanagement.BudgetComparisonExpressionArgs{
					Name:     pulumi.String("string"),
					Operator: pulumi.String("string"),
					Values: pulumi.StringArray{
						pulumi.String("string"),
					},
				},
			},
		},
		Dimensions: &costmanagement.BudgetComparisonExpressionArgs{
			Name:     pulumi.String("string"),
			Operator: pulumi.String("string"),
			Values: pulumi.StringArray{
				pulumi.String("string"),
			},
		},
		Tags: &costmanagement.BudgetComparisonExpressionArgs{
			Name:     pulumi.String("string"),
			Operator: pulumi.String("string"),
			Values: pulumi.StringArray{
				pulumi.String("string"),
			},
		},
	},
	Notifications: costmanagement.NotificationMap{
		"string": &costmanagement.NotificationArgs{
			ContactEmails: pulumi.StringArray{
				pulumi.String("string"),
			},
			Enabled:   pulumi.Bool(false),
			Operator:  pulumi.String("string"),
			Threshold: pulumi.Float64(0),
			ContactGroups: pulumi.StringArray{
				pulumi.String("string"),
			},
			ContactRoles: pulumi.StringArray{
				pulumi.String("string"),
			},
			Frequency:     pulumi.String("string"),
			Locale:        pulumi.String("string"),
			ThresholdType: pulumi.String("string"),
		},
	},
})
var azure_nativeBudgetResource = new Budget("azure-nativeBudgetResource", BudgetArgs.builder()
    .category("string")
    .scope("string")
    .timeGrain("string")
    .timePeriod(BudgetTimePeriodArgs.builder()
        .startDate("string")
        .endDate("string")
        .build())
    .amount(0)
    .budgetName("string")
    .eTag("string")
    .filter(BudgetFilterArgs.builder()
        .and(BudgetFilterPropertiesArgs.builder()
            .dimensions(BudgetComparisonExpressionArgs.builder()
                .name("string")
                .operator("string")
                .values("string")
                .build())
            .tags(BudgetComparisonExpressionArgs.builder()
                .name("string")
                .operator("string")
                .values("string")
                .build())
            .build())
        .dimensions(BudgetComparisonExpressionArgs.builder()
            .name("string")
            .operator("string")
            .values("string")
            .build())
        .tags(BudgetComparisonExpressionArgs.builder()
            .name("string")
            .operator("string")
            .values("string")
            .build())
        .build())
    .notifications(Map.of("string", Map.ofEntries(
        Map.entry("contactEmails", "string"),
        Map.entry("enabled", false),
        Map.entry("operator", "string"),
        Map.entry("threshold", 0),
        Map.entry("contactGroups", "string"),
        Map.entry("contactRoles", "string"),
        Map.entry("frequency", "string"),
        Map.entry("locale", "string"),
        Map.entry("thresholdType", "string")
    )))
    .build());
azure_native_budget_resource = azure_native.costmanagement.Budget("azure-nativeBudgetResource",
    category="string",
    scope="string",
    time_grain="string",
    time_period={
        "start_date": "string",
        "end_date": "string",
    },
    amount=0,
    budget_name="string",
    e_tag="string",
    filter={
        "and_": [{
            "dimensions": {
                "name": "string",
                "operator": "string",
                "values": ["string"],
            },
            "tags": {
                "name": "string",
                "operator": "string",
                "values": ["string"],
            },
        }],
        "dimensions": {
            "name": "string",
            "operator": "string",
            "values": ["string"],
        },
        "tags": {
            "name": "string",
            "operator": "string",
            "values": ["string"],
        },
    },
    notifications={
        "string": {
            "contact_emails": ["string"],
            "enabled": False,
            "operator": "string",
            "threshold": 0,
            "contact_groups": ["string"],
            "contact_roles": ["string"],
            "frequency": "string",
            "locale": "string",
            "threshold_type": "string",
        },
    })
const azure_nativeBudgetResource = new azure_native.costmanagement.Budget("azure-nativeBudgetResource", {
    category: "string",
    scope: "string",
    timeGrain: "string",
    timePeriod: {
        startDate: "string",
        endDate: "string",
    },
    amount: 0,
    budgetName: "string",
    eTag: "string",
    filter: {
        and: [{
            dimensions: {
                name: "string",
                operator: "string",
                values: ["string"],
            },
            tags: {
                name: "string",
                operator: "string",
                values: ["string"],
            },
        }],
        dimensions: {
            name: "string",
            operator: "string",
            values: ["string"],
        },
        tags: {
            name: "string",
            operator: "string",
            values: ["string"],
        },
    },
    notifications: {
        string: {
            contactEmails: ["string"],
            enabled: false,
            operator: "string",
            threshold: 0,
            contactGroups: ["string"],
            contactRoles: ["string"],
            frequency: "string",
            locale: "string",
            thresholdType: "string",
        },
    },
});
type: azure-native:costmanagement:Budget
properties:
    amount: 0
    budgetName: string
    category: string
    eTag: string
    filter:
        and:
            - dimensions:
                name: string
                operator: string
                values:
                    - string
              tags:
                name: string
                operator: string
                values:
                    - string
        dimensions:
            name: string
            operator: string
            values:
                - string
        tags:
            name: string
            operator: string
            values:
                - string
    notifications:
        string:
            contactEmails:
                - string
            contactGroups:
                - string
            contactRoles:
                - string
            enabled: false
            frequency: string
            locale: string
            operator: string
            threshold: 0
            thresholdType: string
    scope: string
    timeGrain: string
    timePeriod:
        endDate: string
        startDate: string
Budget Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The Budget resource accepts the following input properties:
- Category
string | Pulumi.Azure Native. Cost Management. Category Type 
- The category of the budget.- 'Cost' defines a Budget.
- 'ReservationUtilization' defines a Reservation Utilization Alert Rule.
 
- Scope string
- 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)
 
- TimeGrain string | Pulumi.Azure Native. Cost Management. Time Grain Type 
- 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. 
- TimePeriod Pulumi.Azure Native. Cost Management. Inputs. Budget Time Period 
- 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. 
- Amount double
- The total amount of cost to track with the budget. - Supported for CategoryType(s): Cost. - Required for CategoryType(s): Cost. 
- BudgetName string
- Budget Name.
- ETag string
- 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.
- Filter
Pulumi.Azure Native. Cost Management. Inputs. Budget Filter 
- May be used to filter budgets by user-specified dimensions and/or tags. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- Notifications
Dictionary<string, Pulumi.Azure Native. Cost Management. Inputs. Notification Args> 
- 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.
 
- Category
string | CategoryType 
- The category of the budget.- 'Cost' defines a Budget.
- 'ReservationUtilization' defines a Reservation Utilization Alert Rule.
 
- Scope string
- 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)
 
- TimeGrain string | TimeGrain Type 
- 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. 
- TimePeriod BudgetTime Period Args 
- 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. 
- Amount float64
- The total amount of cost to track with the budget. - Supported for CategoryType(s): Cost. - Required for CategoryType(s): Cost. 
- BudgetName string
- Budget Name.
- ETag string
- 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.
- Filter
BudgetFilter Args 
- May be used to filter budgets by user-specified dimensions and/or tags. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- Notifications
map[string]NotificationArgs 
- 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.
 
- category
String | CategoryType 
- The category of the budget.- 'Cost' defines a Budget.
- 'ReservationUtilization' defines a Reservation Utilization Alert Rule.
 
- scope String
- 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)
 
- timeGrain String | TimeGrain Type 
- 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. 
- timePeriod BudgetTime Period 
- 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. 
- amount Double
- The total amount of cost to track with the budget. - Supported for CategoryType(s): Cost. - Required for CategoryType(s): Cost. 
- budgetName String
- Budget Name.
- eTag String
- 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.
- filter
BudgetFilter 
- May be used to filter budgets by user-specified dimensions and/or tags. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- notifications
Map<String,NotificationArgs> 
- 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.
 
- category
string | CategoryType 
- The category of the budget.- 'Cost' defines a Budget.
- 'ReservationUtilization' defines a Reservation Utilization Alert Rule.
 
- scope string
- 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)
 
- timeGrain string | TimeGrain Type 
- 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. 
- timePeriod BudgetTime Period 
- 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. 
- amount number
- The total amount of cost to track with the budget. - Supported for CategoryType(s): Cost. - Required for CategoryType(s): Cost. 
- budgetName string
- Budget Name.
- eTag string
- 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.
- filter
BudgetFilter 
- May be used to filter budgets by user-specified dimensions and/or tags. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- notifications
{[key: string]: NotificationArgs} 
- 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.
 
- category
str | CategoryType 
- The category of the budget.- 'Cost' defines a Budget.
- 'ReservationUtilization' defines a Reservation Utilization Alert Rule.
 
- scope str
- 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)
 
- time_grain str | TimeGrain Type 
- 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. 
- time_period BudgetTime Period Args 
- 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. 
- amount float
- The total amount of cost to track with the budget. - Supported for CategoryType(s): Cost. - Required for CategoryType(s): Cost. 
- budget_name str
- Budget Name.
- e_tag str
- 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.
- filter
BudgetFilter Args 
- May be used to filter budgets by user-specified dimensions and/or tags. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- notifications
Mapping[str, NotificationArgs] 
- 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.
 
- category
String | "Cost" | "ReservationUtilization" 
- The category of the budget.- 'Cost' defines a Budget.
- 'ReservationUtilization' defines a Reservation Utilization Alert Rule.
 
- scope String
- 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)
 
- timeGrain String | "Monthly" | "Quarterly" | "Annually" | "BillingMonth" | "Billing Quarter" | "Billing Annual" | "Last7Days" | "Last30Days" 
- 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. 
- timePeriod Property Map
- 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. 
- amount Number
- The total amount of cost to track with the budget. - Supported for CategoryType(s): Cost. - Required for CategoryType(s): Cost. 
- budgetName String
- Budget Name.
- eTag String
- 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.
- filter Property Map
- May be used to filter budgets by user-specified dimensions and/or tags. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- notifications Map<Property Map>
- 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.
 
Outputs
All input properties are implicitly available as output properties. Additionally, the Budget resource produces the following output properties:
- CurrentSpend Pulumi.Azure Native. Cost Management. Outputs. Current Spend Response 
- The current amount of cost which is being tracked for a budget. - Supported for CategoryType(s): Cost. 
- ForecastSpend Pulumi.Azure Native. Cost Management. Outputs. Forecast Spend Response 
- The forecasted cost which is being tracked for a budget. - Supported for CategoryType(s): Cost. 
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- The name of the resource
- Type string
- The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
- CurrentSpend CurrentSpend Response 
- The current amount of cost which is being tracked for a budget. - Supported for CategoryType(s): Cost. 
- ForecastSpend ForecastSpend Response 
- The forecasted cost which is being tracked for a budget. - Supported for CategoryType(s): Cost. 
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- The name of the resource
- Type string
- The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
- currentSpend CurrentSpend Response 
- The current amount of cost which is being tracked for a budget. - Supported for CategoryType(s): Cost. 
- forecastSpend ForecastSpend Response 
- The forecasted cost which is being tracked for a budget. - Supported for CategoryType(s): Cost. 
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- The name of the resource
- type String
- The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
- currentSpend CurrentSpend Response 
- The current amount of cost which is being tracked for a budget. - Supported for CategoryType(s): Cost. 
- forecastSpend ForecastSpend Response 
- The forecasted cost which is being tracked for a budget. - Supported for CategoryType(s): Cost. 
- id string
- The provider-assigned unique ID for this managed resource.
- name string
- The name of the resource
- type string
- The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
- current_spend CurrentSpend Response 
- The current amount of cost which is being tracked for a budget. - Supported for CategoryType(s): Cost. 
- forecast_spend ForecastSpend Response 
- The forecasted cost which is being tracked for a budget. - Supported for CategoryType(s): Cost. 
- id str
- The provider-assigned unique ID for this managed resource.
- name str
- The name of the resource
- type str
- The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
- currentSpend Property Map
- The current amount of cost which is being tracked for a budget. - Supported for CategoryType(s): Cost. 
- forecastSpend Property Map
- The forecasted cost which is being tracked for a budget. - Supported for CategoryType(s): Cost. 
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- The name of the resource
- type String
- The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
Supporting Types
BudgetComparisonExpression, BudgetComparisonExpressionArgs      
- Name string
- The name of the column to use in comparison.
- Operator
string | Pulumi.Azure Native. Cost Management. Budget Operator Type 
- The operator to use for comparison.
- Values List<string>
- Array of values to use for comparison
- Name string
- The name of the column to use in comparison.
- Operator
string | BudgetOperator Type 
- The operator to use for comparison.
- Values []string
- Array of values to use for comparison
- name String
- The name of the column to use in comparison.
- operator
String | BudgetOperator Type 
- The operator to use for comparison.
- values List<String>
- Array of values to use for comparison
- name string
- The name of the column to use in comparison.
- operator
string | BudgetOperator Type 
- The operator to use for comparison.
- values string[]
- Array of values to use for comparison
- name str
- The name of the column to use in comparison.
- operator
str | BudgetOperator Type 
- The operator to use for comparison.
- values Sequence[str]
- Array of values to use for comparison
BudgetComparisonExpressionResponse, BudgetComparisonExpressionResponseArgs        
BudgetFilter, BudgetFilterArgs    
- And
List<Pulumi.Azure Native. Cost Management. Inputs. Budget Filter Properties> 
- The logical "AND" expression. Must have at least 2 items. - Supported for CategoryType(s): Cost. 
- Dimensions
Pulumi.Azure Native. Cost Management. Inputs. Budget Comparison Expression 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
Pulumi.Azure Native. Cost Management. Inputs. Budget Comparison Expression 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- And
[]BudgetFilter Properties 
- The logical "AND" expression. Must have at least 2 items. - Supported for CategoryType(s): Cost. 
- Dimensions
BudgetComparison Expression 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- and
List<BudgetFilter Properties> 
- The logical "AND" expression. Must have at least 2 items. - Supported for CategoryType(s): Cost. 
- dimensions
BudgetComparison Expression 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- and
BudgetFilter Properties[] 
- The logical "AND" expression. Must have at least 2 items. - Supported for CategoryType(s): Cost. 
- dimensions
BudgetComparison Expression 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- and_
Sequence[BudgetFilter Properties] 
- The logical "AND" expression. Must have at least 2 items. - Supported for CategoryType(s): Cost. 
- dimensions
BudgetComparison Expression 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- and List<Property Map>
- The logical "AND" expression. Must have at least 2 items. - Supported for CategoryType(s): Cost. 
- dimensions Property Map
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- Property Map
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
BudgetFilterProperties, BudgetFilterPropertiesArgs      
- Dimensions
Pulumi.Azure Native. Cost Management. Inputs. Budget Comparison Expression 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
Pulumi.Azure Native. Cost Management. Inputs. Budget Comparison Expression 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- Dimensions
BudgetComparison Expression 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- dimensions
BudgetComparison Expression 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- dimensions
BudgetComparison Expression 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- dimensions
BudgetComparison Expression 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- dimensions Property Map
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- Property Map
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
BudgetFilterPropertiesResponse, BudgetFilterPropertiesResponseArgs        
- Dimensions
Pulumi.Azure Native. Cost Management. Inputs. Budget Comparison Expression Response 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
Pulumi.Azure Native. Cost Management. Inputs. Budget Comparison Expression Response 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- Dimensions
BudgetComparison Expression Response 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression Response 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- dimensions
BudgetComparison Expression Response 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression Response 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- dimensions
BudgetComparison Expression Response 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression Response 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- dimensions
BudgetComparison Expression Response 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression Response 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- dimensions Property Map
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- Property Map
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
BudgetFilterResponse, BudgetFilterResponseArgs      
- And
List<Pulumi.Azure Native. Cost Management. Inputs. Budget Filter Properties Response> 
- The logical "AND" expression. Must have at least 2 items. - Supported for CategoryType(s): Cost. 
- Dimensions
Pulumi.Azure Native. Cost Management. Inputs. Budget Comparison Expression Response 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
Pulumi.Azure Native. Cost Management. Inputs. Budget Comparison Expression Response 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- And
[]BudgetFilter Properties Response 
- The logical "AND" expression. Must have at least 2 items. - Supported for CategoryType(s): Cost. 
- Dimensions
BudgetComparison Expression Response 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression Response 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- and
List<BudgetFilter Properties Response> 
- The logical "AND" expression. Must have at least 2 items. - Supported for CategoryType(s): Cost. 
- dimensions
BudgetComparison Expression Response 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression Response 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- and
BudgetFilter Properties Response[] 
- The logical "AND" expression. Must have at least 2 items. - Supported for CategoryType(s): Cost. 
- dimensions
BudgetComparison Expression Response 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression Response 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- and_
Sequence[BudgetFilter Properties Response] 
- The logical "AND" expression. Must have at least 2 items. - Supported for CategoryType(s): Cost. 
- dimensions
BudgetComparison Expression Response 
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- 
BudgetComparison Expression Response 
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
- and List<Property Map>
- The logical "AND" expression. Must have at least 2 items. - Supported for CategoryType(s): Cost. 
- dimensions Property Map
- Has comparison expression for a dimension. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported dimension names for CategoryType: ReservationUtilization - ReservationId
- ReservedResourceType
 
- Property Map
- Has comparison expression for a tag. - Supported for CategoryType(s): Cost. 
BudgetNotificationOperatorType, BudgetNotificationOperatorTypeArgs        
- EqualTo 
- EqualToNotification will be triggered if the evaluated cost is the same as threshold value. Note: It’s not recommended to use this OperatorType as there’s low chance of cost being exactly the same as threshold value, leading to missing of your alert. This OperatorType will be deprecated in future. Supported for CategoryType(s): Cost. 
- GreaterThan 
- GreaterThanNotification will be triggered if the evaluated cost is greater than the threshold value. Note: This is the recommended OperatorType while configuring Budget Alert. Supported for CategoryType(s): Cost. 
- GreaterThan Or Equal To 
- GreaterThanOrEqualToNotification will be triggered if the evaluated cost is greater than or equal to the threshold value. Supported for CategoryType(s): Cost. 
- LessThan 
- LessThanNotification will be triggered if any Reservations in the scope of the Reservation Utilization Alert Rule have a utilization less than the threshold percentage. Supported for CategoryType(s): ReservationUtilization. 
- BudgetNotification Operator Type Equal To 
- EqualToNotification will be triggered if the evaluated cost is the same as threshold value. Note: It’s not recommended to use this OperatorType as there’s low chance of cost being exactly the same as threshold value, leading to missing of your alert. This OperatorType will be deprecated in future. Supported for CategoryType(s): Cost. 
- BudgetNotification Operator Type Greater Than 
- GreaterThanNotification will be triggered if the evaluated cost is greater than the threshold value. Note: This is the recommended OperatorType while configuring Budget Alert. Supported for CategoryType(s): Cost. 
- BudgetNotification Operator Type Greater Than Or Equal To 
- GreaterThanOrEqualToNotification will be triggered if the evaluated cost is greater than or equal to the threshold value. Supported for CategoryType(s): Cost. 
- BudgetNotification Operator Type Less Than 
- LessThanNotification will be triggered if any Reservations in the scope of the Reservation Utilization Alert Rule have a utilization less than the threshold percentage. Supported for CategoryType(s): ReservationUtilization. 
- EqualTo 
- EqualToNotification will be triggered if the evaluated cost is the same as threshold value. Note: It’s not recommended to use this OperatorType as there’s low chance of cost being exactly the same as threshold value, leading to missing of your alert. This OperatorType will be deprecated in future. Supported for CategoryType(s): Cost. 
- GreaterThan 
- GreaterThanNotification will be triggered if the evaluated cost is greater than the threshold value. Note: This is the recommended OperatorType while configuring Budget Alert. Supported for CategoryType(s): Cost. 
- GreaterThan Or Equal To 
- GreaterThanOrEqualToNotification will be triggered if the evaluated cost is greater than or equal to the threshold value. Supported for CategoryType(s): Cost. 
- LessThan 
- LessThanNotification will be triggered if any Reservations in the scope of the Reservation Utilization Alert Rule have a utilization less than the threshold percentage. Supported for CategoryType(s): ReservationUtilization. 
- EqualTo 
- EqualToNotification will be triggered if the evaluated cost is the same as threshold value. Note: It’s not recommended to use this OperatorType as there’s low chance of cost being exactly the same as threshold value, leading to missing of your alert. This OperatorType will be deprecated in future. Supported for CategoryType(s): Cost. 
- GreaterThan 
- GreaterThanNotification will be triggered if the evaluated cost is greater than the threshold value. Note: This is the recommended OperatorType while configuring Budget Alert. Supported for CategoryType(s): Cost. 
- GreaterThan Or Equal To 
- GreaterThanOrEqualToNotification will be triggered if the evaluated cost is greater than or equal to the threshold value. Supported for CategoryType(s): Cost. 
- LessThan 
- LessThanNotification will be triggered if any Reservations in the scope of the Reservation Utilization Alert Rule have a utilization less than the threshold percentage. Supported for CategoryType(s): ReservationUtilization. 
- EQUAL_TO
- EqualToNotification will be triggered if the evaluated cost is the same as threshold value. Note: It’s not recommended to use this OperatorType as there’s low chance of cost being exactly the same as threshold value, leading to missing of your alert. This OperatorType will be deprecated in future. Supported for CategoryType(s): Cost. 
- GREATER_THAN
- GreaterThanNotification will be triggered if the evaluated cost is greater than the threshold value. Note: This is the recommended OperatorType while configuring Budget Alert. Supported for CategoryType(s): Cost. 
- GREATER_THAN_OR_EQUAL_TO
- GreaterThanOrEqualToNotification will be triggered if the evaluated cost is greater than or equal to the threshold value. Supported for CategoryType(s): Cost. 
- LESS_THAN
- LessThanNotification will be triggered if any Reservations in the scope of the Reservation Utilization Alert Rule have a utilization less than the threshold percentage. Supported for CategoryType(s): ReservationUtilization. 
- "EqualTo" 
- EqualToNotification will be triggered if the evaluated cost is the same as threshold value. Note: It’s not recommended to use this OperatorType as there’s low chance of cost being exactly the same as threshold value, leading to missing of your alert. This OperatorType will be deprecated in future. Supported for CategoryType(s): Cost. 
- "GreaterThan" 
- GreaterThanNotification will be triggered if the evaluated cost is greater than the threshold value. Note: This is the recommended OperatorType while configuring Budget Alert. Supported for CategoryType(s): Cost. 
- "GreaterThan Or Equal To" 
- GreaterThanOrEqualToNotification will be triggered if the evaluated cost is greater than or equal to the threshold value. Supported for CategoryType(s): Cost. 
- "LessThan" 
- LessThanNotification will be triggered if any Reservations in the scope of the Reservation Utilization Alert Rule have a utilization less than the threshold percentage. Supported for CategoryType(s): ReservationUtilization. 
BudgetOperatorType, BudgetOperatorTypeArgs      
- In
- In
- BudgetOperator Type In 
- In
- In
- In
- In
- In
- IN_
- In
- "In"
- In
BudgetTimePeriod, BudgetTimePeriodArgs      
- StartDate string
- The start date for the budget. - Constraints for CategoryType: Cost - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. 
- Constraints for CategoryType: ReservationUtilization - Must be on or after the current date and less than the end date. 
 
- EndDate string
- The end date for the budget. - Constraints for CategoryType: Cost - No constraints. If not provided, we default this to 10 years from the start date. 
- Constraints for CategoryType: ReservationUtilization - End date cannot be more than 3 years after the start date. 
 
- StartDate string
- The start date for the budget. - Constraints for CategoryType: Cost - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. 
- Constraints for CategoryType: ReservationUtilization - Must be on or after the current date and less than the end date. 
 
- EndDate string
- The end date for the budget. - Constraints for CategoryType: Cost - No constraints. If not provided, we default this to 10 years from the start date. 
- Constraints for CategoryType: ReservationUtilization - End date cannot be more than 3 years after the start date. 
 
- startDate String
- The start date for the budget. - Constraints for CategoryType: Cost - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. 
- Constraints for CategoryType: ReservationUtilization - Must be on or after the current date and less than the end date. 
 
- endDate String
- The end date for the budget. - Constraints for CategoryType: Cost - No constraints. If not provided, we default this to 10 years from the start date. 
- Constraints for CategoryType: ReservationUtilization - End date cannot be more than 3 years after the start date. 
 
- startDate string
- The start date for the budget. - Constraints for CategoryType: Cost - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. 
- Constraints for CategoryType: ReservationUtilization - Must be on or after the current date and less than the end date. 
 
- endDate string
- The end date for the budget. - Constraints for CategoryType: Cost - No constraints. If not provided, we default this to 10 years from the start date. 
- Constraints for CategoryType: ReservationUtilization - End date cannot be more than 3 years after the start date. 
 
- start_date str
- The start date for the budget. - Constraints for CategoryType: Cost - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. 
- Constraints for CategoryType: ReservationUtilization - Must be on or after the current date and less than the end date. 
 
- end_date str
- The end date for the budget. - Constraints for CategoryType: Cost - No constraints. If not provided, we default this to 10 years from the start date. 
- Constraints for CategoryType: ReservationUtilization - End date cannot be more than 3 years after the start date. 
 
- startDate String
- The start date for the budget. - Constraints for CategoryType: Cost - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. 
- Constraints for CategoryType: ReservationUtilization - Must be on or after the current date and less than the end date. 
 
- endDate String
- The end date for the budget. - Constraints for CategoryType: Cost - No constraints. If not provided, we default this to 10 years from the start date. 
- Constraints for CategoryType: ReservationUtilization - End date cannot be more than 3 years after the start date. 
 
BudgetTimePeriodResponse, BudgetTimePeriodResponseArgs        
- StartDate string
- The start date for the budget. - Constraints for CategoryType: Cost - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. 
- Constraints for CategoryType: ReservationUtilization - Must be on or after the current date and less than the end date. 
 
- EndDate string
- The end date for the budget. - Constraints for CategoryType: Cost - No constraints. If not provided, we default this to 10 years from the start date. 
- Constraints for CategoryType: ReservationUtilization - End date cannot be more than 3 years after the start date. 
 
- StartDate string
- The start date for the budget. - Constraints for CategoryType: Cost - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. 
- Constraints for CategoryType: ReservationUtilization - Must be on or after the current date and less than the end date. 
 
- EndDate string
- The end date for the budget. - Constraints for CategoryType: Cost - No constraints. If not provided, we default this to 10 years from the start date. 
- Constraints for CategoryType: ReservationUtilization - End date cannot be more than 3 years after the start date. 
 
- startDate String
- The start date for the budget. - Constraints for CategoryType: Cost - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. 
- Constraints for CategoryType: ReservationUtilization - Must be on or after the current date and less than the end date. 
 
- endDate String
- The end date for the budget. - Constraints for CategoryType: Cost - No constraints. If not provided, we default this to 10 years from the start date. 
- Constraints for CategoryType: ReservationUtilization - End date cannot be more than 3 years after the start date. 
 
- startDate string
- The start date for the budget. - Constraints for CategoryType: Cost - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. 
- Constraints for CategoryType: ReservationUtilization - Must be on or after the current date and less than the end date. 
 
- endDate string
- The end date for the budget. - Constraints for CategoryType: Cost - No constraints. If not provided, we default this to 10 years from the start date. 
- Constraints for CategoryType: ReservationUtilization - End date cannot be more than 3 years after the start date. 
 
- start_date str
- The start date for the budget. - Constraints for CategoryType: Cost - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. 
- Constraints for CategoryType: ReservationUtilization - Must be on or after the current date and less than the end date. 
 
- end_date str
- The end date for the budget. - Constraints for CategoryType: Cost - No constraints. If not provided, we default this to 10 years from the start date. 
- Constraints for CategoryType: ReservationUtilization - End date cannot be more than 3 years after the start date. 
 
- startDate String
- The start date for the budget. - Constraints for CategoryType: Cost - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period. 
- Constraints for CategoryType: ReservationUtilization - Must be on or after the current date and less than the end date. 
 
- endDate String
- The end date for the budget. - Constraints for CategoryType: Cost - No constraints. If not provided, we default this to 10 years from the start date. 
- Constraints for CategoryType: ReservationUtilization - End date cannot be more than 3 years after the start date. 
 
CategoryType, CategoryTypeArgs    
- Cost
- CostA Budget that evaluates monetary cost of Azure resources against an amount, and alerts based on a configured notification threshold.
- ReservationUtilization 
- ReservationUtilizationAn Alert Rule that evaluates the utilization percentage of Azure Reservations, and alerts based on a configured notification threshold.
- CategoryType Cost 
- CostA Budget that evaluates monetary cost of Azure resources against an amount, and alerts based on a configured notification threshold.
- CategoryType Reservation Utilization 
- ReservationUtilizationAn Alert Rule that evaluates the utilization percentage of Azure Reservations, and alerts based on a configured notification threshold.
- Cost
- CostA Budget that evaluates monetary cost of Azure resources against an amount, and alerts based on a configured notification threshold.
- ReservationUtilization 
- ReservationUtilizationAn Alert Rule that evaluates the utilization percentage of Azure Reservations, and alerts based on a configured notification threshold.
- Cost
- CostA Budget that evaluates monetary cost of Azure resources against an amount, and alerts based on a configured notification threshold.
- ReservationUtilization 
- ReservationUtilizationAn Alert Rule that evaluates the utilization percentage of Azure Reservations, and alerts based on a configured notification threshold.
- COST
- CostA Budget that evaluates monetary cost of Azure resources against an amount, and alerts based on a configured notification threshold.
- RESERVATION_UTILIZATION
- ReservationUtilizationAn Alert Rule that evaluates the utilization percentage of Azure Reservations, and alerts based on a configured notification threshold.
- "Cost"
- CostA Budget that evaluates monetary cost of Azure resources against an amount, and alerts based on a configured notification threshold.
- "ReservationUtilization" 
- ReservationUtilizationAn Alert Rule that evaluates the utilization percentage of Azure Reservations, and alerts based on a configured notification threshold.
CultureCode, CultureCodeArgs    
- En_us 
- en-us
- Ja_jp 
- ja-jp
- Zh_cn 
- zh-cn
- De_de 
- de-de
- Es_es 
- es-es
- Fr_fr 
- fr-fr
- It_it 
- it-it
- Ko_kr 
- ko-kr
- Pt_br 
- pt-br
- Ru_ru 
- ru-ru
- Zh_tw 
- zh-tw
- Cs_cz 
- cs-cz
- Pl_pl 
- pl-pl
- Tr_tr 
- tr-tr
- Da_dk 
- da-dk
- En_gb 
- en-gb
- Hu_hu 
- hu-hu
- Nb_no 
- nb-no
- Nl_nl 
- nl-nl
- Pt_pt 
- pt-pt
- Sv_se 
- sv-se
- CultureCode_En_Us 
- en-us
- CultureCode_Ja_Jp 
- ja-jp
- CultureCode_Zh_Cn 
- zh-cn
- CultureCode_De_De 
- de-de
- CultureCode_Es_Es 
- es-es
- CultureCode_Fr_Fr 
- fr-fr
- CultureCode_It_It 
- it-it
- CultureCode_Ko_Kr 
- ko-kr
- CultureCode_Pt_Br 
- pt-br
- CultureCode_Ru_Ru 
- ru-ru
- CultureCode_Zh_Tw 
- zh-tw
- CultureCode_Cs_Cz 
- cs-cz
- CultureCode_Pl_Pl 
- pl-pl
- CultureCode_Tr_Tr 
- tr-tr
- CultureCode_Da_Dk 
- da-dk
- CultureCode_En_Gb 
- en-gb
- CultureCode_Hu_Hu 
- hu-hu
- CultureCode_Nb_No 
- nb-no
- CultureCode_Nl_Nl 
- nl-nl
- CultureCode_Pt_Pt 
- pt-pt
- CultureCode_Sv_Se 
- sv-se
- Enus
- en-us
- Jajp
- ja-jp
- Zhcn
- zh-cn
- Dede
- de-de
- Eses
- es-es
- Frfr
- fr-fr
- Itit
- it-it
- Kokr
- ko-kr
- Ptbr
- pt-br
- Ruru
- ru-ru
- Zhtw
- zh-tw
- Cscz
- cs-cz
- Plpl
- pl-pl
- Trtr
- tr-tr
- Dadk
- da-dk
- Engb
- en-gb
- Huhu
- hu-hu
- Nbno
- nb-no
- Nlnl
- nl-nl
- Ptpt
- pt-pt
- Svse
- sv-se
- En_us 
- en-us
- Ja_jp 
- ja-jp
- Zh_cn 
- zh-cn
- De_de 
- de-de
- Es_es 
- es-es
- Fr_fr 
- fr-fr
- It_it 
- it-it
- Ko_kr 
- ko-kr
- Pt_br 
- pt-br
- Ru_ru 
- ru-ru
- Zh_tw 
- zh-tw
- Cs_cz 
- cs-cz
- Pl_pl 
- pl-pl
- Tr_tr 
- tr-tr
- Da_dk 
- da-dk
- En_gb 
- en-gb
- Hu_hu 
- hu-hu
- Nb_no 
- nb-no
- Nl_nl 
- nl-nl
- Pt_pt 
- pt-pt
- Sv_se 
- sv-se
- EN_US
- en-us
- JA_JP
- ja-jp
- ZH_CN
- zh-cn
- DE_DE
- de-de
- ES_ES
- es-es
- FR_FR
- fr-fr
- IT_IT
- it-it
- KO_KR
- ko-kr
- PT_BR
- pt-br
- RU_RU
- ru-ru
- ZH_TW
- zh-tw
- CS_CZ
- cs-cz
- PL_PL
- pl-pl
- TR_TR
- tr-tr
- DA_DK
- da-dk
- EN_GB
- en-gb
- HU_HU
- hu-hu
- NB_NO
- nb-no
- NL_NL
- nl-nl
- PT_PT
- pt-pt
- SV_SE
- sv-se
- "en-us"
- en-us
- "ja-jp"
- ja-jp
- "zh-cn"
- zh-cn
- "de-de"
- de-de
- "es-es"
- es-es
- "fr-fr"
- fr-fr
- "it-it"
- it-it
- "ko-kr"
- ko-kr
- "pt-br"
- pt-br
- "ru-ru"
- ru-ru
- "zh-tw"
- zh-tw
- "cs-cz"
- cs-cz
- "pl-pl"
- pl-pl
- "tr-tr"
- tr-tr
- "da-dk"
- da-dk
- "en-gb"
- en-gb
- "hu-hu"
- hu-hu
- "nb-no"
- nb-no
- "nl-nl"
- nl-nl
- "pt-pt"
- pt-pt
- "sv-se"
- sv-se
CurrentSpendResponse, CurrentSpendResponseArgs      
ForecastSpendResponse, ForecastSpendResponseArgs      
Frequency, FrequencyArgs  
- Daily
- DailyAfter the threshold breaches and an Alert is fired, no further alerts will be sent until the next calendar day.
- Weekly
- WeeklyAfter the threshold breaches and an Alert is fired, no further alerts will be sent for 7 calendar days.
- Monthly
- MonthlyAfter the threshold breaches and an Alert is fired, no further alerts will be sent for 30 calendar days.
- FrequencyDaily 
- DailyAfter the threshold breaches and an Alert is fired, no further alerts will be sent until the next calendar day.
- FrequencyWeekly 
- WeeklyAfter the threshold breaches and an Alert is fired, no further alerts will be sent for 7 calendar days.
- FrequencyMonthly 
- MonthlyAfter the threshold breaches and an Alert is fired, no further alerts will be sent for 30 calendar days.
- Daily
- DailyAfter the threshold breaches and an Alert is fired, no further alerts will be sent until the next calendar day.
- Weekly
- WeeklyAfter the threshold breaches and an Alert is fired, no further alerts will be sent for 7 calendar days.
- Monthly
- MonthlyAfter the threshold breaches and an Alert is fired, no further alerts will be sent for 30 calendar days.
- Daily
- DailyAfter the threshold breaches and an Alert is fired, no further alerts will be sent until the next calendar day.
- Weekly
- WeeklyAfter the threshold breaches and an Alert is fired, no further alerts will be sent for 7 calendar days.
- Monthly
- MonthlyAfter the threshold breaches and an Alert is fired, no further alerts will be sent for 30 calendar days.
- DAILY
- DailyAfter the threshold breaches and an Alert is fired, no further alerts will be sent until the next calendar day.
- WEEKLY
- WeeklyAfter the threshold breaches and an Alert is fired, no further alerts will be sent for 7 calendar days.
- MONTHLY
- MonthlyAfter the threshold breaches and an Alert is fired, no further alerts will be sent for 30 calendar days.
- "Daily"
- DailyAfter the threshold breaches and an Alert is fired, no further alerts will be sent until the next calendar day.
- "Weekly"
- WeeklyAfter the threshold breaches and an Alert is fired, no further alerts will be sent for 7 calendar days.
- "Monthly"
- MonthlyAfter the threshold breaches and an Alert is fired, no further alerts will be sent for 30 calendar days.
Notification, NotificationArgs  
- ContactEmails List<string>
- Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- Enabled bool
- The notification is enabled or not. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- Operator
string | Pulumi.Azure Native. Cost Management. Budget Notification Operator Type 
- The comparison operator. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported operators for CategoryType: Cost - GreaterThan
- GreaterThanOrEqualTo
 - Supported operators for CategoryType: ReservationUtilization - LessThan
 
- Threshold double
- Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places. - Supported for CategoryType(s): Cost, ReservationUtilization. - CategoryType: Cost - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold. - CategoryType: ReservationUtilization - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold. 
- ContactGroups List<string>
- Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id. - Supported for CategoryType(s): Cost. 
- ContactRoles List<string>
- Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached. - Supported for CategoryType(s): Cost. 
- Frequency
string | Pulumi.Azure Native. Cost Management. Frequency 
- Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days). - Supported for CategoryType(s): ReservationUtilization. 
- Locale
string | Pulumi.Azure Native. Cost Management. Culture Code 
- Language in which the recipient will receive the notification, - Supported for CategoryType(s): Cost, ReservationUtilization. 
- ThresholdType string | Pulumi.Azure Native. Cost Management. Threshold Type 
- The type of threshold. - Supported for CategoryType(s): Cost. 
- ContactEmails []string
- Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- Enabled bool
- The notification is enabled or not. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- Operator
string | BudgetNotification Operator Type 
- The comparison operator. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported operators for CategoryType: Cost - GreaterThan
- GreaterThanOrEqualTo
 - Supported operators for CategoryType: ReservationUtilization - LessThan
 
- Threshold float64
- Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places. - Supported for CategoryType(s): Cost, ReservationUtilization. - CategoryType: Cost - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold. - CategoryType: ReservationUtilization - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold. 
- ContactGroups []string
- Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id. - Supported for CategoryType(s): Cost. 
- ContactRoles []string
- Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached. - Supported for CategoryType(s): Cost. 
- Frequency string | Frequency
- Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days). - Supported for CategoryType(s): ReservationUtilization. 
- Locale
string | CultureCode 
- Language in which the recipient will receive the notification, - Supported for CategoryType(s): Cost, ReservationUtilization. 
- ThresholdType string | ThresholdType 
- The type of threshold. - Supported for CategoryType(s): Cost. 
- contactEmails List<String>
- Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- enabled Boolean
- The notification is enabled or not. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- operator
String | BudgetNotification Operator Type 
- The comparison operator. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported operators for CategoryType: Cost - GreaterThan
- GreaterThanOrEqualTo
 - Supported operators for CategoryType: ReservationUtilization - LessThan
 
- threshold Double
- Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places. - Supported for CategoryType(s): Cost, ReservationUtilization. - CategoryType: Cost - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold. - CategoryType: ReservationUtilization - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold. 
- contactGroups List<String>
- Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id. - Supported for CategoryType(s): Cost. 
- contactRoles List<String>
- Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached. - Supported for CategoryType(s): Cost. 
- frequency String | Frequency
- Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days). - Supported for CategoryType(s): ReservationUtilization. 
- locale
String | CultureCode 
- Language in which the recipient will receive the notification, - Supported for CategoryType(s): Cost, ReservationUtilization. 
- thresholdType String | ThresholdType 
- The type of threshold. - Supported for CategoryType(s): Cost. 
- contactEmails string[]
- Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- enabled boolean
- The notification is enabled or not. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- operator
string | BudgetNotification Operator Type 
- The comparison operator. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported operators for CategoryType: Cost - GreaterThan
- GreaterThanOrEqualTo
 - Supported operators for CategoryType: ReservationUtilization - LessThan
 
- threshold number
- Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places. - Supported for CategoryType(s): Cost, ReservationUtilization. - CategoryType: Cost - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold. - CategoryType: ReservationUtilization - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold. 
- contactGroups string[]
- Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id. - Supported for CategoryType(s): Cost. 
- contactRoles string[]
- Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached. - Supported for CategoryType(s): Cost. 
- frequency string | Frequency
- Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days). - Supported for CategoryType(s): ReservationUtilization. 
- locale
string | CultureCode 
- Language in which the recipient will receive the notification, - Supported for CategoryType(s): Cost, ReservationUtilization. 
- thresholdType string | ThresholdType 
- The type of threshold. - Supported for CategoryType(s): Cost. 
- contact_emails Sequence[str]
- Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- enabled bool
- The notification is enabled or not. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- operator
str | BudgetNotification Operator Type 
- The comparison operator. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported operators for CategoryType: Cost - GreaterThan
- GreaterThanOrEqualTo
 - Supported operators for CategoryType: ReservationUtilization - LessThan
 
- threshold float
- Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places. - Supported for CategoryType(s): Cost, ReservationUtilization. - CategoryType: Cost - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold. - CategoryType: ReservationUtilization - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold. 
- contact_groups Sequence[str]
- Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id. - Supported for CategoryType(s): Cost. 
- contact_roles Sequence[str]
- Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached. - Supported for CategoryType(s): Cost. 
- frequency str | Frequency
- Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days). - Supported for CategoryType(s): ReservationUtilization. 
- locale
str | CultureCode 
- Language in which the recipient will receive the notification, - Supported for CategoryType(s): Cost, ReservationUtilization. 
- threshold_type str | ThresholdType 
- The type of threshold. - Supported for CategoryType(s): Cost. 
- contactEmails List<String>
- Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- enabled Boolean
- The notification is enabled or not. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- operator
String | "EqualTo" | "Greater Than" | "Greater Than Or Equal To" | "Less Than" 
- The comparison operator. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported operators for CategoryType: Cost - GreaterThan
- GreaterThanOrEqualTo
 - Supported operators for CategoryType: ReservationUtilization - LessThan
 
- threshold Number
- Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places. - Supported for CategoryType(s): Cost, ReservationUtilization. - CategoryType: Cost - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold. - CategoryType: ReservationUtilization - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold. 
- contactGroups List<String>
- Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id. - Supported for CategoryType(s): Cost. 
- contactRoles List<String>
- Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached. - Supported for CategoryType(s): Cost. 
- frequency String | "Daily" | "Weekly" | "Monthly"
- Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days). - Supported for CategoryType(s): ReservationUtilization. 
- locale String | "en-us" | "ja-jp" | "zh-cn" | "de-de" | "es-es" | "fr-fr" | "it-it" | "ko-kr" | "pt-br" | "ru-ru" | "zh-tw" | "cs-cz" | "pl-pl" | "tr-tr" | "da-dk" | "en-gb" | "hu-hu" | "nb-no" | "nl-nl" | "pt-pt" | "sv-se"
- Language in which the recipient will receive the notification, - Supported for CategoryType(s): Cost, ReservationUtilization. 
- thresholdType String | "Actual" | "Forecasted"
- The type of threshold. - Supported for CategoryType(s): Cost. 
NotificationResponse, NotificationResponseArgs    
- ContactEmails List<string>
- Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- Enabled bool
- The notification is enabled or not. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- Operator string
- The comparison operator. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported operators for CategoryType: Cost - GreaterThan
- GreaterThanOrEqualTo
 - Supported operators for CategoryType: ReservationUtilization - LessThan
 
- Threshold double
- Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places. - Supported for CategoryType(s): Cost, ReservationUtilization. - CategoryType: Cost - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold. - CategoryType: ReservationUtilization - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold. 
- ContactGroups List<string>
- Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id. - Supported for CategoryType(s): Cost. 
- ContactRoles List<string>
- Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached. - Supported for CategoryType(s): Cost. 
- Frequency string
- Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days). - Supported for CategoryType(s): ReservationUtilization. 
- Locale string
- Language in which the recipient will receive the notification, - Supported for CategoryType(s): Cost, ReservationUtilization. 
- ThresholdType string
- The type of threshold. - Supported for CategoryType(s): Cost. 
- ContactEmails []string
- Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- Enabled bool
- The notification is enabled or not. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- Operator string
- The comparison operator. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported operators for CategoryType: Cost - GreaterThan
- GreaterThanOrEqualTo
 - Supported operators for CategoryType: ReservationUtilization - LessThan
 
- Threshold float64
- Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places. - Supported for CategoryType(s): Cost, ReservationUtilization. - CategoryType: Cost - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold. - CategoryType: ReservationUtilization - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold. 
- ContactGroups []string
- Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id. - Supported for CategoryType(s): Cost. 
- ContactRoles []string
- Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached. - Supported for CategoryType(s): Cost. 
- Frequency string
- Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days). - Supported for CategoryType(s): ReservationUtilization. 
- Locale string
- Language in which the recipient will receive the notification, - Supported for CategoryType(s): Cost, ReservationUtilization. 
- ThresholdType string
- The type of threshold. - Supported for CategoryType(s): Cost. 
- contactEmails List<String>
- Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- enabled Boolean
- The notification is enabled or not. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- operator String
- The comparison operator. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported operators for CategoryType: Cost - GreaterThan
- GreaterThanOrEqualTo
 - Supported operators for CategoryType: ReservationUtilization - LessThan
 
- threshold Double
- Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places. - Supported for CategoryType(s): Cost, ReservationUtilization. - CategoryType: Cost - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold. - CategoryType: ReservationUtilization - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold. 
- contactGroups List<String>
- Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id. - Supported for CategoryType(s): Cost. 
- contactRoles List<String>
- Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached. - Supported for CategoryType(s): Cost. 
- frequency String
- Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days). - Supported for CategoryType(s): ReservationUtilization. 
- locale String
- Language in which the recipient will receive the notification, - Supported for CategoryType(s): Cost, ReservationUtilization. 
- thresholdType String
- The type of threshold. - Supported for CategoryType(s): Cost. 
- contactEmails string[]
- Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- enabled boolean
- The notification is enabled or not. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- operator string
- The comparison operator. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported operators for CategoryType: Cost - GreaterThan
- GreaterThanOrEqualTo
 - Supported operators for CategoryType: ReservationUtilization - LessThan
 
- threshold number
- Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places. - Supported for CategoryType(s): Cost, ReservationUtilization. - CategoryType: Cost - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold. - CategoryType: ReservationUtilization - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold. 
- contactGroups string[]
- Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id. - Supported for CategoryType(s): Cost. 
- contactRoles string[]
- Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached. - Supported for CategoryType(s): Cost. 
- frequency string
- Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days). - Supported for CategoryType(s): ReservationUtilization. 
- locale string
- Language in which the recipient will receive the notification, - Supported for CategoryType(s): Cost, ReservationUtilization. 
- thresholdType string
- The type of threshold. - Supported for CategoryType(s): Cost. 
- contact_emails Sequence[str]
- Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- enabled bool
- The notification is enabled or not. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- operator str
- The comparison operator. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported operators for CategoryType: Cost - GreaterThan
- GreaterThanOrEqualTo
 - Supported operators for CategoryType: ReservationUtilization - LessThan
 
- threshold float
- Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places. - Supported for CategoryType(s): Cost, ReservationUtilization. - CategoryType: Cost - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold. - CategoryType: ReservationUtilization - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold. 
- contact_groups Sequence[str]
- Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id. - Supported for CategoryType(s): Cost. 
- contact_roles Sequence[str]
- Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached. - Supported for CategoryType(s): Cost. 
- frequency str
- Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days). - Supported for CategoryType(s): ReservationUtilization. 
- locale str
- Language in which the recipient will receive the notification, - Supported for CategoryType(s): Cost, ReservationUtilization. 
- threshold_type str
- The type of threshold. - Supported for CategoryType(s): Cost. 
- contactEmails List<String>
- Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- enabled Boolean
- The notification is enabled or not. - Supported for CategoryType(s): Cost, ReservationUtilization. 
- operator String
- The comparison operator. - Supported for CategoryType(s): Cost, ReservationUtilization. - Supported operators for CategoryType: Cost - GreaterThan
- GreaterThanOrEqualTo
 - Supported operators for CategoryType: ReservationUtilization - LessThan
 
- threshold Number
- Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places. - Supported for CategoryType(s): Cost, ReservationUtilization. - CategoryType: Cost - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold. - CategoryType: ReservationUtilization - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold. 
- contactGroups List<String>
- Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id. - Supported for CategoryType(s): Cost. 
- contactRoles List<String>
- Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached. - Supported for CategoryType(s): Cost. 
- frequency String
- Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days). - Supported for CategoryType(s): ReservationUtilization. 
- locale String
- Language in which the recipient will receive the notification, - Supported for CategoryType(s): Cost, ReservationUtilization. 
- thresholdType String
- The type of threshold. - Supported for CategoryType(s): Cost. 
ThresholdType, ThresholdTypeArgs    
- Actual
- ActualActual costs budget alerts notify when the actual accrued cost exceeds the allocated budget.
- Forecasted
- ForecastedForecasted costs budget alerts provide advanced notification that your spending trends are likely to exceed your allocated budget, as it relies on forecasted cost predictions.
- ThresholdType Actual 
- ActualActual costs budget alerts notify when the actual accrued cost exceeds the allocated budget.
- ThresholdType Forecasted 
- ForecastedForecasted costs budget alerts provide advanced notification that your spending trends are likely to exceed your allocated budget, as it relies on forecasted cost predictions.
- Actual
- ActualActual costs budget alerts notify when the actual accrued cost exceeds the allocated budget.
- Forecasted
- ForecastedForecasted costs budget alerts provide advanced notification that your spending trends are likely to exceed your allocated budget, as it relies on forecasted cost predictions.
- Actual
- ActualActual costs budget alerts notify when the actual accrued cost exceeds the allocated budget.
- Forecasted
- ForecastedForecasted costs budget alerts provide advanced notification that your spending trends are likely to exceed your allocated budget, as it relies on forecasted cost predictions.
- ACTUAL
- ActualActual costs budget alerts notify when the actual accrued cost exceeds the allocated budget.
- FORECASTED
- ForecastedForecasted costs budget alerts provide advanced notification that your spending trends are likely to exceed your allocated budget, as it relies on forecasted cost predictions.
- "Actual"
- ActualActual costs budget alerts notify when the actual accrued cost exceeds the allocated budget.
- "Forecasted"
- ForecastedForecasted costs budget alerts provide advanced notification that your spending trends are likely to exceed your allocated budget, as it relies on forecasted cost predictions.
TimeGrainType, TimeGrainTypeArgs      
- Monthly
- MonthlyThe budget will track costs in the current calendar month against the amount. Supported for CategoryType: Cost only. 
- Quarterly
- QuarterlyThe budget will track costs in the current calendar quarter against the amount. Supported for CategoryType: Cost only. 
- Annually
- AnnuallyThe budget will track costs in the current calendar year against the amount. Supported for CategoryType: Cost only. 
- BillingMonth 
- BillingMonthThe budget will track costs in the current billing month against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- BillingQuarter 
- BillingQuarterThe budget will track costs in the current billing quarter against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- BillingAnnual 
- BillingAnnualThe budget will track costs in the current billing year against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- Last7Days
- Last7DaysThe Reservation Utilization Alert Rule will evaluate reservations based on their 7-Day utilization percentage. Supported for CategoryType: ReservationUtilization only. 
- Last30Days
- Last30DaysThe Reservation Utilization Alert Rule will evaluate reservations based on their 30-Day utilization percentage. Supported for CategoryType: ReservationUtilization only. 
- TimeGrain Type Monthly 
- MonthlyThe budget will track costs in the current calendar month against the amount. Supported for CategoryType: Cost only. 
- TimeGrain Type Quarterly 
- QuarterlyThe budget will track costs in the current calendar quarter against the amount. Supported for CategoryType: Cost only. 
- TimeGrain Type Annually 
- AnnuallyThe budget will track costs in the current calendar year against the amount. Supported for CategoryType: Cost only. 
- TimeGrain Type Billing Month 
- BillingMonthThe budget will track costs in the current billing month against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- TimeGrain Type Billing Quarter 
- BillingQuarterThe budget will track costs in the current billing quarter against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- TimeGrain Type Billing Annual 
- BillingAnnualThe budget will track costs in the current billing year against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- TimeGrain Type Last7Days 
- Last7DaysThe Reservation Utilization Alert Rule will evaluate reservations based on their 7-Day utilization percentage. Supported for CategoryType: ReservationUtilization only. 
- TimeGrain Type Last30Days 
- Last30DaysThe Reservation Utilization Alert Rule will evaluate reservations based on their 30-Day utilization percentage. Supported for CategoryType: ReservationUtilization only. 
- Monthly
- MonthlyThe budget will track costs in the current calendar month against the amount. Supported for CategoryType: Cost only. 
- Quarterly
- QuarterlyThe budget will track costs in the current calendar quarter against the amount. Supported for CategoryType: Cost only. 
- Annually
- AnnuallyThe budget will track costs in the current calendar year against the amount. Supported for CategoryType: Cost only. 
- BillingMonth 
- BillingMonthThe budget will track costs in the current billing month against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- BillingQuarter 
- BillingQuarterThe budget will track costs in the current billing quarter against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- BillingAnnual 
- BillingAnnualThe budget will track costs in the current billing year against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- Last7Days
- Last7DaysThe Reservation Utilization Alert Rule will evaluate reservations based on their 7-Day utilization percentage. Supported for CategoryType: ReservationUtilization only. 
- Last30Days
- Last30DaysThe Reservation Utilization Alert Rule will evaluate reservations based on their 30-Day utilization percentage. Supported for CategoryType: ReservationUtilization only. 
- Monthly
- MonthlyThe budget will track costs in the current calendar month against the amount. Supported for CategoryType: Cost only. 
- Quarterly
- QuarterlyThe budget will track costs in the current calendar quarter against the amount. Supported for CategoryType: Cost only. 
- Annually
- AnnuallyThe budget will track costs in the current calendar year against the amount. Supported for CategoryType: Cost only. 
- BillingMonth 
- BillingMonthThe budget will track costs in the current billing month against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- BillingQuarter 
- BillingQuarterThe budget will track costs in the current billing quarter against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- BillingAnnual 
- BillingAnnualThe budget will track costs in the current billing year against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- Last7Days
- Last7DaysThe Reservation Utilization Alert Rule will evaluate reservations based on their 7-Day utilization percentage. Supported for CategoryType: ReservationUtilization only. 
- Last30Days
- Last30DaysThe Reservation Utilization Alert Rule will evaluate reservations based on their 30-Day utilization percentage. Supported for CategoryType: ReservationUtilization only. 
- MONTHLY
- MonthlyThe budget will track costs in the current calendar month against the amount. Supported for CategoryType: Cost only. 
- QUARTERLY
- QuarterlyThe budget will track costs in the current calendar quarter against the amount. Supported for CategoryType: Cost only. 
- ANNUALLY
- AnnuallyThe budget will track costs in the current calendar year against the amount. Supported for CategoryType: Cost only. 
- BILLING_MONTH
- BillingMonthThe budget will track costs in the current billing month against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- BILLING_QUARTER
- BillingQuarterThe budget will track costs in the current billing quarter against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- BILLING_ANNUAL
- BillingAnnualThe budget will track costs in the current billing year against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- LAST7_DAYS
- Last7DaysThe Reservation Utilization Alert Rule will evaluate reservations based on their 7-Day utilization percentage. Supported for CategoryType: ReservationUtilization only. 
- LAST30_DAYS
- Last30DaysThe Reservation Utilization Alert Rule will evaluate reservations based on their 30-Day utilization percentage. Supported for CategoryType: ReservationUtilization only. 
- "Monthly"
- MonthlyThe budget will track costs in the current calendar month against the amount. Supported for CategoryType: Cost only. 
- "Quarterly"
- QuarterlyThe budget will track costs in the current calendar quarter against the amount. Supported for CategoryType: Cost only. 
- "Annually"
- AnnuallyThe budget will track costs in the current calendar year against the amount. Supported for CategoryType: Cost only. 
- "BillingMonth" 
- BillingMonthThe budget will track costs in the current billing month against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- "BillingQuarter" 
- BillingQuarterThe budget will track costs in the current billing quarter against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- "BillingAnnual" 
- BillingAnnualThe budget will track costs in the current billing year against the amount. Supported for CategoryType: Cost and Web Direct customers only. 
- "Last7Days"
- Last7DaysThe Reservation Utilization Alert Rule will evaluate reservations based on their 7-Day utilization percentage. Supported for CategoryType: ReservationUtilization only. 
- "Last30Days"
- Last30DaysThe Reservation Utilization Alert Rule will evaluate reservations based on their 30-Day utilization percentage. Supported for CategoryType: ReservationUtilization only. 
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:costmanagement:Budget TestAlertRule /{scope}/providers/Microsoft.CostManagement/budgets/{budgetName} 
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Azure Native pulumi/pulumi-azure-native
- License
- Apache-2.0