1. Packages
  2. Azure Classic
  3. API Docs
  4. monitoring
  5. AutoscaleSetting

We recommend using Azure Native.

Azure v6.22.0 published on Tuesday, Apr 1, 2025 by Pulumi

azure.monitoring.AutoscaleSetting

Explore with Pulumi AI

Manages a AutoScale Setting which can be applied to Virtual Machine Scale Sets, App Services and other scalable resources.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";

const example = new azure.core.ResourceGroup("example", {
    name: "autoscalingTest",
    location: "West Europe",
});
const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
    name: "acctvn",
    addressSpaces: ["10.0.0.0/16"],
    location: example.location,
    resourceGroupName: example.name,
});
const exampleSubnet = new azure.network.Subnet("example", {
    name: "acctsub",
    resourceGroupName: example.name,
    virtualNetworkName: exampleVirtualNetwork.name,
    addressPrefixes: ["10.0.2.0/24"],
});
const exampleLinuxVirtualMachineScaleSet = new azure.compute.LinuxVirtualMachineScaleSet("example", {
    name: "exampleset",
    location: example.location,
    resourceGroupName: example.name,
    upgradeMode: "Manual",
    sku: "Standard_F2",
    instances: 2,
    adminUsername: "myadmin",
    adminSshKeys: [{
        username: "myadmin",
        publicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com",
    }],
    networkInterfaces: [{
        name: "TestNetworkProfile",
        primary: true,
        ipConfigurations: [{
            name: "TestIPConfiguration",
            primary: true,
            subnetId: exampleSubnet.id,
        }],
    }],
    osDisk: {
        caching: "ReadWrite",
        storageAccountType: "StandardSSD_LRS",
    },
    sourceImageReference: {
        publisher: "Canonical",
        offer: "0001-com-ubuntu-server-jammy",
        sku: "22_04-lts",
        version: "latest",
    },
});
const exampleAutoscaleSetting = new azure.monitoring.AutoscaleSetting("example", {
    name: "myAutoscaleSetting",
    resourceGroupName: example.name,
    location: example.location,
    targetResourceId: exampleLinuxVirtualMachineScaleSet.id,
    profiles: [{
        name: "defaultProfile",
        capacity: {
            "default": 1,
            minimum: 1,
            maximum: 10,
        },
        rules: [
            {
                metricTrigger: {
                    metricName: "Percentage CPU",
                    metricResourceId: exampleLinuxVirtualMachineScaleSet.id,
                    timeGrain: "PT1M",
                    statistic: "Average",
                    timeWindow: "PT5M",
                    timeAggregation: "Average",
                    operator: "GreaterThan",
                    threshold: 75,
                    metricNamespace: "microsoft.compute/virtualmachinescalesets",
                    dimensions: [{
                        name: "AppName",
                        operator: "Equals",
                        values: ["App1"],
                    }],
                },
                scaleAction: {
                    direction: "Increase",
                    type: "ChangeCount",
                    value: 1,
                    cooldown: "PT1M",
                },
            },
            {
                metricTrigger: {
                    metricName: "Percentage CPU",
                    metricResourceId: exampleLinuxVirtualMachineScaleSet.id,
                    timeGrain: "PT1M",
                    statistic: "Average",
                    timeWindow: "PT5M",
                    timeAggregation: "Average",
                    operator: "LessThan",
                    threshold: 25,
                },
                scaleAction: {
                    direction: "Decrease",
                    type: "ChangeCount",
                    value: 1,
                    cooldown: "PT1M",
                },
            },
        ],
    }],
    predictive: {
        scaleMode: "Enabled",
        lookAheadTime: "PT5M",
    },
    notification: {
        email: {
            sendToSubscriptionAdministrator: true,
            sendToSubscriptionCoAdministrator: true,
            customEmails: ["admin@contoso.com"],
        },
    },
});
Copy
import pulumi
import pulumi_azure as azure

example = azure.core.ResourceGroup("example",
    name="autoscalingTest",
    location="West Europe")
example_virtual_network = azure.network.VirtualNetwork("example",
    name="acctvn",
    address_spaces=["10.0.0.0/16"],
    location=example.location,
    resource_group_name=example.name)
example_subnet = azure.network.Subnet("example",
    name="acctsub",
    resource_group_name=example.name,
    virtual_network_name=example_virtual_network.name,
    address_prefixes=["10.0.2.0/24"])
example_linux_virtual_machine_scale_set = azure.compute.LinuxVirtualMachineScaleSet("example",
    name="exampleset",
    location=example.location,
    resource_group_name=example.name,
    upgrade_mode="Manual",
    sku="Standard_F2",
    instances=2,
    admin_username="myadmin",
    admin_ssh_keys=[{
        "username": "myadmin",
        "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com",
    }],
    network_interfaces=[{
        "name": "TestNetworkProfile",
        "primary": True,
        "ip_configurations": [{
            "name": "TestIPConfiguration",
            "primary": True,
            "subnet_id": example_subnet.id,
        }],
    }],
    os_disk={
        "caching": "ReadWrite",
        "storage_account_type": "StandardSSD_LRS",
    },
    source_image_reference={
        "publisher": "Canonical",
        "offer": "0001-com-ubuntu-server-jammy",
        "sku": "22_04-lts",
        "version": "latest",
    })
example_autoscale_setting = azure.monitoring.AutoscaleSetting("example",
    name="myAutoscaleSetting",
    resource_group_name=example.name,
    location=example.location,
    target_resource_id=example_linux_virtual_machine_scale_set.id,
    profiles=[{
        "name": "defaultProfile",
        "capacity": {
            "default": 1,
            "minimum": 1,
            "maximum": 10,
        },
        "rules": [
            {
                "metric_trigger": {
                    "metric_name": "Percentage CPU",
                    "metric_resource_id": example_linux_virtual_machine_scale_set.id,
                    "time_grain": "PT1M",
                    "statistic": "Average",
                    "time_window": "PT5M",
                    "time_aggregation": "Average",
                    "operator": "GreaterThan",
                    "threshold": 75,
                    "metric_namespace": "microsoft.compute/virtualmachinescalesets",
                    "dimensions": [{
                        "name": "AppName",
                        "operator": "Equals",
                        "values": ["App1"],
                    }],
                },
                "scale_action": {
                    "direction": "Increase",
                    "type": "ChangeCount",
                    "value": 1,
                    "cooldown": "PT1M",
                },
            },
            {
                "metric_trigger": {
                    "metric_name": "Percentage CPU",
                    "metric_resource_id": example_linux_virtual_machine_scale_set.id,
                    "time_grain": "PT1M",
                    "statistic": "Average",
                    "time_window": "PT5M",
                    "time_aggregation": "Average",
                    "operator": "LessThan",
                    "threshold": 25,
                },
                "scale_action": {
                    "direction": "Decrease",
                    "type": "ChangeCount",
                    "value": 1,
                    "cooldown": "PT1M",
                },
            },
        ],
    }],
    predictive={
        "scale_mode": "Enabled",
        "look_ahead_time": "PT5M",
    },
    notification={
        "email": {
            "send_to_subscription_administrator": True,
            "send_to_subscription_co_administrator": True,
            "custom_emails": ["admin@contoso.com"],
        },
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/monitoring"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("autoscalingTest"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
			Name: pulumi.String("acctvn"),
			AddressSpaces: pulumi.StringArray{
				pulumi.String("10.0.0.0/16"),
			},
			Location:          example.Location,
			ResourceGroupName: example.Name,
		})
		if err != nil {
			return err
		}
		exampleSubnet, err := network.NewSubnet(ctx, "example", &network.SubnetArgs{
			Name:               pulumi.String("acctsub"),
			ResourceGroupName:  example.Name,
			VirtualNetworkName: exampleVirtualNetwork.Name,
			AddressPrefixes: pulumi.StringArray{
				pulumi.String("10.0.2.0/24"),
			},
		})
		if err != nil {
			return err
		}
		exampleLinuxVirtualMachineScaleSet, err := compute.NewLinuxVirtualMachineScaleSet(ctx, "example", &compute.LinuxVirtualMachineScaleSetArgs{
			Name:              pulumi.String("exampleset"),
			Location:          example.Location,
			ResourceGroupName: example.Name,
			UpgradeMode:       pulumi.String("Manual"),
			Sku:               pulumi.String("Standard_F2"),
			Instances:         pulumi.Int(2),
			AdminUsername:     pulumi.String("myadmin"),
			AdminSshKeys: compute.LinuxVirtualMachineScaleSetAdminSshKeyArray{
				&compute.LinuxVirtualMachineScaleSetAdminSshKeyArgs{
					Username:  pulumi.String("myadmin"),
					PublicKey: pulumi.String("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com"),
				},
			},
			NetworkInterfaces: compute.LinuxVirtualMachineScaleSetNetworkInterfaceArray{
				&compute.LinuxVirtualMachineScaleSetNetworkInterfaceArgs{
					Name:    pulumi.String("TestNetworkProfile"),
					Primary: pulumi.Bool(true),
					IpConfigurations: compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArray{
						&compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs{
							Name:     pulumi.String("TestIPConfiguration"),
							Primary:  pulumi.Bool(true),
							SubnetId: exampleSubnet.ID(),
						},
					},
				},
			},
			OsDisk: &compute.LinuxVirtualMachineScaleSetOsDiskArgs{
				Caching:            pulumi.String("ReadWrite"),
				StorageAccountType: pulumi.String("StandardSSD_LRS"),
			},
			SourceImageReference: &compute.LinuxVirtualMachineScaleSetSourceImageReferenceArgs{
				Publisher: pulumi.String("Canonical"),
				Offer:     pulumi.String("0001-com-ubuntu-server-jammy"),
				Sku:       pulumi.String("22_04-lts"),
				Version:   pulumi.String("latest"),
			},
		})
		if err != nil {
			return err
		}
		_, err = monitoring.NewAutoscaleSetting(ctx, "example", &monitoring.AutoscaleSettingArgs{
			Name:              pulumi.String("myAutoscaleSetting"),
			ResourceGroupName: example.Name,
			Location:          example.Location,
			TargetResourceId:  exampleLinuxVirtualMachineScaleSet.ID(),
			Profiles: monitoring.AutoscaleSettingProfileArray{
				&monitoring.AutoscaleSettingProfileArgs{
					Name: pulumi.String("defaultProfile"),
					Capacity: &monitoring.AutoscaleSettingProfileCapacityArgs{
						Default: pulumi.Int(1),
						Minimum: pulumi.Int(1),
						Maximum: pulumi.Int(10),
					},
					Rules: monitoring.AutoscaleSettingProfileRuleArray{
						&monitoring.AutoscaleSettingProfileRuleArgs{
							MetricTrigger: &monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{
								MetricName:       pulumi.String("Percentage CPU"),
								MetricResourceId: exampleLinuxVirtualMachineScaleSet.ID(),
								TimeGrain:        pulumi.String("PT1M"),
								Statistic:        pulumi.String("Average"),
								TimeWindow:       pulumi.String("PT5M"),
								TimeAggregation:  pulumi.String("Average"),
								Operator:         pulumi.String("GreaterThan"),
								Threshold:        pulumi.Float64(75),
								MetricNamespace:  pulumi.String("microsoft.compute/virtualmachinescalesets"),
								Dimensions: monitoring.AutoscaleSettingProfileRuleMetricTriggerDimensionArray{
									&monitoring.AutoscaleSettingProfileRuleMetricTriggerDimensionArgs{
										Name:     pulumi.String("AppName"),
										Operator: pulumi.String("Equals"),
										Values: pulumi.StringArray{
											pulumi.String("App1"),
										},
									},
								},
							},
							ScaleAction: &monitoring.AutoscaleSettingProfileRuleScaleActionArgs{
								Direction: pulumi.String("Increase"),
								Type:      pulumi.String("ChangeCount"),
								Value:     pulumi.Int(1),
								Cooldown:  pulumi.String("PT1M"),
							},
						},
						&monitoring.AutoscaleSettingProfileRuleArgs{
							MetricTrigger: &monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{
								MetricName:       pulumi.String("Percentage CPU"),
								MetricResourceId: exampleLinuxVirtualMachineScaleSet.ID(),
								TimeGrain:        pulumi.String("PT1M"),
								Statistic:        pulumi.String("Average"),
								TimeWindow:       pulumi.String("PT5M"),
								TimeAggregation:  pulumi.String("Average"),
								Operator:         pulumi.String("LessThan"),
								Threshold:        pulumi.Float64(25),
							},
							ScaleAction: &monitoring.AutoscaleSettingProfileRuleScaleActionArgs{
								Direction: pulumi.String("Decrease"),
								Type:      pulumi.String("ChangeCount"),
								Value:     pulumi.Int(1),
								Cooldown:  pulumi.String("PT1M"),
							},
						},
					},
				},
			},
			Predictive: &monitoring.AutoscaleSettingPredictiveArgs{
				ScaleMode:     pulumi.String("Enabled"),
				LookAheadTime: pulumi.String("PT5M"),
			},
			Notification: &monitoring.AutoscaleSettingNotificationArgs{
				Email: &monitoring.AutoscaleSettingNotificationEmailArgs{
					SendToSubscriptionAdministrator:   pulumi.Bool(true),
					SendToSubscriptionCoAdministrator: pulumi.Bool(true),
					CustomEmails: pulumi.StringArray{
						pulumi.String("admin@contoso.com"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;

return await Deployment.RunAsync(() => 
{
    var example = new Azure.Core.ResourceGroup("example", new()
    {
        Name = "autoscalingTest",
        Location = "West Europe",
    });

    var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
    {
        Name = "acctvn",
        AddressSpaces = new[]
        {
            "10.0.0.0/16",
        },
        Location = example.Location,
        ResourceGroupName = example.Name,
    });

    var exampleSubnet = new Azure.Network.Subnet("example", new()
    {
        Name = "acctsub",
        ResourceGroupName = example.Name,
        VirtualNetworkName = exampleVirtualNetwork.Name,
        AddressPrefixes = new[]
        {
            "10.0.2.0/24",
        },
    });

    var exampleLinuxVirtualMachineScaleSet = new Azure.Compute.LinuxVirtualMachineScaleSet("example", new()
    {
        Name = "exampleset",
        Location = example.Location,
        ResourceGroupName = example.Name,
        UpgradeMode = "Manual",
        Sku = "Standard_F2",
        Instances = 2,
        AdminUsername = "myadmin",
        AdminSshKeys = new[]
        {
            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetAdminSshKeyArgs
            {
                Username = "myadmin",
                PublicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com",
            },
        },
        NetworkInterfaces = new[]
        {
            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceArgs
            {
                Name = "TestNetworkProfile",
                Primary = true,
                IpConfigurations = new[]
                {
                    new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs
                    {
                        Name = "TestIPConfiguration",
                        Primary = true,
                        SubnetId = exampleSubnet.Id,
                    },
                },
            },
        },
        OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetOsDiskArgs
        {
            Caching = "ReadWrite",
            StorageAccountType = "StandardSSD_LRS",
        },
        SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetSourceImageReferenceArgs
        {
            Publisher = "Canonical",
            Offer = "0001-com-ubuntu-server-jammy",
            Sku = "22_04-lts",
            Version = "latest",
        },
    });

    var exampleAutoscaleSetting = new Azure.Monitoring.AutoscaleSetting("example", new()
    {
        Name = "myAutoscaleSetting",
        ResourceGroupName = example.Name,
        Location = example.Location,
        TargetResourceId = exampleLinuxVirtualMachineScaleSet.Id,
        Profiles = new[]
        {
            new Azure.Monitoring.Inputs.AutoscaleSettingProfileArgs
            {
                Name = "defaultProfile",
                Capacity = new Azure.Monitoring.Inputs.AutoscaleSettingProfileCapacityArgs
                {
                    Default = 1,
                    Minimum = 1,
                    Maximum = 10,
                },
                Rules = new[]
                {
                    new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs
                    {
                        MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs
                        {
                            MetricName = "Percentage CPU",
                            MetricResourceId = exampleLinuxVirtualMachineScaleSet.Id,
                            TimeGrain = "PT1M",
                            Statistic = "Average",
                            TimeWindow = "PT5M",
                            TimeAggregation = "Average",
                            Operator = "GreaterThan",
                            Threshold = 75,
                            MetricNamespace = "microsoft.compute/virtualmachinescalesets",
                            Dimensions = new[]
                            {
                                new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerDimensionArgs
                                {
                                    Name = "AppName",
                                    Operator = "Equals",
                                    Values = new[]
                                    {
                                        "App1",
                                    },
                                },
                            },
                        },
                        ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs
                        {
                            Direction = "Increase",
                            Type = "ChangeCount",
                            Value = 1,
                            Cooldown = "PT1M",
                        },
                    },
                    new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs
                    {
                        MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs
                        {
                            MetricName = "Percentage CPU",
                            MetricResourceId = exampleLinuxVirtualMachineScaleSet.Id,
                            TimeGrain = "PT1M",
                            Statistic = "Average",
                            TimeWindow = "PT5M",
                            TimeAggregation = "Average",
                            Operator = "LessThan",
                            Threshold = 25,
                        },
                        ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs
                        {
                            Direction = "Decrease",
                            Type = "ChangeCount",
                            Value = 1,
                            Cooldown = "PT1M",
                        },
                    },
                },
            },
        },
        Predictive = new Azure.Monitoring.Inputs.AutoscaleSettingPredictiveArgs
        {
            ScaleMode = "Enabled",
            LookAheadTime = "PT5M",
        },
        Notification = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationArgs
        {
            Email = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationEmailArgs
            {
                SendToSubscriptionAdministrator = true,
                SendToSubscriptionCoAdministrator = true,
                CustomEmails = new[]
                {
                    "admin@contoso.com",
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.network.VirtualNetwork;
import com.pulumi.azure.network.VirtualNetworkArgs;
import com.pulumi.azure.network.Subnet;
import com.pulumi.azure.network.SubnetArgs;
import com.pulumi.azure.compute.LinuxVirtualMachineScaleSet;
import com.pulumi.azure.compute.LinuxVirtualMachineScaleSetArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetAdminSshKeyArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetNetworkInterfaceArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetOsDiskArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetSourceImageReferenceArgs;
import com.pulumi.azure.monitoring.AutoscaleSetting;
import com.pulumi.azure.monitoring.AutoscaleSettingArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingProfileArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingProfileCapacityArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingPredictiveArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingNotificationArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingNotificationEmailArgs;
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 example = new ResourceGroup("example", ResourceGroupArgs.builder()
            .name("autoscalingTest")
            .location("West Europe")
            .build());

        var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
            .name("acctvn")
            .addressSpaces("10.0.0.0/16")
            .location(example.location())
            .resourceGroupName(example.name())
            .build());

        var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
            .name("acctsub")
            .resourceGroupName(example.name())
            .virtualNetworkName(exampleVirtualNetwork.name())
            .addressPrefixes("10.0.2.0/24")
            .build());

        var exampleLinuxVirtualMachineScaleSet = new LinuxVirtualMachineScaleSet("exampleLinuxVirtualMachineScaleSet", LinuxVirtualMachineScaleSetArgs.builder()
            .name("exampleset")
            .location(example.location())
            .resourceGroupName(example.name())
            .upgradeMode("Manual")
            .sku("Standard_F2")
            .instances(2)
            .adminUsername("myadmin")
            .adminSshKeys(LinuxVirtualMachineScaleSetAdminSshKeyArgs.builder()
                .username("myadmin")
                .publicKey("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com")
                .build())
            .networkInterfaces(LinuxVirtualMachineScaleSetNetworkInterfaceArgs.builder()
                .name("TestNetworkProfile")
                .primary(true)
                .ipConfigurations(LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs.builder()
                    .name("TestIPConfiguration")
                    .primary(true)
                    .subnetId(exampleSubnet.id())
                    .build())
                .build())
            .osDisk(LinuxVirtualMachineScaleSetOsDiskArgs.builder()
                .caching("ReadWrite")
                .storageAccountType("StandardSSD_LRS")
                .build())
            .sourceImageReference(LinuxVirtualMachineScaleSetSourceImageReferenceArgs.builder()
                .publisher("Canonical")
                .offer("0001-com-ubuntu-server-jammy")
                .sku("22_04-lts")
                .version("latest")
                .build())
            .build());

        var exampleAutoscaleSetting = new AutoscaleSetting("exampleAutoscaleSetting", AutoscaleSettingArgs.builder()
            .name("myAutoscaleSetting")
            .resourceGroupName(example.name())
            .location(example.location())
            .targetResourceId(exampleLinuxVirtualMachineScaleSet.id())
            .profiles(AutoscaleSettingProfileArgs.builder()
                .name("defaultProfile")
                .capacity(AutoscaleSettingProfileCapacityArgs.builder()
                    .default_(1)
                    .minimum(1)
                    .maximum(10)
                    .build())
                .rules(                
                    AutoscaleSettingProfileRuleArgs.builder()
                        .metricTrigger(AutoscaleSettingProfileRuleMetricTriggerArgs.builder()
                            .metricName("Percentage CPU")
                            .metricResourceId(exampleLinuxVirtualMachineScaleSet.id())
                            .timeGrain("PT1M")
                            .statistic("Average")
                            .timeWindow("PT5M")
                            .timeAggregation("Average")
                            .operator("GreaterThan")
                            .threshold(75)
                            .metricNamespace("microsoft.compute/virtualmachinescalesets")
                            .dimensions(AutoscaleSettingProfileRuleMetricTriggerDimensionArgs.builder()
                                .name("AppName")
                                .operator("Equals")
                                .values("App1")
                                .build())
                            .build())
                        .scaleAction(AutoscaleSettingProfileRuleScaleActionArgs.builder()
                            .direction("Increase")
                            .type("ChangeCount")
                            .value("1")
                            .cooldown("PT1M")
                            .build())
                        .build(),
                    AutoscaleSettingProfileRuleArgs.builder()
                        .metricTrigger(AutoscaleSettingProfileRuleMetricTriggerArgs.builder()
                            .metricName("Percentage CPU")
                            .metricResourceId(exampleLinuxVirtualMachineScaleSet.id())
                            .timeGrain("PT1M")
                            .statistic("Average")
                            .timeWindow("PT5M")
                            .timeAggregation("Average")
                            .operator("LessThan")
                            .threshold(25)
                            .build())
                        .scaleAction(AutoscaleSettingProfileRuleScaleActionArgs.builder()
                            .direction("Decrease")
                            .type("ChangeCount")
                            .value("1")
                            .cooldown("PT1M")
                            .build())
                        .build())
                .build())
            .predictive(AutoscaleSettingPredictiveArgs.builder()
                .scaleMode("Enabled")
                .lookAheadTime("PT5M")
                .build())
            .notification(AutoscaleSettingNotificationArgs.builder()
                .email(AutoscaleSettingNotificationEmailArgs.builder()
                    .sendToSubscriptionAdministrator(true)
                    .sendToSubscriptionCoAdministrator(true)
                    .customEmails("admin@contoso.com")
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  example:
    type: azure:core:ResourceGroup
    properties:
      name: autoscalingTest
      location: West Europe
  exampleVirtualNetwork:
    type: azure:network:VirtualNetwork
    name: example
    properties:
      name: acctvn
      addressSpaces:
        - 10.0.0.0/16
      location: ${example.location}
      resourceGroupName: ${example.name}
  exampleSubnet:
    type: azure:network:Subnet
    name: example
    properties:
      name: acctsub
      resourceGroupName: ${example.name}
      virtualNetworkName: ${exampleVirtualNetwork.name}
      addressPrefixes:
        - 10.0.2.0/24
  exampleLinuxVirtualMachineScaleSet:
    type: azure:compute:LinuxVirtualMachineScaleSet
    name: example
    properties:
      name: exampleset
      location: ${example.location}
      resourceGroupName: ${example.name}
      upgradeMode: Manual
      sku: Standard_F2
      instances: 2
      adminUsername: myadmin
      adminSshKeys:
        - username: myadmin
          publicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com
      networkInterfaces:
        - name: TestNetworkProfile
          primary: true
          ipConfigurations:
            - name: TestIPConfiguration
              primary: true
              subnetId: ${exampleSubnet.id}
      osDisk:
        caching: ReadWrite
        storageAccountType: StandardSSD_LRS
      sourceImageReference:
        publisher: Canonical
        offer: 0001-com-ubuntu-server-jammy
        sku: 22_04-lts
        version: latest
  exampleAutoscaleSetting:
    type: azure:monitoring:AutoscaleSetting
    name: example
    properties:
      name: myAutoscaleSetting
      resourceGroupName: ${example.name}
      location: ${example.location}
      targetResourceId: ${exampleLinuxVirtualMachineScaleSet.id}
      profiles:
        - name: defaultProfile
          capacity:
            default: 1
            minimum: 1
            maximum: 10
          rules:
            - metricTrigger:
                metricName: Percentage CPU
                metricResourceId: ${exampleLinuxVirtualMachineScaleSet.id}
                timeGrain: PT1M
                statistic: Average
                timeWindow: PT5M
                timeAggregation: Average
                operator: GreaterThan
                threshold: 75
                metricNamespace: microsoft.compute/virtualmachinescalesets
                dimensions:
                  - name: AppName
                    operator: Equals
                    values:
                      - App1
              scaleAction:
                direction: Increase
                type: ChangeCount
                value: '1'
                cooldown: PT1M
            - metricTrigger:
                metricName: Percentage CPU
                metricResourceId: ${exampleLinuxVirtualMachineScaleSet.id}
                timeGrain: PT1M
                statistic: Average
                timeWindow: PT5M
                timeAggregation: Average
                operator: LessThan
                threshold: 25
              scaleAction:
                direction: Decrease
                type: ChangeCount
                value: '1'
                cooldown: PT1M
      predictive:
        scaleMode: Enabled
        lookAheadTime: PT5M
      notification:
        email:
          sendToSubscriptionAdministrator: true
          sendToSubscriptionCoAdministrator: true
          customEmails:
            - admin@contoso.com
Copy

Repeating On Weekends)

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";

const example = new azure.core.ResourceGroup("example", {
    name: "autoscalingTest",
    location: "West Europe",
});
const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
    name: "acctvn",
    addressSpaces: ["10.0.0.0/16"],
    location: example.location,
    resourceGroupName: example.name,
});
const exampleSubnet = new azure.network.Subnet("example", {
    name: "acctsub",
    resourceGroupName: example.name,
    virtualNetworkName: exampleVirtualNetwork.name,
    addressPrefixes: ["10.0.2.0/24"],
});
const exampleLinuxVirtualMachineScaleSet = new azure.compute.LinuxVirtualMachineScaleSet("example", {
    name: "exampleset",
    location: example.location,
    resourceGroupName: example.name,
    upgradeMode: "Manual",
    sku: "Standard_F2",
    instances: 2,
    adminUsername: "myadmin",
    adminSshKeys: [{
        username: "myadmin",
        publicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com",
    }],
    networkInterfaces: [{
        name: "TestNetworkProfile",
        primary: true,
        ipConfigurations: [{
            name: "TestIPConfiguration",
            primary: true,
            subnetId: exampleSubnet.id,
        }],
    }],
    osDisk: {
        caching: "ReadWrite",
        storageAccountType: "StandardSSD_LRS",
    },
    sourceImageReference: {
        publisher: "Canonical",
        offer: "0001-com-ubuntu-server-jammy",
        sku: "22_04-lts",
        version: "latest",
    },
});
const exampleAutoscaleSetting = new azure.monitoring.AutoscaleSetting("example", {
    name: "myAutoscaleSetting",
    resourceGroupName: example.name,
    location: example.location,
    targetResourceId: exampleLinuxVirtualMachineScaleSet.id,
    profiles: [{
        name: "Weekends",
        capacity: {
            "default": 1,
            minimum: 1,
            maximum: 10,
        },
        rules: [
            {
                metricTrigger: {
                    metricName: "Percentage CPU",
                    metricResourceId: exampleLinuxVirtualMachineScaleSet.id,
                    timeGrain: "PT1M",
                    statistic: "Average",
                    timeWindow: "PT5M",
                    timeAggregation: "Average",
                    operator: "GreaterThan",
                    threshold: 90,
                },
                scaleAction: {
                    direction: "Increase",
                    type: "ChangeCount",
                    value: 2,
                    cooldown: "PT1M",
                },
            },
            {
                metricTrigger: {
                    metricName: "Percentage CPU",
                    metricResourceId: exampleLinuxVirtualMachineScaleSet.id,
                    timeGrain: "PT1M",
                    statistic: "Average",
                    timeWindow: "PT5M",
                    timeAggregation: "Average",
                    operator: "LessThan",
                    threshold: 10,
                },
                scaleAction: {
                    direction: "Decrease",
                    type: "ChangeCount",
                    value: 2,
                    cooldown: "PT1M",
                },
            },
        ],
        recurrence: {
            timezone: "Pacific Standard Time",
            days: [
                "Saturday",
                "Sunday",
            ],
            hours: 12,
            minutes: 0,
        },
    }],
    notification: {
        email: {
            sendToSubscriptionAdministrator: true,
            sendToSubscriptionCoAdministrator: true,
            customEmails: ["admin@contoso.com"],
        },
    },
});
Copy
import pulumi
import pulumi_azure as azure

example = azure.core.ResourceGroup("example",
    name="autoscalingTest",
    location="West Europe")
example_virtual_network = azure.network.VirtualNetwork("example",
    name="acctvn",
    address_spaces=["10.0.0.0/16"],
    location=example.location,
    resource_group_name=example.name)
example_subnet = azure.network.Subnet("example",
    name="acctsub",
    resource_group_name=example.name,
    virtual_network_name=example_virtual_network.name,
    address_prefixes=["10.0.2.0/24"])
example_linux_virtual_machine_scale_set = azure.compute.LinuxVirtualMachineScaleSet("example",
    name="exampleset",
    location=example.location,
    resource_group_name=example.name,
    upgrade_mode="Manual",
    sku="Standard_F2",
    instances=2,
    admin_username="myadmin",
    admin_ssh_keys=[{
        "username": "myadmin",
        "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com",
    }],
    network_interfaces=[{
        "name": "TestNetworkProfile",
        "primary": True,
        "ip_configurations": [{
            "name": "TestIPConfiguration",
            "primary": True,
            "subnet_id": example_subnet.id,
        }],
    }],
    os_disk={
        "caching": "ReadWrite",
        "storage_account_type": "StandardSSD_LRS",
    },
    source_image_reference={
        "publisher": "Canonical",
        "offer": "0001-com-ubuntu-server-jammy",
        "sku": "22_04-lts",
        "version": "latest",
    })
example_autoscale_setting = azure.monitoring.AutoscaleSetting("example",
    name="myAutoscaleSetting",
    resource_group_name=example.name,
    location=example.location,
    target_resource_id=example_linux_virtual_machine_scale_set.id,
    profiles=[{
        "name": "Weekends",
        "capacity": {
            "default": 1,
            "minimum": 1,
            "maximum": 10,
        },
        "rules": [
            {
                "metric_trigger": {
                    "metric_name": "Percentage CPU",
                    "metric_resource_id": example_linux_virtual_machine_scale_set.id,
                    "time_grain": "PT1M",
                    "statistic": "Average",
                    "time_window": "PT5M",
                    "time_aggregation": "Average",
                    "operator": "GreaterThan",
                    "threshold": 90,
                },
                "scale_action": {
                    "direction": "Increase",
                    "type": "ChangeCount",
                    "value": 2,
                    "cooldown": "PT1M",
                },
            },
            {
                "metric_trigger": {
                    "metric_name": "Percentage CPU",
                    "metric_resource_id": example_linux_virtual_machine_scale_set.id,
                    "time_grain": "PT1M",
                    "statistic": "Average",
                    "time_window": "PT5M",
                    "time_aggregation": "Average",
                    "operator": "LessThan",
                    "threshold": 10,
                },
                "scale_action": {
                    "direction": "Decrease",
                    "type": "ChangeCount",
                    "value": 2,
                    "cooldown": "PT1M",
                },
            },
        ],
        "recurrence": {
            "timezone": "Pacific Standard Time",
            "days": [
                "Saturday",
                "Sunday",
            ],
            "hours": 12,
            "minutes": 0,
        },
    }],
    notification={
        "email": {
            "send_to_subscription_administrator": True,
            "send_to_subscription_co_administrator": True,
            "custom_emails": ["admin@contoso.com"],
        },
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/monitoring"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("autoscalingTest"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
			Name: pulumi.String("acctvn"),
			AddressSpaces: pulumi.StringArray{
				pulumi.String("10.0.0.0/16"),
			},
			Location:          example.Location,
			ResourceGroupName: example.Name,
		})
		if err != nil {
			return err
		}
		exampleSubnet, err := network.NewSubnet(ctx, "example", &network.SubnetArgs{
			Name:               pulumi.String("acctsub"),
			ResourceGroupName:  example.Name,
			VirtualNetworkName: exampleVirtualNetwork.Name,
			AddressPrefixes: pulumi.StringArray{
				pulumi.String("10.0.2.0/24"),
			},
		})
		if err != nil {
			return err
		}
		exampleLinuxVirtualMachineScaleSet, err := compute.NewLinuxVirtualMachineScaleSet(ctx, "example", &compute.LinuxVirtualMachineScaleSetArgs{
			Name:              pulumi.String("exampleset"),
			Location:          example.Location,
			ResourceGroupName: example.Name,
			UpgradeMode:       pulumi.String("Manual"),
			Sku:               pulumi.String("Standard_F2"),
			Instances:         pulumi.Int(2),
			AdminUsername:     pulumi.String("myadmin"),
			AdminSshKeys: compute.LinuxVirtualMachineScaleSetAdminSshKeyArray{
				&compute.LinuxVirtualMachineScaleSetAdminSshKeyArgs{
					Username:  pulumi.String("myadmin"),
					PublicKey: pulumi.String("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com"),
				},
			},
			NetworkInterfaces: compute.LinuxVirtualMachineScaleSetNetworkInterfaceArray{
				&compute.LinuxVirtualMachineScaleSetNetworkInterfaceArgs{
					Name:    pulumi.String("TestNetworkProfile"),
					Primary: pulumi.Bool(true),
					IpConfigurations: compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArray{
						&compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs{
							Name:     pulumi.String("TestIPConfiguration"),
							Primary:  pulumi.Bool(true),
							SubnetId: exampleSubnet.ID(),
						},
					},
				},
			},
			OsDisk: &compute.LinuxVirtualMachineScaleSetOsDiskArgs{
				Caching:            pulumi.String("ReadWrite"),
				StorageAccountType: pulumi.String("StandardSSD_LRS"),
			},
			SourceImageReference: &compute.LinuxVirtualMachineScaleSetSourceImageReferenceArgs{
				Publisher: pulumi.String("Canonical"),
				Offer:     pulumi.String("0001-com-ubuntu-server-jammy"),
				Sku:       pulumi.String("22_04-lts"),
				Version:   pulumi.String("latest"),
			},
		})
		if err != nil {
			return err
		}
		_, err = monitoring.NewAutoscaleSetting(ctx, "example", &monitoring.AutoscaleSettingArgs{
			Name:              pulumi.String("myAutoscaleSetting"),
			ResourceGroupName: example.Name,
			Location:          example.Location,
			TargetResourceId:  exampleLinuxVirtualMachineScaleSet.ID(),
			Profiles: monitoring.AutoscaleSettingProfileArray{
				&monitoring.AutoscaleSettingProfileArgs{
					Name: pulumi.String("Weekends"),
					Capacity: &monitoring.AutoscaleSettingProfileCapacityArgs{
						Default: pulumi.Int(1),
						Minimum: pulumi.Int(1),
						Maximum: pulumi.Int(10),
					},
					Rules: monitoring.AutoscaleSettingProfileRuleArray{
						&monitoring.AutoscaleSettingProfileRuleArgs{
							MetricTrigger: &monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{
								MetricName:       pulumi.String("Percentage CPU"),
								MetricResourceId: exampleLinuxVirtualMachineScaleSet.ID(),
								TimeGrain:        pulumi.String("PT1M"),
								Statistic:        pulumi.String("Average"),
								TimeWindow:       pulumi.String("PT5M"),
								TimeAggregation:  pulumi.String("Average"),
								Operator:         pulumi.String("GreaterThan"),
								Threshold:        pulumi.Float64(90),
							},
							ScaleAction: &monitoring.AutoscaleSettingProfileRuleScaleActionArgs{
								Direction: pulumi.String("Increase"),
								Type:      pulumi.String("ChangeCount"),
								Value:     pulumi.Int(2),
								Cooldown:  pulumi.String("PT1M"),
							},
						},
						&monitoring.AutoscaleSettingProfileRuleArgs{
							MetricTrigger: &monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{
								MetricName:       pulumi.String("Percentage CPU"),
								MetricResourceId: exampleLinuxVirtualMachineScaleSet.ID(),
								TimeGrain:        pulumi.String("PT1M"),
								Statistic:        pulumi.String("Average"),
								TimeWindow:       pulumi.String("PT5M"),
								TimeAggregation:  pulumi.String("Average"),
								Operator:         pulumi.String("LessThan"),
								Threshold:        pulumi.Float64(10),
							},
							ScaleAction: &monitoring.AutoscaleSettingProfileRuleScaleActionArgs{
								Direction: pulumi.String("Decrease"),
								Type:      pulumi.String("ChangeCount"),
								Value:     pulumi.Int(2),
								Cooldown:  pulumi.String("PT1M"),
							},
						},
					},
					Recurrence: &monitoring.AutoscaleSettingProfileRecurrenceArgs{
						Timezone: pulumi.String("Pacific Standard Time"),
						Days: pulumi.StringArray{
							pulumi.String("Saturday"),
							pulumi.String("Sunday"),
						},
						Hours:   pulumi.Int(12),
						Minutes: pulumi.Int(0),
					},
				},
			},
			Notification: &monitoring.AutoscaleSettingNotificationArgs{
				Email: &monitoring.AutoscaleSettingNotificationEmailArgs{
					SendToSubscriptionAdministrator:   pulumi.Bool(true),
					SendToSubscriptionCoAdministrator: pulumi.Bool(true),
					CustomEmails: pulumi.StringArray{
						pulumi.String("admin@contoso.com"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;

return await Deployment.RunAsync(() => 
{
    var example = new Azure.Core.ResourceGroup("example", new()
    {
        Name = "autoscalingTest",
        Location = "West Europe",
    });

    var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
    {
        Name = "acctvn",
        AddressSpaces = new[]
        {
            "10.0.0.0/16",
        },
        Location = example.Location,
        ResourceGroupName = example.Name,
    });

    var exampleSubnet = new Azure.Network.Subnet("example", new()
    {
        Name = "acctsub",
        ResourceGroupName = example.Name,
        VirtualNetworkName = exampleVirtualNetwork.Name,
        AddressPrefixes = new[]
        {
            "10.0.2.0/24",
        },
    });

    var exampleLinuxVirtualMachineScaleSet = new Azure.Compute.LinuxVirtualMachineScaleSet("example", new()
    {
        Name = "exampleset",
        Location = example.Location,
        ResourceGroupName = example.Name,
        UpgradeMode = "Manual",
        Sku = "Standard_F2",
        Instances = 2,
        AdminUsername = "myadmin",
        AdminSshKeys = new[]
        {
            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetAdminSshKeyArgs
            {
                Username = "myadmin",
                PublicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com",
            },
        },
        NetworkInterfaces = new[]
        {
            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceArgs
            {
                Name = "TestNetworkProfile",
                Primary = true,
                IpConfigurations = new[]
                {
                    new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs
                    {
                        Name = "TestIPConfiguration",
                        Primary = true,
                        SubnetId = exampleSubnet.Id,
                    },
                },
            },
        },
        OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetOsDiskArgs
        {
            Caching = "ReadWrite",
            StorageAccountType = "StandardSSD_LRS",
        },
        SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetSourceImageReferenceArgs
        {
            Publisher = "Canonical",
            Offer = "0001-com-ubuntu-server-jammy",
            Sku = "22_04-lts",
            Version = "latest",
        },
    });

    var exampleAutoscaleSetting = new Azure.Monitoring.AutoscaleSetting("example", new()
    {
        Name = "myAutoscaleSetting",
        ResourceGroupName = example.Name,
        Location = example.Location,
        TargetResourceId = exampleLinuxVirtualMachineScaleSet.Id,
        Profiles = new[]
        {
            new Azure.Monitoring.Inputs.AutoscaleSettingProfileArgs
            {
                Name = "Weekends",
                Capacity = new Azure.Monitoring.Inputs.AutoscaleSettingProfileCapacityArgs
                {
                    Default = 1,
                    Minimum = 1,
                    Maximum = 10,
                },
                Rules = new[]
                {
                    new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs
                    {
                        MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs
                        {
                            MetricName = "Percentage CPU",
                            MetricResourceId = exampleLinuxVirtualMachineScaleSet.Id,
                            TimeGrain = "PT1M",
                            Statistic = "Average",
                            TimeWindow = "PT5M",
                            TimeAggregation = "Average",
                            Operator = "GreaterThan",
                            Threshold = 90,
                        },
                        ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs
                        {
                            Direction = "Increase",
                            Type = "ChangeCount",
                            Value = 2,
                            Cooldown = "PT1M",
                        },
                    },
                    new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs
                    {
                        MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs
                        {
                            MetricName = "Percentage CPU",
                            MetricResourceId = exampleLinuxVirtualMachineScaleSet.Id,
                            TimeGrain = "PT1M",
                            Statistic = "Average",
                            TimeWindow = "PT5M",
                            TimeAggregation = "Average",
                            Operator = "LessThan",
                            Threshold = 10,
                        },
                        ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs
                        {
                            Direction = "Decrease",
                            Type = "ChangeCount",
                            Value = 2,
                            Cooldown = "PT1M",
                        },
                    },
                },
                Recurrence = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRecurrenceArgs
                {
                    Timezone = "Pacific Standard Time",
                    Days = new[]
                    {
                        "Saturday",
                        "Sunday",
                    },
                    Hours = 12,
                    Minutes = 0,
                },
            },
        },
        Notification = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationArgs
        {
            Email = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationEmailArgs
            {
                SendToSubscriptionAdministrator = true,
                SendToSubscriptionCoAdministrator = true,
                CustomEmails = new[]
                {
                    "admin@contoso.com",
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.network.VirtualNetwork;
import com.pulumi.azure.network.VirtualNetworkArgs;
import com.pulumi.azure.network.Subnet;
import com.pulumi.azure.network.SubnetArgs;
import com.pulumi.azure.compute.LinuxVirtualMachineScaleSet;
import com.pulumi.azure.compute.LinuxVirtualMachineScaleSetArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetAdminSshKeyArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetNetworkInterfaceArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetOsDiskArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetSourceImageReferenceArgs;
import com.pulumi.azure.monitoring.AutoscaleSetting;
import com.pulumi.azure.monitoring.AutoscaleSettingArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingProfileArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingProfileCapacityArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingProfileRecurrenceArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingNotificationArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingNotificationEmailArgs;
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 example = new ResourceGroup("example", ResourceGroupArgs.builder()
            .name("autoscalingTest")
            .location("West Europe")
            .build());

        var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
            .name("acctvn")
            .addressSpaces("10.0.0.0/16")
            .location(example.location())
            .resourceGroupName(example.name())
            .build());

        var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
            .name("acctsub")
            .resourceGroupName(example.name())
            .virtualNetworkName(exampleVirtualNetwork.name())
            .addressPrefixes("10.0.2.0/24")
            .build());

        var exampleLinuxVirtualMachineScaleSet = new LinuxVirtualMachineScaleSet("exampleLinuxVirtualMachineScaleSet", LinuxVirtualMachineScaleSetArgs.builder()
            .name("exampleset")
            .location(example.location())
            .resourceGroupName(example.name())
            .upgradeMode("Manual")
            .sku("Standard_F2")
            .instances(2)
            .adminUsername("myadmin")
            .adminSshKeys(LinuxVirtualMachineScaleSetAdminSshKeyArgs.builder()
                .username("myadmin")
                .publicKey("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com")
                .build())
            .networkInterfaces(LinuxVirtualMachineScaleSetNetworkInterfaceArgs.builder()
                .name("TestNetworkProfile")
                .primary(true)
                .ipConfigurations(LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs.builder()
                    .name("TestIPConfiguration")
                    .primary(true)
                    .subnetId(exampleSubnet.id())
                    .build())
                .build())
            .osDisk(LinuxVirtualMachineScaleSetOsDiskArgs.builder()
                .caching("ReadWrite")
                .storageAccountType("StandardSSD_LRS")
                .build())
            .sourceImageReference(LinuxVirtualMachineScaleSetSourceImageReferenceArgs.builder()
                .publisher("Canonical")
                .offer("0001-com-ubuntu-server-jammy")
                .sku("22_04-lts")
                .version("latest")
                .build())
            .build());

        var exampleAutoscaleSetting = new AutoscaleSetting("exampleAutoscaleSetting", AutoscaleSettingArgs.builder()
            .name("myAutoscaleSetting")
            .resourceGroupName(example.name())
            .location(example.location())
            .targetResourceId(exampleLinuxVirtualMachineScaleSet.id())
            .profiles(AutoscaleSettingProfileArgs.builder()
                .name("Weekends")
                .capacity(AutoscaleSettingProfileCapacityArgs.builder()
                    .default_(1)
                    .minimum(1)
                    .maximum(10)
                    .build())
                .rules(                
                    AutoscaleSettingProfileRuleArgs.builder()
                        .metricTrigger(AutoscaleSettingProfileRuleMetricTriggerArgs.builder()
                            .metricName("Percentage CPU")
                            .metricResourceId(exampleLinuxVirtualMachineScaleSet.id())
                            .timeGrain("PT1M")
                            .statistic("Average")
                            .timeWindow("PT5M")
                            .timeAggregation("Average")
                            .operator("GreaterThan")
                            .threshold(90)
                            .build())
                        .scaleAction(AutoscaleSettingProfileRuleScaleActionArgs.builder()
                            .direction("Increase")
                            .type("ChangeCount")
                            .value("2")
                            .cooldown("PT1M")
                            .build())
                        .build(),
                    AutoscaleSettingProfileRuleArgs.builder()
                        .metricTrigger(AutoscaleSettingProfileRuleMetricTriggerArgs.builder()
                            .metricName("Percentage CPU")
                            .metricResourceId(exampleLinuxVirtualMachineScaleSet.id())
                            .timeGrain("PT1M")
                            .statistic("Average")
                            .timeWindow("PT5M")
                            .timeAggregation("Average")
                            .operator("LessThan")
                            .threshold(10)
                            .build())
                        .scaleAction(AutoscaleSettingProfileRuleScaleActionArgs.builder()
                            .direction("Decrease")
                            .type("ChangeCount")
                            .value("2")
                            .cooldown("PT1M")
                            .build())
                        .build())
                .recurrence(AutoscaleSettingProfileRecurrenceArgs.builder()
                    .timezone("Pacific Standard Time")
                    .days(                    
                        "Saturday",
                        "Sunday")
                    .hours(12)
                    .minutes(0)
                    .build())
                .build())
            .notification(AutoscaleSettingNotificationArgs.builder()
                .email(AutoscaleSettingNotificationEmailArgs.builder()
                    .sendToSubscriptionAdministrator(true)
                    .sendToSubscriptionCoAdministrator(true)
                    .customEmails("admin@contoso.com")
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  example:
    type: azure:core:ResourceGroup
    properties:
      name: autoscalingTest
      location: West Europe
  exampleVirtualNetwork:
    type: azure:network:VirtualNetwork
    name: example
    properties:
      name: acctvn
      addressSpaces:
        - 10.0.0.0/16
      location: ${example.location}
      resourceGroupName: ${example.name}
  exampleSubnet:
    type: azure:network:Subnet
    name: example
    properties:
      name: acctsub
      resourceGroupName: ${example.name}
      virtualNetworkName: ${exampleVirtualNetwork.name}
      addressPrefixes:
        - 10.0.2.0/24
  exampleLinuxVirtualMachineScaleSet:
    type: azure:compute:LinuxVirtualMachineScaleSet
    name: example
    properties:
      name: exampleset
      location: ${example.location}
      resourceGroupName: ${example.name}
      upgradeMode: Manual
      sku: Standard_F2
      instances: 2
      adminUsername: myadmin
      adminSshKeys:
        - username: myadmin
          publicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com
      networkInterfaces:
        - name: TestNetworkProfile
          primary: true
          ipConfigurations:
            - name: TestIPConfiguration
              primary: true
              subnetId: ${exampleSubnet.id}
      osDisk:
        caching: ReadWrite
        storageAccountType: StandardSSD_LRS
      sourceImageReference:
        publisher: Canonical
        offer: 0001-com-ubuntu-server-jammy
        sku: 22_04-lts
        version: latest
  exampleAutoscaleSetting:
    type: azure:monitoring:AutoscaleSetting
    name: example
    properties:
      name: myAutoscaleSetting
      resourceGroupName: ${example.name}
      location: ${example.location}
      targetResourceId: ${exampleLinuxVirtualMachineScaleSet.id}
      profiles:
        - name: Weekends
          capacity:
            default: 1
            minimum: 1
            maximum: 10
          rules:
            - metricTrigger:
                metricName: Percentage CPU
                metricResourceId: ${exampleLinuxVirtualMachineScaleSet.id}
                timeGrain: PT1M
                statistic: Average
                timeWindow: PT5M
                timeAggregation: Average
                operator: GreaterThan
                threshold: 90
              scaleAction:
                direction: Increase
                type: ChangeCount
                value: '2'
                cooldown: PT1M
            - metricTrigger:
                metricName: Percentage CPU
                metricResourceId: ${exampleLinuxVirtualMachineScaleSet.id}
                timeGrain: PT1M
                statistic: Average
                timeWindow: PT5M
                timeAggregation: Average
                operator: LessThan
                threshold: 10
              scaleAction:
                direction: Decrease
                type: ChangeCount
                value: '2'
                cooldown: PT1M
          recurrence:
            timezone: Pacific Standard Time
            days:
              - Saturday
              - Sunday
            hours: 12
            minutes: 0
      notification:
        email:
          sendToSubscriptionAdministrator: true
          sendToSubscriptionCoAdministrator: true
          customEmails:
            - admin@contoso.com
Copy

For Fixed Dates)

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";

const example = new azure.core.ResourceGroup("example", {
    name: "autoscalingTest",
    location: "West Europe",
});
const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
    name: "acctvn",
    addressSpaces: ["10.0.0.0/16"],
    location: example.location,
    resourceGroupName: example.name,
});
const exampleSubnet = new azure.network.Subnet("example", {
    name: "acctsub",
    resourceGroupName: example.name,
    virtualNetworkName: exampleVirtualNetwork.name,
    addressPrefixes: ["10.0.2.0/24"],
});
const exampleLinuxVirtualMachineScaleSet = new azure.compute.LinuxVirtualMachineScaleSet("example", {
    name: "exampleset",
    location: example.location,
    resourceGroupName: example.name,
    upgradeMode: "Manual",
    sku: "Standard_F2",
    instances: 2,
    adminUsername: "myadmin",
    adminSshKeys: [{
        username: "myadmin",
        publicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com",
    }],
    networkInterfaces: [{
        name: "TestNetworkProfile",
        primary: true,
        ipConfigurations: [{
            name: "TestIPConfiguration",
            primary: true,
            subnetId: exampleSubnet.id,
        }],
    }],
    osDisk: {
        caching: "ReadWrite",
        storageAccountType: "StandardSSD_LRS",
    },
    sourceImageReference: {
        publisher: "Canonical",
        offer: "0001-com-ubuntu-server-jammy",
        sku: "22_04-lts",
        version: "latest",
    },
});
const exampleAutoscaleSetting = new azure.monitoring.AutoscaleSetting("example", {
    name: "myAutoscaleSetting",
    enabled: true,
    resourceGroupName: example.name,
    location: example.location,
    targetResourceId: exampleLinuxVirtualMachineScaleSet.id,
    profiles: [{
        name: "forJuly",
        capacity: {
            "default": 1,
            minimum: 1,
            maximum: 10,
        },
        rules: [
            {
                metricTrigger: {
                    metricName: "Percentage CPU",
                    metricResourceId: exampleLinuxVirtualMachineScaleSet.id,
                    timeGrain: "PT1M",
                    statistic: "Average",
                    timeWindow: "PT5M",
                    timeAggregation: "Average",
                    operator: "GreaterThan",
                    threshold: 90,
                },
                scaleAction: {
                    direction: "Increase",
                    type: "ChangeCount",
                    value: 2,
                    cooldown: "PT1M",
                },
            },
            {
                metricTrigger: {
                    metricName: "Percentage CPU",
                    metricResourceId: exampleLinuxVirtualMachineScaleSet.id,
                    timeGrain: "PT1M",
                    statistic: "Average",
                    timeWindow: "PT5M",
                    timeAggregation: "Average",
                    operator: "LessThan",
                    threshold: 10,
                },
                scaleAction: {
                    direction: "Decrease",
                    type: "ChangeCount",
                    value: 2,
                    cooldown: "PT1M",
                },
            },
        ],
        fixedDate: {
            timezone: "Pacific Standard Time",
            start: "2020-07-01T00:00:00Z",
            end: "2020-07-31T23:59:59Z",
        },
    }],
    notification: {
        email: {
            sendToSubscriptionAdministrator: true,
            sendToSubscriptionCoAdministrator: true,
            customEmails: ["admin@contoso.com"],
        },
    },
});
Copy
import pulumi
import pulumi_azure as azure

example = azure.core.ResourceGroup("example",
    name="autoscalingTest",
    location="West Europe")
example_virtual_network = azure.network.VirtualNetwork("example",
    name="acctvn",
    address_spaces=["10.0.0.0/16"],
    location=example.location,
    resource_group_name=example.name)
example_subnet = azure.network.Subnet("example",
    name="acctsub",
    resource_group_name=example.name,
    virtual_network_name=example_virtual_network.name,
    address_prefixes=["10.0.2.0/24"])
example_linux_virtual_machine_scale_set = azure.compute.LinuxVirtualMachineScaleSet("example",
    name="exampleset",
    location=example.location,
    resource_group_name=example.name,
    upgrade_mode="Manual",
    sku="Standard_F2",
    instances=2,
    admin_username="myadmin",
    admin_ssh_keys=[{
        "username": "myadmin",
        "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com",
    }],
    network_interfaces=[{
        "name": "TestNetworkProfile",
        "primary": True,
        "ip_configurations": [{
            "name": "TestIPConfiguration",
            "primary": True,
            "subnet_id": example_subnet.id,
        }],
    }],
    os_disk={
        "caching": "ReadWrite",
        "storage_account_type": "StandardSSD_LRS",
    },
    source_image_reference={
        "publisher": "Canonical",
        "offer": "0001-com-ubuntu-server-jammy",
        "sku": "22_04-lts",
        "version": "latest",
    })
example_autoscale_setting = azure.monitoring.AutoscaleSetting("example",
    name="myAutoscaleSetting",
    enabled=True,
    resource_group_name=example.name,
    location=example.location,
    target_resource_id=example_linux_virtual_machine_scale_set.id,
    profiles=[{
        "name": "forJuly",
        "capacity": {
            "default": 1,
            "minimum": 1,
            "maximum": 10,
        },
        "rules": [
            {
                "metric_trigger": {
                    "metric_name": "Percentage CPU",
                    "metric_resource_id": example_linux_virtual_machine_scale_set.id,
                    "time_grain": "PT1M",
                    "statistic": "Average",
                    "time_window": "PT5M",
                    "time_aggregation": "Average",
                    "operator": "GreaterThan",
                    "threshold": 90,
                },
                "scale_action": {
                    "direction": "Increase",
                    "type": "ChangeCount",
                    "value": 2,
                    "cooldown": "PT1M",
                },
            },
            {
                "metric_trigger": {
                    "metric_name": "Percentage CPU",
                    "metric_resource_id": example_linux_virtual_machine_scale_set.id,
                    "time_grain": "PT1M",
                    "statistic": "Average",
                    "time_window": "PT5M",
                    "time_aggregation": "Average",
                    "operator": "LessThan",
                    "threshold": 10,
                },
                "scale_action": {
                    "direction": "Decrease",
                    "type": "ChangeCount",
                    "value": 2,
                    "cooldown": "PT1M",
                },
            },
        ],
        "fixed_date": {
            "timezone": "Pacific Standard Time",
            "start": "2020-07-01T00:00:00Z",
            "end": "2020-07-31T23:59:59Z",
        },
    }],
    notification={
        "email": {
            "send_to_subscription_administrator": True,
            "send_to_subscription_co_administrator": True,
            "custom_emails": ["admin@contoso.com"],
        },
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/monitoring"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("autoscalingTest"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
			Name: pulumi.String("acctvn"),
			AddressSpaces: pulumi.StringArray{
				pulumi.String("10.0.0.0/16"),
			},
			Location:          example.Location,
			ResourceGroupName: example.Name,
		})
		if err != nil {
			return err
		}
		exampleSubnet, err := network.NewSubnet(ctx, "example", &network.SubnetArgs{
			Name:               pulumi.String("acctsub"),
			ResourceGroupName:  example.Name,
			VirtualNetworkName: exampleVirtualNetwork.Name,
			AddressPrefixes: pulumi.StringArray{
				pulumi.String("10.0.2.0/24"),
			},
		})
		if err != nil {
			return err
		}
		exampleLinuxVirtualMachineScaleSet, err := compute.NewLinuxVirtualMachineScaleSet(ctx, "example", &compute.LinuxVirtualMachineScaleSetArgs{
			Name:              pulumi.String("exampleset"),
			Location:          example.Location,
			ResourceGroupName: example.Name,
			UpgradeMode:       pulumi.String("Manual"),
			Sku:               pulumi.String("Standard_F2"),
			Instances:         pulumi.Int(2),
			AdminUsername:     pulumi.String("myadmin"),
			AdminSshKeys: compute.LinuxVirtualMachineScaleSetAdminSshKeyArray{
				&compute.LinuxVirtualMachineScaleSetAdminSshKeyArgs{
					Username:  pulumi.String("myadmin"),
					PublicKey: pulumi.String("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com"),
				},
			},
			NetworkInterfaces: compute.LinuxVirtualMachineScaleSetNetworkInterfaceArray{
				&compute.LinuxVirtualMachineScaleSetNetworkInterfaceArgs{
					Name:    pulumi.String("TestNetworkProfile"),
					Primary: pulumi.Bool(true),
					IpConfigurations: compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArray{
						&compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs{
							Name:     pulumi.String("TestIPConfiguration"),
							Primary:  pulumi.Bool(true),
							SubnetId: exampleSubnet.ID(),
						},
					},
				},
			},
			OsDisk: &compute.LinuxVirtualMachineScaleSetOsDiskArgs{
				Caching:            pulumi.String("ReadWrite"),
				StorageAccountType: pulumi.String("StandardSSD_LRS"),
			},
			SourceImageReference: &compute.LinuxVirtualMachineScaleSetSourceImageReferenceArgs{
				Publisher: pulumi.String("Canonical"),
				Offer:     pulumi.String("0001-com-ubuntu-server-jammy"),
				Sku:       pulumi.String("22_04-lts"),
				Version:   pulumi.String("latest"),
			},
		})
		if err != nil {
			return err
		}
		_, err = monitoring.NewAutoscaleSetting(ctx, "example", &monitoring.AutoscaleSettingArgs{
			Name:              pulumi.String("myAutoscaleSetting"),
			Enabled:           pulumi.Bool(true),
			ResourceGroupName: example.Name,
			Location:          example.Location,
			TargetResourceId:  exampleLinuxVirtualMachineScaleSet.ID(),
			Profiles: monitoring.AutoscaleSettingProfileArray{
				&monitoring.AutoscaleSettingProfileArgs{
					Name: pulumi.String("forJuly"),
					Capacity: &monitoring.AutoscaleSettingProfileCapacityArgs{
						Default: pulumi.Int(1),
						Minimum: pulumi.Int(1),
						Maximum: pulumi.Int(10),
					},
					Rules: monitoring.AutoscaleSettingProfileRuleArray{
						&monitoring.AutoscaleSettingProfileRuleArgs{
							MetricTrigger: &monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{
								MetricName:       pulumi.String("Percentage CPU"),
								MetricResourceId: exampleLinuxVirtualMachineScaleSet.ID(),
								TimeGrain:        pulumi.String("PT1M"),
								Statistic:        pulumi.String("Average"),
								TimeWindow:       pulumi.String("PT5M"),
								TimeAggregation:  pulumi.String("Average"),
								Operator:         pulumi.String("GreaterThan"),
								Threshold:        pulumi.Float64(90),
							},
							ScaleAction: &monitoring.AutoscaleSettingProfileRuleScaleActionArgs{
								Direction: pulumi.String("Increase"),
								Type:      pulumi.String("ChangeCount"),
								Value:     pulumi.Int(2),
								Cooldown:  pulumi.String("PT1M"),
							},
						},
						&monitoring.AutoscaleSettingProfileRuleArgs{
							MetricTrigger: &monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{
								MetricName:       pulumi.String("Percentage CPU"),
								MetricResourceId: exampleLinuxVirtualMachineScaleSet.ID(),
								TimeGrain:        pulumi.String("PT1M"),
								Statistic:        pulumi.String("Average"),
								TimeWindow:       pulumi.String("PT5M"),
								TimeAggregation:  pulumi.String("Average"),
								Operator:         pulumi.String("LessThan"),
								Threshold:        pulumi.Float64(10),
							},
							ScaleAction: &monitoring.AutoscaleSettingProfileRuleScaleActionArgs{
								Direction: pulumi.String("Decrease"),
								Type:      pulumi.String("ChangeCount"),
								Value:     pulumi.Int(2),
								Cooldown:  pulumi.String("PT1M"),
							},
						},
					},
					FixedDate: &monitoring.AutoscaleSettingProfileFixedDateArgs{
						Timezone: pulumi.String("Pacific Standard Time"),
						Start:    pulumi.String("2020-07-01T00:00:00Z"),
						End:      pulumi.String("2020-07-31T23:59:59Z"),
					},
				},
			},
			Notification: &monitoring.AutoscaleSettingNotificationArgs{
				Email: &monitoring.AutoscaleSettingNotificationEmailArgs{
					SendToSubscriptionAdministrator:   pulumi.Bool(true),
					SendToSubscriptionCoAdministrator: pulumi.Bool(true),
					CustomEmails: pulumi.StringArray{
						pulumi.String("admin@contoso.com"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;

return await Deployment.RunAsync(() => 
{
    var example = new Azure.Core.ResourceGroup("example", new()
    {
        Name = "autoscalingTest",
        Location = "West Europe",
    });

    var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
    {
        Name = "acctvn",
        AddressSpaces = new[]
        {
            "10.0.0.0/16",
        },
        Location = example.Location,
        ResourceGroupName = example.Name,
    });

    var exampleSubnet = new Azure.Network.Subnet("example", new()
    {
        Name = "acctsub",
        ResourceGroupName = example.Name,
        VirtualNetworkName = exampleVirtualNetwork.Name,
        AddressPrefixes = new[]
        {
            "10.0.2.0/24",
        },
    });

    var exampleLinuxVirtualMachineScaleSet = new Azure.Compute.LinuxVirtualMachineScaleSet("example", new()
    {
        Name = "exampleset",
        Location = example.Location,
        ResourceGroupName = example.Name,
        UpgradeMode = "Manual",
        Sku = "Standard_F2",
        Instances = 2,
        AdminUsername = "myadmin",
        AdminSshKeys = new[]
        {
            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetAdminSshKeyArgs
            {
                Username = "myadmin",
                PublicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com",
            },
        },
        NetworkInterfaces = new[]
        {
            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceArgs
            {
                Name = "TestNetworkProfile",
                Primary = true,
                IpConfigurations = new[]
                {
                    new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs
                    {
                        Name = "TestIPConfiguration",
                        Primary = true,
                        SubnetId = exampleSubnet.Id,
                    },
                },
            },
        },
        OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetOsDiskArgs
        {
            Caching = "ReadWrite",
            StorageAccountType = "StandardSSD_LRS",
        },
        SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetSourceImageReferenceArgs
        {
            Publisher = "Canonical",
            Offer = "0001-com-ubuntu-server-jammy",
            Sku = "22_04-lts",
            Version = "latest",
        },
    });

    var exampleAutoscaleSetting = new Azure.Monitoring.AutoscaleSetting("example", new()
    {
        Name = "myAutoscaleSetting",
        Enabled = true,
        ResourceGroupName = example.Name,
        Location = example.Location,
        TargetResourceId = exampleLinuxVirtualMachineScaleSet.Id,
        Profiles = new[]
        {
            new Azure.Monitoring.Inputs.AutoscaleSettingProfileArgs
            {
                Name = "forJuly",
                Capacity = new Azure.Monitoring.Inputs.AutoscaleSettingProfileCapacityArgs
                {
                    Default = 1,
                    Minimum = 1,
                    Maximum = 10,
                },
                Rules = new[]
                {
                    new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs
                    {
                        MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs
                        {
                            MetricName = "Percentage CPU",
                            MetricResourceId = exampleLinuxVirtualMachineScaleSet.Id,
                            TimeGrain = "PT1M",
                            Statistic = "Average",
                            TimeWindow = "PT5M",
                            TimeAggregation = "Average",
                            Operator = "GreaterThan",
                            Threshold = 90,
                        },
                        ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs
                        {
                            Direction = "Increase",
                            Type = "ChangeCount",
                            Value = 2,
                            Cooldown = "PT1M",
                        },
                    },
                    new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs
                    {
                        MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs
                        {
                            MetricName = "Percentage CPU",
                            MetricResourceId = exampleLinuxVirtualMachineScaleSet.Id,
                            TimeGrain = "PT1M",
                            Statistic = "Average",
                            TimeWindow = "PT5M",
                            TimeAggregation = "Average",
                            Operator = "LessThan",
                            Threshold = 10,
                        },
                        ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs
                        {
                            Direction = "Decrease",
                            Type = "ChangeCount",
                            Value = 2,
                            Cooldown = "PT1M",
                        },
                    },
                },
                FixedDate = new Azure.Monitoring.Inputs.AutoscaleSettingProfileFixedDateArgs
                {
                    Timezone = "Pacific Standard Time",
                    Start = "2020-07-01T00:00:00Z",
                    End = "2020-07-31T23:59:59Z",
                },
            },
        },
        Notification = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationArgs
        {
            Email = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationEmailArgs
            {
                SendToSubscriptionAdministrator = true,
                SendToSubscriptionCoAdministrator = true,
                CustomEmails = new[]
                {
                    "admin@contoso.com",
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.network.VirtualNetwork;
import com.pulumi.azure.network.VirtualNetworkArgs;
import com.pulumi.azure.network.Subnet;
import com.pulumi.azure.network.SubnetArgs;
import com.pulumi.azure.compute.LinuxVirtualMachineScaleSet;
import com.pulumi.azure.compute.LinuxVirtualMachineScaleSetArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetAdminSshKeyArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetNetworkInterfaceArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetOsDiskArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetSourceImageReferenceArgs;
import com.pulumi.azure.monitoring.AutoscaleSetting;
import com.pulumi.azure.monitoring.AutoscaleSettingArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingProfileArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingProfileCapacityArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingProfileFixedDateArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingNotificationArgs;
import com.pulumi.azure.monitoring.inputs.AutoscaleSettingNotificationEmailArgs;
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 example = new ResourceGroup("example", ResourceGroupArgs.builder()
            .name("autoscalingTest")
            .location("West Europe")
            .build());

        var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
            .name("acctvn")
            .addressSpaces("10.0.0.0/16")
            .location(example.location())
            .resourceGroupName(example.name())
            .build());

        var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
            .name("acctsub")
            .resourceGroupName(example.name())
            .virtualNetworkName(exampleVirtualNetwork.name())
            .addressPrefixes("10.0.2.0/24")
            .build());

        var exampleLinuxVirtualMachineScaleSet = new LinuxVirtualMachineScaleSet("exampleLinuxVirtualMachineScaleSet", LinuxVirtualMachineScaleSetArgs.builder()
            .name("exampleset")
            .location(example.location())
            .resourceGroupName(example.name())
            .upgradeMode("Manual")
            .sku("Standard_F2")
            .instances(2)
            .adminUsername("myadmin")
            .adminSshKeys(LinuxVirtualMachineScaleSetAdminSshKeyArgs.builder()
                .username("myadmin")
                .publicKey("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com")
                .build())
            .networkInterfaces(LinuxVirtualMachineScaleSetNetworkInterfaceArgs.builder()
                .name("TestNetworkProfile")
                .primary(true)
                .ipConfigurations(LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs.builder()
                    .name("TestIPConfiguration")
                    .primary(true)
                    .subnetId(exampleSubnet.id())
                    .build())
                .build())
            .osDisk(LinuxVirtualMachineScaleSetOsDiskArgs.builder()
                .caching("ReadWrite")
                .storageAccountType("StandardSSD_LRS")
                .build())
            .sourceImageReference(LinuxVirtualMachineScaleSetSourceImageReferenceArgs.builder()
                .publisher("Canonical")
                .offer("0001-com-ubuntu-server-jammy")
                .sku("22_04-lts")
                .version("latest")
                .build())
            .build());

        var exampleAutoscaleSetting = new AutoscaleSetting("exampleAutoscaleSetting", AutoscaleSettingArgs.builder()
            .name("myAutoscaleSetting")
            .enabled(true)
            .resourceGroupName(example.name())
            .location(example.location())
            .targetResourceId(exampleLinuxVirtualMachineScaleSet.id())
            .profiles(AutoscaleSettingProfileArgs.builder()
                .name("forJuly")
                .capacity(AutoscaleSettingProfileCapacityArgs.builder()
                    .default_(1)
                    .minimum(1)
                    .maximum(10)
                    .build())
                .rules(                
                    AutoscaleSettingProfileRuleArgs.builder()
                        .metricTrigger(AutoscaleSettingProfileRuleMetricTriggerArgs.builder()
                            .metricName("Percentage CPU")
                            .metricResourceId(exampleLinuxVirtualMachineScaleSet.id())
                            .timeGrain("PT1M")
                            .statistic("Average")
                            .timeWindow("PT5M")
                            .timeAggregation("Average")
                            .operator("GreaterThan")
                            .threshold(90)
                            .build())
                        .scaleAction(AutoscaleSettingProfileRuleScaleActionArgs.builder()
                            .direction("Increase")
                            .type("ChangeCount")
                            .value("2")
                            .cooldown("PT1M")
                            .build())
                        .build(),
                    AutoscaleSettingProfileRuleArgs.builder()
                        .metricTrigger(AutoscaleSettingProfileRuleMetricTriggerArgs.builder()
                            .metricName("Percentage CPU")
                            .metricResourceId(exampleLinuxVirtualMachineScaleSet.id())
                            .timeGrain("PT1M")
                            .statistic("Average")
                            .timeWindow("PT5M")
                            .timeAggregation("Average")
                            .operator("LessThan")
                            .threshold(10)
                            .build())
                        .scaleAction(AutoscaleSettingProfileRuleScaleActionArgs.builder()
                            .direction("Decrease")
                            .type("ChangeCount")
                            .value("2")
                            .cooldown("PT1M")
                            .build())
                        .build())
                .fixedDate(AutoscaleSettingProfileFixedDateArgs.builder()
                    .timezone("Pacific Standard Time")
                    .start("2020-07-01T00:00:00Z")
                    .end("2020-07-31T23:59:59Z")
                    .build())
                .build())
            .notification(AutoscaleSettingNotificationArgs.builder()
                .email(AutoscaleSettingNotificationEmailArgs.builder()
                    .sendToSubscriptionAdministrator(true)
                    .sendToSubscriptionCoAdministrator(true)
                    .customEmails("admin@contoso.com")
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  example:
    type: azure:core:ResourceGroup
    properties:
      name: autoscalingTest
      location: West Europe
  exampleVirtualNetwork:
    type: azure:network:VirtualNetwork
    name: example
    properties:
      name: acctvn
      addressSpaces:
        - 10.0.0.0/16
      location: ${example.location}
      resourceGroupName: ${example.name}
  exampleSubnet:
    type: azure:network:Subnet
    name: example
    properties:
      name: acctsub
      resourceGroupName: ${example.name}
      virtualNetworkName: ${exampleVirtualNetwork.name}
      addressPrefixes:
        - 10.0.2.0/24
  exampleLinuxVirtualMachineScaleSet:
    type: azure:compute:LinuxVirtualMachineScaleSet
    name: example
    properties:
      name: exampleset
      location: ${example.location}
      resourceGroupName: ${example.name}
      upgradeMode: Manual
      sku: Standard_F2
      instances: 2
      adminUsername: myadmin
      adminSshKeys:
        - username: myadmin
          publicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== hello@world.com
      networkInterfaces:
        - name: TestNetworkProfile
          primary: true
          ipConfigurations:
            - name: TestIPConfiguration
              primary: true
              subnetId: ${exampleSubnet.id}
      osDisk:
        caching: ReadWrite
        storageAccountType: StandardSSD_LRS
      sourceImageReference:
        publisher: Canonical
        offer: 0001-com-ubuntu-server-jammy
        sku: 22_04-lts
        version: latest
  exampleAutoscaleSetting:
    type: azure:monitoring:AutoscaleSetting
    name: example
    properties:
      name: myAutoscaleSetting
      enabled: true
      resourceGroupName: ${example.name}
      location: ${example.location}
      targetResourceId: ${exampleLinuxVirtualMachineScaleSet.id}
      profiles:
        - name: forJuly
          capacity:
            default: 1
            minimum: 1
            maximum: 10
          rules:
            - metricTrigger:
                metricName: Percentage CPU
                metricResourceId: ${exampleLinuxVirtualMachineScaleSet.id}
                timeGrain: PT1M
                statistic: Average
                timeWindow: PT5M
                timeAggregation: Average
                operator: GreaterThan
                threshold: 90
              scaleAction:
                direction: Increase
                type: ChangeCount
                value: '2'
                cooldown: PT1M
            - metricTrigger:
                metricName: Percentage CPU
                metricResourceId: ${exampleLinuxVirtualMachineScaleSet.id}
                timeGrain: PT1M
                statistic: Average
                timeWindow: PT5M
                timeAggregation: Average
                operator: LessThan
                threshold: 10
              scaleAction:
                direction: Decrease
                type: ChangeCount
                value: '2'
                cooldown: PT1M
          fixedDate:
            timezone: Pacific Standard Time
            start: 2020-07-01T00:00:00Z
            end: 2020-07-31T23:59:59Z
      notification:
        email:
          sendToSubscriptionAdministrator: true
          sendToSubscriptionCoAdministrator: true
          customEmails:
            - admin@contoso.com
Copy

Create AutoscaleSetting Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new AutoscaleSetting(name: string, args: AutoscaleSettingArgs, opts?: CustomResourceOptions);
@overload
def AutoscaleSetting(resource_name: str,
                     args: AutoscaleSettingArgs,
                     opts: Optional[ResourceOptions] = None)

@overload
def AutoscaleSetting(resource_name: str,
                     opts: Optional[ResourceOptions] = None,
                     profiles: Optional[Sequence[AutoscaleSettingProfileArgs]] = None,
                     resource_group_name: Optional[str] = None,
                     target_resource_id: Optional[str] = None,
                     enabled: Optional[bool] = None,
                     location: Optional[str] = None,
                     name: Optional[str] = None,
                     notification: Optional[AutoscaleSettingNotificationArgs] = None,
                     predictive: Optional[AutoscaleSettingPredictiveArgs] = None,
                     tags: Optional[Mapping[str, str]] = None)
func NewAutoscaleSetting(ctx *Context, name string, args AutoscaleSettingArgs, opts ...ResourceOption) (*AutoscaleSetting, error)
public AutoscaleSetting(string name, AutoscaleSettingArgs args, CustomResourceOptions? opts = null)
public AutoscaleSetting(String name, AutoscaleSettingArgs args)
public AutoscaleSetting(String name, AutoscaleSettingArgs args, CustomResourceOptions options)
type: azure:monitoring:AutoscaleSetting
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. AutoscaleSettingArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. AutoscaleSettingArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. AutoscaleSettingArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. AutoscaleSettingArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. AutoscaleSettingArgs
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 autoscaleSettingResource = new Azure.Monitoring.AutoscaleSetting("autoscaleSettingResource", new()
{
    Profiles = new[]
    {
        new Azure.Monitoring.Inputs.AutoscaleSettingProfileArgs
        {
            Capacity = new Azure.Monitoring.Inputs.AutoscaleSettingProfileCapacityArgs
            {
                Default = 0,
                Maximum = 0,
                Minimum = 0,
            },
            Name = "string",
            FixedDate = new Azure.Monitoring.Inputs.AutoscaleSettingProfileFixedDateArgs
            {
                End = "string",
                Start = "string",
                Timezone = "string",
            },
            Recurrence = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRecurrenceArgs
            {
                Days = new[]
                {
                    "string",
                },
                Hours = 0,
                Minutes = 0,
                Timezone = "string",
            },
            Rules = new[]
            {
                new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleArgs
                {
                    MetricTrigger = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerArgs
                    {
                        MetricName = "string",
                        MetricResourceId = "string",
                        Operator = "string",
                        Statistic = "string",
                        Threshold = 0,
                        TimeAggregation = "string",
                        TimeGrain = "string",
                        TimeWindow = "string",
                        Dimensions = new[]
                        {
                            new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleMetricTriggerDimensionArgs
                            {
                                Name = "string",
                                Operator = "string",
                                Values = new[]
                                {
                                    "string",
                                },
                            },
                        },
                        DivideByInstanceCount = false,
                        MetricNamespace = "string",
                    },
                    ScaleAction = new Azure.Monitoring.Inputs.AutoscaleSettingProfileRuleScaleActionArgs
                    {
                        Cooldown = "string",
                        Direction = "string",
                        Type = "string",
                        Value = 0,
                    },
                },
            },
        },
    },
    ResourceGroupName = "string",
    TargetResourceId = "string",
    Enabled = false,
    Location = "string",
    Name = "string",
    Notification = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationArgs
    {
        Email = new Azure.Monitoring.Inputs.AutoscaleSettingNotificationEmailArgs
        {
            CustomEmails = new[]
            {
                "string",
            },
            SendToSubscriptionAdministrator = false,
            SendToSubscriptionCoAdministrator = false,
        },
        Webhooks = new[]
        {
            new Azure.Monitoring.Inputs.AutoscaleSettingNotificationWebhookArgs
            {
                ServiceUri = "string",
                Properties = 
                {
                    { "string", "string" },
                },
            },
        },
    },
    Predictive = new Azure.Monitoring.Inputs.AutoscaleSettingPredictiveArgs
    {
        ScaleMode = "string",
        LookAheadTime = "string",
    },
    Tags = 
    {
        { "string", "string" },
    },
});
Copy
example, err := monitoring.NewAutoscaleSetting(ctx, "autoscaleSettingResource", &monitoring.AutoscaleSettingArgs{
	Profiles: monitoring.AutoscaleSettingProfileArray{
		&monitoring.AutoscaleSettingProfileArgs{
			Capacity: &monitoring.AutoscaleSettingProfileCapacityArgs{
				Default: pulumi.Int(0),
				Maximum: pulumi.Int(0),
				Minimum: pulumi.Int(0),
			},
			Name: pulumi.String("string"),
			FixedDate: &monitoring.AutoscaleSettingProfileFixedDateArgs{
				End:      pulumi.String("string"),
				Start:    pulumi.String("string"),
				Timezone: pulumi.String("string"),
			},
			Recurrence: &monitoring.AutoscaleSettingProfileRecurrenceArgs{
				Days: pulumi.StringArray{
					pulumi.String("string"),
				},
				Hours:    pulumi.Int(0),
				Minutes:  pulumi.Int(0),
				Timezone: pulumi.String("string"),
			},
			Rules: monitoring.AutoscaleSettingProfileRuleArray{
				&monitoring.AutoscaleSettingProfileRuleArgs{
					MetricTrigger: &monitoring.AutoscaleSettingProfileRuleMetricTriggerArgs{
						MetricName:       pulumi.String("string"),
						MetricResourceId: pulumi.String("string"),
						Operator:         pulumi.String("string"),
						Statistic:        pulumi.String("string"),
						Threshold:        pulumi.Float64(0),
						TimeAggregation:  pulumi.String("string"),
						TimeGrain:        pulumi.String("string"),
						TimeWindow:       pulumi.String("string"),
						Dimensions: monitoring.AutoscaleSettingProfileRuleMetricTriggerDimensionArray{
							&monitoring.AutoscaleSettingProfileRuleMetricTriggerDimensionArgs{
								Name:     pulumi.String("string"),
								Operator: pulumi.String("string"),
								Values: pulumi.StringArray{
									pulumi.String("string"),
								},
							},
						},
						DivideByInstanceCount: pulumi.Bool(false),
						MetricNamespace:       pulumi.String("string"),
					},
					ScaleAction: &monitoring.AutoscaleSettingProfileRuleScaleActionArgs{
						Cooldown:  pulumi.String("string"),
						Direction: pulumi.String("string"),
						Type:      pulumi.String("string"),
						Value:     pulumi.Int(0),
					},
				},
			},
		},
	},
	ResourceGroupName: pulumi.String("string"),
	TargetResourceId:  pulumi.String("string"),
	Enabled:           pulumi.Bool(false),
	Location:          pulumi.String("string"),
	Name:              pulumi.String("string"),
	Notification: &monitoring.AutoscaleSettingNotificationArgs{
		Email: &monitoring.AutoscaleSettingNotificationEmailArgs{
			CustomEmails: pulumi.StringArray{
				pulumi.String("string"),
			},
			SendToSubscriptionAdministrator:   pulumi.Bool(false),
			SendToSubscriptionCoAdministrator: pulumi.Bool(false),
		},
		Webhooks: monitoring.AutoscaleSettingNotificationWebhookArray{
			&monitoring.AutoscaleSettingNotificationWebhookArgs{
				ServiceUri: pulumi.String("string"),
				Properties: pulumi.StringMap{
					"string": pulumi.String("string"),
				},
			},
		},
	},
	Predictive: &monitoring.AutoscaleSettingPredictiveArgs{
		ScaleMode:     pulumi.String("string"),
		LookAheadTime: pulumi.String("string"),
	},
	Tags: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
})
Copy
var autoscaleSettingResource = new AutoscaleSetting("autoscaleSettingResource", AutoscaleSettingArgs.builder()
    .profiles(AutoscaleSettingProfileArgs.builder()
        .capacity(AutoscaleSettingProfileCapacityArgs.builder()
            .default_(0)
            .maximum(0)
            .minimum(0)
            .build())
        .name("string")
        .fixedDate(AutoscaleSettingProfileFixedDateArgs.builder()
            .end("string")
            .start("string")
            .timezone("string")
            .build())
        .recurrence(AutoscaleSettingProfileRecurrenceArgs.builder()
            .days("string")
            .hours(0)
            .minutes(0)
            .timezone("string")
            .build())
        .rules(AutoscaleSettingProfileRuleArgs.builder()
            .metricTrigger(AutoscaleSettingProfileRuleMetricTriggerArgs.builder()
                .metricName("string")
                .metricResourceId("string")
                .operator("string")
                .statistic("string")
                .threshold(0)
                .timeAggregation("string")
                .timeGrain("string")
                .timeWindow("string")
                .dimensions(AutoscaleSettingProfileRuleMetricTriggerDimensionArgs.builder()
                    .name("string")
                    .operator("string")
                    .values("string")
                    .build())
                .divideByInstanceCount(false)
                .metricNamespace("string")
                .build())
            .scaleAction(AutoscaleSettingProfileRuleScaleActionArgs.builder()
                .cooldown("string")
                .direction("string")
                .type("string")
                .value(0)
                .build())
            .build())
        .build())
    .resourceGroupName("string")
    .targetResourceId("string")
    .enabled(false)
    .location("string")
    .name("string")
    .notification(AutoscaleSettingNotificationArgs.builder()
        .email(AutoscaleSettingNotificationEmailArgs.builder()
            .customEmails("string")
            .sendToSubscriptionAdministrator(false)
            .sendToSubscriptionCoAdministrator(false)
            .build())
        .webhooks(AutoscaleSettingNotificationWebhookArgs.builder()
            .serviceUri("string")
            .properties(Map.of("string", "string"))
            .build())
        .build())
    .predictive(AutoscaleSettingPredictiveArgs.builder()
        .scaleMode("string")
        .lookAheadTime("string")
        .build())
    .tags(Map.of("string", "string"))
    .build());
Copy
autoscale_setting_resource = azure.monitoring.AutoscaleSetting("autoscaleSettingResource",
    profiles=[{
        "capacity": {
            "default": 0,
            "maximum": 0,
            "minimum": 0,
        },
        "name": "string",
        "fixed_date": {
            "end": "string",
            "start": "string",
            "timezone": "string",
        },
        "recurrence": {
            "days": ["string"],
            "hours": 0,
            "minutes": 0,
            "timezone": "string",
        },
        "rules": [{
            "metric_trigger": {
                "metric_name": "string",
                "metric_resource_id": "string",
                "operator": "string",
                "statistic": "string",
                "threshold": 0,
                "time_aggregation": "string",
                "time_grain": "string",
                "time_window": "string",
                "dimensions": [{
                    "name": "string",
                    "operator": "string",
                    "values": ["string"],
                }],
                "divide_by_instance_count": False,
                "metric_namespace": "string",
            },
            "scale_action": {
                "cooldown": "string",
                "direction": "string",
                "type": "string",
                "value": 0,
            },
        }],
    }],
    resource_group_name="string",
    target_resource_id="string",
    enabled=False,
    location="string",
    name="string",
    notification={
        "email": {
            "custom_emails": ["string"],
            "send_to_subscription_administrator": False,
            "send_to_subscription_co_administrator": False,
        },
        "webhooks": [{
            "service_uri": "string",
            "properties": {
                "string": "string",
            },
        }],
    },
    predictive={
        "scale_mode": "string",
        "look_ahead_time": "string",
    },
    tags={
        "string": "string",
    })
Copy
const autoscaleSettingResource = new azure.monitoring.AutoscaleSetting("autoscaleSettingResource", {
    profiles: [{
        capacity: {
            "default": 0,
            maximum: 0,
            minimum: 0,
        },
        name: "string",
        fixedDate: {
            end: "string",
            start: "string",
            timezone: "string",
        },
        recurrence: {
            days: ["string"],
            hours: 0,
            minutes: 0,
            timezone: "string",
        },
        rules: [{
            metricTrigger: {
                metricName: "string",
                metricResourceId: "string",
                operator: "string",
                statistic: "string",
                threshold: 0,
                timeAggregation: "string",
                timeGrain: "string",
                timeWindow: "string",
                dimensions: [{
                    name: "string",
                    operator: "string",
                    values: ["string"],
                }],
                divideByInstanceCount: false,
                metricNamespace: "string",
            },
            scaleAction: {
                cooldown: "string",
                direction: "string",
                type: "string",
                value: 0,
            },
        }],
    }],
    resourceGroupName: "string",
    targetResourceId: "string",
    enabled: false,
    location: "string",
    name: "string",
    notification: {
        email: {
            customEmails: ["string"],
            sendToSubscriptionAdministrator: false,
            sendToSubscriptionCoAdministrator: false,
        },
        webhooks: [{
            serviceUri: "string",
            properties: {
                string: "string",
            },
        }],
    },
    predictive: {
        scaleMode: "string",
        lookAheadTime: "string",
    },
    tags: {
        string: "string",
    },
});
Copy
type: azure:monitoring:AutoscaleSetting
properties:
    enabled: false
    location: string
    name: string
    notification:
        email:
            customEmails:
                - string
            sendToSubscriptionAdministrator: false
            sendToSubscriptionCoAdministrator: false
        webhooks:
            - properties:
                string: string
              serviceUri: string
    predictive:
        lookAheadTime: string
        scaleMode: string
    profiles:
        - capacity:
            default: 0
            maximum: 0
            minimum: 0
          fixedDate:
            end: string
            start: string
            timezone: string
          name: string
          recurrence:
            days:
                - string
            hours: 0
            minutes: 0
            timezone: string
          rules:
            - metricTrigger:
                dimensions:
                    - name: string
                      operator: string
                      values:
                        - string
                divideByInstanceCount: false
                metricName: string
                metricNamespace: string
                metricResourceId: string
                operator: string
                statistic: string
                threshold: 0
                timeAggregation: string
                timeGrain: string
                timeWindow: string
              scaleAction:
                cooldown: string
                direction: string
                type: string
                value: 0
    resourceGroupName: string
    tags:
        string: string
    targetResourceId: string
Copy

AutoscaleSetting 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 AutoscaleSetting resource accepts the following input properties:

Profiles This property is required. List<AutoscaleSettingProfile>
Specifies one or more (up to 20) profile blocks as defined below.
ResourceGroupName
This property is required.
Changes to this property will trigger replacement.
string
The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.
TargetResourceId
This property is required.
Changes to this property will trigger replacement.
string
Specifies the resource ID of the resource that the autoscale setting should be added to. Changing this forces a new resource to be created.
Enabled bool
Specifies whether automatic scaling is enabled for the target resource. Defaults to true.
Location Changes to this property will trigger replacement. string
Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.
Name Changes to this property will trigger replacement. string
The name of the AutoScale Setting. Changing this forces a new resource to be created.
Notification AutoscaleSettingNotification
Specifies a notification block as defined below.
Predictive AutoscaleSettingPredictive
A predictive block as defined below.
Tags Dictionary<string, string>
A mapping of tags to assign to the resource.
Profiles This property is required. []AutoscaleSettingProfileArgs
Specifies one or more (up to 20) profile blocks as defined below.
ResourceGroupName
This property is required.
Changes to this property will trigger replacement.
string
The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.
TargetResourceId
This property is required.
Changes to this property will trigger replacement.
string
Specifies the resource ID of the resource that the autoscale setting should be added to. Changing this forces a new resource to be created.
Enabled bool
Specifies whether automatic scaling is enabled for the target resource. Defaults to true.
Location Changes to this property will trigger replacement. string
Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.
Name Changes to this property will trigger replacement. string
The name of the AutoScale Setting. Changing this forces a new resource to be created.
Notification AutoscaleSettingNotificationArgs
Specifies a notification block as defined below.
Predictive AutoscaleSettingPredictiveArgs
A predictive block as defined below.
Tags map[string]string
A mapping of tags to assign to the resource.
profiles This property is required. List<AutoscaleSettingProfile>
Specifies one or more (up to 20) profile blocks as defined below.
resourceGroupName
This property is required.
Changes to this property will trigger replacement.
String
The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.
targetResourceId
This property is required.
Changes to this property will trigger replacement.
String
Specifies the resource ID of the resource that the autoscale setting should be added to. Changing this forces a new resource to be created.
enabled Boolean
Specifies whether automatic scaling is enabled for the target resource. Defaults to true.
location Changes to this property will trigger replacement. String
Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.
name Changes to this property will trigger replacement. String
The name of the AutoScale Setting. Changing this forces a new resource to be created.
notification AutoscaleSettingNotification
Specifies a notification block as defined below.
predictive AutoscaleSettingPredictive
A predictive block as defined below.
tags Map<String,String>
A mapping of tags to assign to the resource.
profiles This property is required. AutoscaleSettingProfile[]
Specifies one or more (up to 20) profile blocks as defined below.
resourceGroupName
This property is required.
Changes to this property will trigger replacement.
string
The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.
targetResourceId
This property is required.
Changes to this property will trigger replacement.
string
Specifies the resource ID of the resource that the autoscale setting should be added to. Changing this forces a new resource to be created.
enabled boolean
Specifies whether automatic scaling is enabled for the target resource. Defaults to true.
location Changes to this property will trigger replacement. string
Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.
name Changes to this property will trigger replacement. string
The name of the AutoScale Setting. Changing this forces a new resource to be created.
notification AutoscaleSettingNotification
Specifies a notification block as defined below.
predictive AutoscaleSettingPredictive
A predictive block as defined below.
tags {[key: string]: string}
A mapping of tags to assign to the resource.
profiles This property is required. Sequence[AutoscaleSettingProfileArgs]
Specifies one or more (up to 20) profile blocks as defined below.
resource_group_name
This property is required.
Changes to this property will trigger replacement.
str
The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.
target_resource_id
This property is required.
Changes to this property will trigger replacement.
str
Specifies the resource ID of the resource that the autoscale setting should be added to. Changing this forces a new resource to be created.
enabled bool
Specifies whether automatic scaling is enabled for the target resource. Defaults to true.
location Changes to this property will trigger replacement. str
Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.
name Changes to this property will trigger replacement. str
The name of the AutoScale Setting. Changing this forces a new resource to be created.
notification AutoscaleSettingNotificationArgs
Specifies a notification block as defined below.
predictive AutoscaleSettingPredictiveArgs
A predictive block as defined below.
tags Mapping[str, str]
A mapping of tags to assign to the resource.
profiles This property is required. List<Property Map>
Specifies one or more (up to 20) profile blocks as defined below.
resourceGroupName
This property is required.
Changes to this property will trigger replacement.
String
The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.
targetResourceId
This property is required.
Changes to this property will trigger replacement.
String
Specifies the resource ID of the resource that the autoscale setting should be added to. Changing this forces a new resource to be created.
enabled Boolean
Specifies whether automatic scaling is enabled for the target resource. Defaults to true.
location Changes to this property will trigger replacement. String
Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.
name Changes to this property will trigger replacement. String
The name of the AutoScale Setting. Changing this forces a new resource to be created.
notification Property Map
Specifies a notification block as defined below.
predictive Property Map
A predictive block as defined below.
tags Map<String>
A mapping of tags to assign to the resource.

Outputs

All input properties are implicitly available as output properties. Additionally, the AutoscaleSetting resource produces the following output properties:

Id string
The provider-assigned unique ID for this managed resource.
Id string
The provider-assigned unique ID for this managed resource.
id String
The provider-assigned unique ID for this managed resource.
id string
The provider-assigned unique ID for this managed resource.
id str
The provider-assigned unique ID for this managed resource.
id String
The provider-assigned unique ID for this managed resource.

Look up Existing AutoscaleSetting Resource

Get an existing AutoscaleSetting resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: AutoscaleSettingState, opts?: CustomResourceOptions): AutoscaleSetting
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        enabled: Optional[bool] = None,
        location: Optional[str] = None,
        name: Optional[str] = None,
        notification: Optional[AutoscaleSettingNotificationArgs] = None,
        predictive: Optional[AutoscaleSettingPredictiveArgs] = None,
        profiles: Optional[Sequence[AutoscaleSettingProfileArgs]] = None,
        resource_group_name: Optional[str] = None,
        tags: Optional[Mapping[str, str]] = None,
        target_resource_id: Optional[str] = None) -> AutoscaleSetting
func GetAutoscaleSetting(ctx *Context, name string, id IDInput, state *AutoscaleSettingState, opts ...ResourceOption) (*AutoscaleSetting, error)
public static AutoscaleSetting Get(string name, Input<string> id, AutoscaleSettingState? state, CustomResourceOptions? opts = null)
public static AutoscaleSetting get(String name, Output<String> id, AutoscaleSettingState state, CustomResourceOptions options)
resources:  _:    type: azure:monitoring:AutoscaleSetting    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
Enabled bool
Specifies whether automatic scaling is enabled for the target resource. Defaults to true.
Location Changes to this property will trigger replacement. string
Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.
Name Changes to this property will trigger replacement. string
The name of the AutoScale Setting. Changing this forces a new resource to be created.
Notification AutoscaleSettingNotification
Specifies a notification block as defined below.
Predictive AutoscaleSettingPredictive
A predictive block as defined below.
Profiles List<AutoscaleSettingProfile>
Specifies one or more (up to 20) profile blocks as defined below.
ResourceGroupName Changes to this property will trigger replacement. string
The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.
Tags Dictionary<string, string>
A mapping of tags to assign to the resource.
TargetResourceId Changes to this property will trigger replacement. string
Specifies the resource ID of the resource that the autoscale setting should be added to. Changing this forces a new resource to be created.
Enabled bool
Specifies whether automatic scaling is enabled for the target resource. Defaults to true.
Location Changes to this property will trigger replacement. string
Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.
Name Changes to this property will trigger replacement. string
The name of the AutoScale Setting. Changing this forces a new resource to be created.
Notification AutoscaleSettingNotificationArgs
Specifies a notification block as defined below.
Predictive AutoscaleSettingPredictiveArgs
A predictive block as defined below.
Profiles []AutoscaleSettingProfileArgs
Specifies one or more (up to 20) profile blocks as defined below.
ResourceGroupName Changes to this property will trigger replacement. string
The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.
Tags map[string]string
A mapping of tags to assign to the resource.
TargetResourceId Changes to this property will trigger replacement. string
Specifies the resource ID of the resource that the autoscale setting should be added to. Changing this forces a new resource to be created.
enabled Boolean
Specifies whether automatic scaling is enabled for the target resource. Defaults to true.
location Changes to this property will trigger replacement. String
Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.
name Changes to this property will trigger replacement. String
The name of the AutoScale Setting. Changing this forces a new resource to be created.
notification AutoscaleSettingNotification
Specifies a notification block as defined below.
predictive AutoscaleSettingPredictive
A predictive block as defined below.
profiles List<AutoscaleSettingProfile>
Specifies one or more (up to 20) profile blocks as defined below.
resourceGroupName Changes to this property will trigger replacement. String
The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.
tags Map<String,String>
A mapping of tags to assign to the resource.
targetResourceId Changes to this property will trigger replacement. String
Specifies the resource ID of the resource that the autoscale setting should be added to. Changing this forces a new resource to be created.
enabled boolean
Specifies whether automatic scaling is enabled for the target resource. Defaults to true.
location Changes to this property will trigger replacement. string
Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.
name Changes to this property will trigger replacement. string
The name of the AutoScale Setting. Changing this forces a new resource to be created.
notification AutoscaleSettingNotification
Specifies a notification block as defined below.
predictive AutoscaleSettingPredictive
A predictive block as defined below.
profiles AutoscaleSettingProfile[]
Specifies one or more (up to 20) profile blocks as defined below.
resourceGroupName Changes to this property will trigger replacement. string
The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.
tags {[key: string]: string}
A mapping of tags to assign to the resource.
targetResourceId Changes to this property will trigger replacement. string
Specifies the resource ID of the resource that the autoscale setting should be added to. Changing this forces a new resource to be created.
enabled bool
Specifies whether automatic scaling is enabled for the target resource. Defaults to true.
location Changes to this property will trigger replacement. str
Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.
name Changes to this property will trigger replacement. str
The name of the AutoScale Setting. Changing this forces a new resource to be created.
notification AutoscaleSettingNotificationArgs
Specifies a notification block as defined below.
predictive AutoscaleSettingPredictiveArgs
A predictive block as defined below.
profiles Sequence[AutoscaleSettingProfileArgs]
Specifies one or more (up to 20) profile blocks as defined below.
resource_group_name Changes to this property will trigger replacement. str
The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.
tags Mapping[str, str]
A mapping of tags to assign to the resource.
target_resource_id Changes to this property will trigger replacement. str
Specifies the resource ID of the resource that the autoscale setting should be added to. Changing this forces a new resource to be created.
enabled Boolean
Specifies whether automatic scaling is enabled for the target resource. Defaults to true.
location Changes to this property will trigger replacement. String
Specifies the supported Azure location where the AutoScale Setting should exist. Changing this forces a new resource to be created.
name Changes to this property will trigger replacement. String
The name of the AutoScale Setting. Changing this forces a new resource to be created.
notification Property Map
Specifies a notification block as defined below.
predictive Property Map
A predictive block as defined below.
profiles List<Property Map>
Specifies one or more (up to 20) profile blocks as defined below.
resourceGroupName Changes to this property will trigger replacement. String
The name of the Resource Group in the AutoScale Setting should be created. Changing this forces a new resource to be created.
tags Map<String>
A mapping of tags to assign to the resource.
targetResourceId Changes to this property will trigger replacement. String
Specifies the resource ID of the resource that the autoscale setting should be added to. Changing this forces a new resource to be created.

Supporting Types

AutoscaleSettingNotification
, AutoscaleSettingNotificationArgs

Email AutoscaleSettingNotificationEmail
A email block as defined below.
Webhooks List<AutoscaleSettingNotificationWebhook>
One or more webhook blocks as defined below.
Email AutoscaleSettingNotificationEmail
A email block as defined below.
Webhooks []AutoscaleSettingNotificationWebhook
One or more webhook blocks as defined below.
email AutoscaleSettingNotificationEmail
A email block as defined below.
webhooks List<AutoscaleSettingNotificationWebhook>
One or more webhook blocks as defined below.
email AutoscaleSettingNotificationEmail
A email block as defined below.
webhooks AutoscaleSettingNotificationWebhook[]
One or more webhook blocks as defined below.
email AutoscaleSettingNotificationEmail
A email block as defined below.
webhooks Sequence[AutoscaleSettingNotificationWebhook]
One or more webhook blocks as defined below.
email Property Map
A email block as defined below.
webhooks List<Property Map>
One or more webhook blocks as defined below.

AutoscaleSettingNotificationEmail
, AutoscaleSettingNotificationEmailArgs

CustomEmails List<string>
Specifies a list of custom email addresses to which the email notifications will be sent.
SendToSubscriptionAdministrator bool
Should email notifications be sent to the subscription administrator? Defaults to false.
SendToSubscriptionCoAdministrator bool
Should email notifications be sent to the subscription co-administrator? Defaults to false.
CustomEmails []string
Specifies a list of custom email addresses to which the email notifications will be sent.
SendToSubscriptionAdministrator bool
Should email notifications be sent to the subscription administrator? Defaults to false.
SendToSubscriptionCoAdministrator bool
Should email notifications be sent to the subscription co-administrator? Defaults to false.
customEmails List<String>
Specifies a list of custom email addresses to which the email notifications will be sent.
sendToSubscriptionAdministrator Boolean
Should email notifications be sent to the subscription administrator? Defaults to false.
sendToSubscriptionCoAdministrator Boolean
Should email notifications be sent to the subscription co-administrator? Defaults to false.
customEmails string[]
Specifies a list of custom email addresses to which the email notifications will be sent.
sendToSubscriptionAdministrator boolean
Should email notifications be sent to the subscription administrator? Defaults to false.
sendToSubscriptionCoAdministrator boolean
Should email notifications be sent to the subscription co-administrator? Defaults to false.
custom_emails Sequence[str]
Specifies a list of custom email addresses to which the email notifications will be sent.
send_to_subscription_administrator bool
Should email notifications be sent to the subscription administrator? Defaults to false.
send_to_subscription_co_administrator bool
Should email notifications be sent to the subscription co-administrator? Defaults to false.
customEmails List<String>
Specifies a list of custom email addresses to which the email notifications will be sent.
sendToSubscriptionAdministrator Boolean
Should email notifications be sent to the subscription administrator? Defaults to false.
sendToSubscriptionCoAdministrator Boolean
Should email notifications be sent to the subscription co-administrator? Defaults to false.

AutoscaleSettingNotificationWebhook
, AutoscaleSettingNotificationWebhookArgs

ServiceUri This property is required. string
The HTTPS URI which should receive scale notifications.
Properties Dictionary<string, string>
A map of settings.
ServiceUri This property is required. string
The HTTPS URI which should receive scale notifications.
Properties map[string]string
A map of settings.
serviceUri This property is required. String
The HTTPS URI which should receive scale notifications.
properties Map<String,String>
A map of settings.
serviceUri This property is required. string
The HTTPS URI which should receive scale notifications.
properties {[key: string]: string}
A map of settings.
service_uri This property is required. str
The HTTPS URI which should receive scale notifications.
properties Mapping[str, str]
A map of settings.
serviceUri This property is required. String
The HTTPS URI which should receive scale notifications.
properties Map<String>
A map of settings.

AutoscaleSettingPredictive
, AutoscaleSettingPredictiveArgs

ScaleMode This property is required. string
Specifies the predictive scale mode. Possible values are Enabled or ForecastOnly.
LookAheadTime string
Specifies the amount of time by which instances are launched in advance. It must be between PT1M and PT1H in ISO 8601 format.
ScaleMode This property is required. string
Specifies the predictive scale mode. Possible values are Enabled or ForecastOnly.
LookAheadTime string
Specifies the amount of time by which instances are launched in advance. It must be between PT1M and PT1H in ISO 8601 format.
scaleMode This property is required. String
Specifies the predictive scale mode. Possible values are Enabled or ForecastOnly.
lookAheadTime String
Specifies the amount of time by which instances are launched in advance. It must be between PT1M and PT1H in ISO 8601 format.
scaleMode This property is required. string
Specifies the predictive scale mode. Possible values are Enabled or ForecastOnly.
lookAheadTime string
Specifies the amount of time by which instances are launched in advance. It must be between PT1M and PT1H in ISO 8601 format.
scale_mode This property is required. str
Specifies the predictive scale mode. Possible values are Enabled or ForecastOnly.
look_ahead_time str
Specifies the amount of time by which instances are launched in advance. It must be between PT1M and PT1H in ISO 8601 format.
scaleMode This property is required. String
Specifies the predictive scale mode. Possible values are Enabled or ForecastOnly.
lookAheadTime String
Specifies the amount of time by which instances are launched in advance. It must be between PT1M and PT1H in ISO 8601 format.

AutoscaleSettingProfile
, AutoscaleSettingProfileArgs

Capacity This property is required. AutoscaleSettingProfileCapacity
A capacity block as defined below.
Name This property is required. string
Specifies the name of the profile.
FixedDate AutoscaleSettingProfileFixedDate
A fixed_date block as defined below. This cannot be specified if a recurrence block is specified.
Recurrence AutoscaleSettingProfileRecurrence
A recurrence block as defined below. This cannot be specified if a fixed_date block is specified.
Rules List<AutoscaleSettingProfileRule>
One or more (up to 10) rule blocks as defined below.
Capacity This property is required. AutoscaleSettingProfileCapacity
A capacity block as defined below.
Name This property is required. string
Specifies the name of the profile.
FixedDate AutoscaleSettingProfileFixedDate
A fixed_date block as defined below. This cannot be specified if a recurrence block is specified.
Recurrence AutoscaleSettingProfileRecurrence
A recurrence block as defined below. This cannot be specified if a fixed_date block is specified.
Rules []AutoscaleSettingProfileRule
One or more (up to 10) rule blocks as defined below.
capacity This property is required. AutoscaleSettingProfileCapacity
A capacity block as defined below.
name This property is required. String
Specifies the name of the profile.
fixedDate AutoscaleSettingProfileFixedDate
A fixed_date block as defined below. This cannot be specified if a recurrence block is specified.
recurrence AutoscaleSettingProfileRecurrence
A recurrence block as defined below. This cannot be specified if a fixed_date block is specified.
rules List<AutoscaleSettingProfileRule>
One or more (up to 10) rule blocks as defined below.
capacity This property is required. AutoscaleSettingProfileCapacity
A capacity block as defined below.
name This property is required. string
Specifies the name of the profile.
fixedDate AutoscaleSettingProfileFixedDate
A fixed_date block as defined below. This cannot be specified if a recurrence block is specified.
recurrence AutoscaleSettingProfileRecurrence
A recurrence block as defined below. This cannot be specified if a fixed_date block is specified.
rules AutoscaleSettingProfileRule[]
One or more (up to 10) rule blocks as defined below.
capacity This property is required. AutoscaleSettingProfileCapacity
A capacity block as defined below.
name This property is required. str
Specifies the name of the profile.
fixed_date AutoscaleSettingProfileFixedDate
A fixed_date block as defined below. This cannot be specified if a recurrence block is specified.
recurrence AutoscaleSettingProfileRecurrence
A recurrence block as defined below. This cannot be specified if a fixed_date block is specified.
rules Sequence[AutoscaleSettingProfileRule]
One or more (up to 10) rule blocks as defined below.
capacity This property is required. Property Map
A capacity block as defined below.
name This property is required. String
Specifies the name of the profile.
fixedDate Property Map
A fixed_date block as defined below. This cannot be specified if a recurrence block is specified.
recurrence Property Map
A recurrence block as defined below. This cannot be specified if a fixed_date block is specified.
rules List<Property Map>
One or more (up to 10) rule blocks as defined below.

AutoscaleSettingProfileCapacity
, AutoscaleSettingProfileCapacityArgs

Default This property is required. int
The number of instances that are available for scaling if metrics are not available for evaluation. The default is only used if the current instance count is lower than the default. Valid values are between 0 and 1000.
Maximum This property is required. int

The maximum number of instances for this resource. Valid values are between 0 and 1000.

NOTE: The maximum number of instances is also limited by the amount of Cores available in the subscription.

Minimum This property is required. int
The minimum number of instances for this resource. Valid values are between 0 and 1000.
Default This property is required. int
The number of instances that are available for scaling if metrics are not available for evaluation. The default is only used if the current instance count is lower than the default. Valid values are between 0 and 1000.
Maximum This property is required. int

The maximum number of instances for this resource. Valid values are between 0 and 1000.

NOTE: The maximum number of instances is also limited by the amount of Cores available in the subscription.

Minimum This property is required. int
The minimum number of instances for this resource. Valid values are between 0 and 1000.
default_ This property is required. Integer
The number of instances that are available for scaling if metrics are not available for evaluation. The default is only used if the current instance count is lower than the default. Valid values are between 0 and 1000.
maximum This property is required. Integer

The maximum number of instances for this resource. Valid values are between 0 and 1000.

NOTE: The maximum number of instances is also limited by the amount of Cores available in the subscription.

minimum This property is required. Integer
The minimum number of instances for this resource. Valid values are between 0 and 1000.
default This property is required. number
The number of instances that are available for scaling if metrics are not available for evaluation. The default is only used if the current instance count is lower than the default. Valid values are between 0 and 1000.
maximum This property is required. number

The maximum number of instances for this resource. Valid values are between 0 and 1000.

NOTE: The maximum number of instances is also limited by the amount of Cores available in the subscription.

minimum This property is required. number
The minimum number of instances for this resource. Valid values are between 0 and 1000.
default This property is required. int
The number of instances that are available for scaling if metrics are not available for evaluation. The default is only used if the current instance count is lower than the default. Valid values are between 0 and 1000.
maximum This property is required. int

The maximum number of instances for this resource. Valid values are between 0 and 1000.

NOTE: The maximum number of instances is also limited by the amount of Cores available in the subscription.

minimum This property is required. int
The minimum number of instances for this resource. Valid values are between 0 and 1000.
default This property is required. Number
The number of instances that are available for scaling if metrics are not available for evaluation. The default is only used if the current instance count is lower than the default. Valid values are between 0 and 1000.
maximum This property is required. Number

The maximum number of instances for this resource. Valid values are between 0 and 1000.

NOTE: The maximum number of instances is also limited by the amount of Cores available in the subscription.

minimum This property is required. Number
The minimum number of instances for this resource. Valid values are between 0 and 1000.

AutoscaleSettingProfileFixedDate
, AutoscaleSettingProfileFixedDateArgs

End This property is required. string
Specifies the end date for the profile, formatted as an RFC3339 date string.
Start This property is required. string
Specifies the start date for the profile, formatted as an RFC3339 date string.
Timezone string
The Time Zone of the start and end times. A list of possible values can be found here. Defaults to UTC.
End This property is required. string
Specifies the end date for the profile, formatted as an RFC3339 date string.
Start This property is required. string
Specifies the start date for the profile, formatted as an RFC3339 date string.
Timezone string
The Time Zone of the start and end times. A list of possible values can be found here. Defaults to UTC.
end This property is required. String
Specifies the end date for the profile, formatted as an RFC3339 date string.
start This property is required. String
Specifies the start date for the profile, formatted as an RFC3339 date string.
timezone String
The Time Zone of the start and end times. A list of possible values can be found here. Defaults to UTC.
end This property is required. string
Specifies the end date for the profile, formatted as an RFC3339 date string.
start This property is required. string
Specifies the start date for the profile, formatted as an RFC3339 date string.
timezone string
The Time Zone of the start and end times. A list of possible values can be found here. Defaults to UTC.
end This property is required. str
Specifies the end date for the profile, formatted as an RFC3339 date string.
start This property is required. str
Specifies the start date for the profile, formatted as an RFC3339 date string.
timezone str
The Time Zone of the start and end times. A list of possible values can be found here. Defaults to UTC.
end This property is required. String
Specifies the end date for the profile, formatted as an RFC3339 date string.
start This property is required. String
Specifies the start date for the profile, formatted as an RFC3339 date string.
timezone String
The Time Zone of the start and end times. A list of possible values can be found here. Defaults to UTC.

AutoscaleSettingProfileRecurrence
, AutoscaleSettingProfileRecurrenceArgs

Days This property is required. List<string>
A list of days that this profile takes effect on. Possible values include Monday, Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday.
Hours This property is required. int
A list containing a single item, which specifies the Hour interval at which this recurrence should be triggered (in 24-hour time). Possible values are from 0 to 23.
Minutes This property is required. int
A list containing a single item which specifies the Minute interval at which this recurrence should be triggered.
Timezone string
The Time Zone used for the hours field. A list of possible values can be found here). Defaults to UTC.
Days This property is required. []string
A list of days that this profile takes effect on. Possible values include Monday, Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday.
Hours This property is required. int
A list containing a single item, which specifies the Hour interval at which this recurrence should be triggered (in 24-hour time). Possible values are from 0 to 23.
Minutes This property is required. int
A list containing a single item which specifies the Minute interval at which this recurrence should be triggered.
Timezone string
The Time Zone used for the hours field. A list of possible values can be found here). Defaults to UTC.
days This property is required. List<String>
A list of days that this profile takes effect on. Possible values include Monday, Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday.
hours This property is required. Integer
A list containing a single item, which specifies the Hour interval at which this recurrence should be triggered (in 24-hour time). Possible values are from 0 to 23.
minutes This property is required. Integer
A list containing a single item which specifies the Minute interval at which this recurrence should be triggered.
timezone String
The Time Zone used for the hours field. A list of possible values can be found here). Defaults to UTC.
days This property is required. string[]
A list of days that this profile takes effect on. Possible values include Monday, Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday.
hours This property is required. number
A list containing a single item, which specifies the Hour interval at which this recurrence should be triggered (in 24-hour time). Possible values are from 0 to 23.
minutes This property is required. number
A list containing a single item which specifies the Minute interval at which this recurrence should be triggered.
timezone string
The Time Zone used for the hours field. A list of possible values can be found here). Defaults to UTC.
days This property is required. Sequence[str]
A list of days that this profile takes effect on. Possible values include Monday, Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday.
hours This property is required. int
A list containing a single item, which specifies the Hour interval at which this recurrence should be triggered (in 24-hour time). Possible values are from 0 to 23.
minutes This property is required. int
A list containing a single item which specifies the Minute interval at which this recurrence should be triggered.
timezone str
The Time Zone used for the hours field. A list of possible values can be found here). Defaults to UTC.
days This property is required. List<String>
A list of days that this profile takes effect on. Possible values include Monday, Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday.
hours This property is required. Number
A list containing a single item, which specifies the Hour interval at which this recurrence should be triggered (in 24-hour time). Possible values are from 0 to 23.
minutes This property is required. Number
A list containing a single item which specifies the Minute interval at which this recurrence should be triggered.
timezone String
The Time Zone used for the hours field. A list of possible values can be found here). Defaults to UTC.

AutoscaleSettingProfileRule
, AutoscaleSettingProfileRuleArgs

MetricTrigger This property is required. AutoscaleSettingProfileRuleMetricTrigger
A metric_trigger block as defined below.
ScaleAction This property is required. AutoscaleSettingProfileRuleScaleAction
A scale_action block as defined below.
MetricTrigger This property is required. AutoscaleSettingProfileRuleMetricTrigger
A metric_trigger block as defined below.
ScaleAction This property is required. AutoscaleSettingProfileRuleScaleAction
A scale_action block as defined below.
metricTrigger This property is required. AutoscaleSettingProfileRuleMetricTrigger
A metric_trigger block as defined below.
scaleAction This property is required. AutoscaleSettingProfileRuleScaleAction
A scale_action block as defined below.
metricTrigger This property is required. AutoscaleSettingProfileRuleMetricTrigger
A metric_trigger block as defined below.
scaleAction This property is required. AutoscaleSettingProfileRuleScaleAction
A scale_action block as defined below.
metric_trigger This property is required. AutoscaleSettingProfileRuleMetricTrigger
A metric_trigger block as defined below.
scale_action This property is required. AutoscaleSettingProfileRuleScaleAction
A scale_action block as defined below.
metricTrigger This property is required. Property Map
A metric_trigger block as defined below.
scaleAction This property is required. Property Map
A scale_action block as defined below.

AutoscaleSettingProfileRuleMetricTrigger
, AutoscaleSettingProfileRuleMetricTriggerArgs

MetricName This property is required. string

The name of the metric that defines what the rule monitors, such as Percentage CPU for Virtual Machine Scale Sets and CpuPercentage for App Service Plan.

NOTE: The allowed value of metric_name highly depends on the targeting resource type, please visit Supported metrics with Azure Monitor for more details.

MetricResourceId This property is required. string
The ID of the Resource which the Rule monitors.
Operator This property is required. string
Specifies the operator used to compare the metric data and threshold. Possible values are: Equals, NotEquals, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual.
Statistic This property is required. string
Specifies how the metrics from multiple instances are combined. Possible values are Average, Max, Min and Sum.
Threshold This property is required. double
Specifies the threshold of the metric that triggers the scale action.
TimeAggregation This property is required. string
Specifies how the data that's collected should be combined over time. Possible values include Average, Count, Maximum, Minimum, Last and Total.
TimeGrain This property is required. string
Specifies the granularity of metrics that the rule monitors, which must be one of the pre-defined values returned from the metric definitions for the metric. This value must be between 1 minute and 12 hours an be formatted as an ISO 8601 string.
TimeWindow This property is required. string
Specifies the time range for which data is collected, which must be greater than the delay in metric collection (which varies from resource to resource). This value must be between 5 minutes and 12 hours and be formatted as an ISO 8601 string.
Dimensions List<AutoscaleSettingProfileRuleMetricTriggerDimension>
One or more dimensions block as defined below.
DivideByInstanceCount bool
Whether to enable metric divide by instance count.
MetricNamespace string
The namespace of the metric that defines what the rule monitors, such as microsoft.compute/virtualmachinescalesets for Virtual Machine Scale Sets.
MetricName This property is required. string

The name of the metric that defines what the rule monitors, such as Percentage CPU for Virtual Machine Scale Sets and CpuPercentage for App Service Plan.

NOTE: The allowed value of metric_name highly depends on the targeting resource type, please visit Supported metrics with Azure Monitor for more details.

MetricResourceId This property is required. string
The ID of the Resource which the Rule monitors.
Operator This property is required. string
Specifies the operator used to compare the metric data and threshold. Possible values are: Equals, NotEquals, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual.
Statistic This property is required. string
Specifies how the metrics from multiple instances are combined. Possible values are Average, Max, Min and Sum.
Threshold This property is required. float64
Specifies the threshold of the metric that triggers the scale action.
TimeAggregation This property is required. string
Specifies how the data that's collected should be combined over time. Possible values include Average, Count, Maximum, Minimum, Last and Total.
TimeGrain This property is required. string
Specifies the granularity of metrics that the rule monitors, which must be one of the pre-defined values returned from the metric definitions for the metric. This value must be between 1 minute and 12 hours an be formatted as an ISO 8601 string.
TimeWindow This property is required. string
Specifies the time range for which data is collected, which must be greater than the delay in metric collection (which varies from resource to resource). This value must be between 5 minutes and 12 hours and be formatted as an ISO 8601 string.
Dimensions []AutoscaleSettingProfileRuleMetricTriggerDimension
One or more dimensions block as defined below.
DivideByInstanceCount bool
Whether to enable metric divide by instance count.
MetricNamespace string
The namespace of the metric that defines what the rule monitors, such as microsoft.compute/virtualmachinescalesets for Virtual Machine Scale Sets.
metricName This property is required. String

The name of the metric that defines what the rule monitors, such as Percentage CPU for Virtual Machine Scale Sets and CpuPercentage for App Service Plan.

NOTE: The allowed value of metric_name highly depends on the targeting resource type, please visit Supported metrics with Azure Monitor for more details.

metricResourceId This property is required. String
The ID of the Resource which the Rule monitors.
operator This property is required. String
Specifies the operator used to compare the metric data and threshold. Possible values are: Equals, NotEquals, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual.
statistic This property is required. String
Specifies how the metrics from multiple instances are combined. Possible values are Average, Max, Min and Sum.
threshold This property is required. Double
Specifies the threshold of the metric that triggers the scale action.
timeAggregation This property is required. String
Specifies how the data that's collected should be combined over time. Possible values include Average, Count, Maximum, Minimum, Last and Total.
timeGrain This property is required. String
Specifies the granularity of metrics that the rule monitors, which must be one of the pre-defined values returned from the metric definitions for the metric. This value must be between 1 minute and 12 hours an be formatted as an ISO 8601 string.
timeWindow This property is required. String
Specifies the time range for which data is collected, which must be greater than the delay in metric collection (which varies from resource to resource). This value must be between 5 minutes and 12 hours and be formatted as an ISO 8601 string.
dimensions List<AutoscaleSettingProfileRuleMetricTriggerDimension>
One or more dimensions block as defined below.
divideByInstanceCount Boolean
Whether to enable metric divide by instance count.
metricNamespace String
The namespace of the metric that defines what the rule monitors, such as microsoft.compute/virtualmachinescalesets for Virtual Machine Scale Sets.
metricName This property is required. string

The name of the metric that defines what the rule monitors, such as Percentage CPU for Virtual Machine Scale Sets and CpuPercentage for App Service Plan.

NOTE: The allowed value of metric_name highly depends on the targeting resource type, please visit Supported metrics with Azure Monitor for more details.

metricResourceId This property is required. string
The ID of the Resource which the Rule monitors.
operator This property is required. string
Specifies the operator used to compare the metric data and threshold. Possible values are: Equals, NotEquals, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual.
statistic This property is required. string
Specifies how the metrics from multiple instances are combined. Possible values are Average, Max, Min and Sum.
threshold This property is required. number
Specifies the threshold of the metric that triggers the scale action.
timeAggregation This property is required. string
Specifies how the data that's collected should be combined over time. Possible values include Average, Count, Maximum, Minimum, Last and Total.
timeGrain This property is required. string
Specifies the granularity of metrics that the rule monitors, which must be one of the pre-defined values returned from the metric definitions for the metric. This value must be between 1 minute and 12 hours an be formatted as an ISO 8601 string.
timeWindow This property is required. string
Specifies the time range for which data is collected, which must be greater than the delay in metric collection (which varies from resource to resource). This value must be between 5 minutes and 12 hours and be formatted as an ISO 8601 string.
dimensions AutoscaleSettingProfileRuleMetricTriggerDimension[]
One or more dimensions block as defined below.
divideByInstanceCount boolean
Whether to enable metric divide by instance count.
metricNamespace string
The namespace of the metric that defines what the rule monitors, such as microsoft.compute/virtualmachinescalesets for Virtual Machine Scale Sets.
metric_name This property is required. str

The name of the metric that defines what the rule monitors, such as Percentage CPU for Virtual Machine Scale Sets and CpuPercentage for App Service Plan.

NOTE: The allowed value of metric_name highly depends on the targeting resource type, please visit Supported metrics with Azure Monitor for more details.

metric_resource_id This property is required. str
The ID of the Resource which the Rule monitors.
operator This property is required. str
Specifies the operator used to compare the metric data and threshold. Possible values are: Equals, NotEquals, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual.
statistic This property is required. str
Specifies how the metrics from multiple instances are combined. Possible values are Average, Max, Min and Sum.
threshold This property is required. float
Specifies the threshold of the metric that triggers the scale action.
time_aggregation This property is required. str
Specifies how the data that's collected should be combined over time. Possible values include Average, Count, Maximum, Minimum, Last and Total.
time_grain This property is required. str
Specifies the granularity of metrics that the rule monitors, which must be one of the pre-defined values returned from the metric definitions for the metric. This value must be between 1 minute and 12 hours an be formatted as an ISO 8601 string.
time_window This property is required. str
Specifies the time range for which data is collected, which must be greater than the delay in metric collection (which varies from resource to resource). This value must be between 5 minutes and 12 hours and be formatted as an ISO 8601 string.
dimensions Sequence[AutoscaleSettingProfileRuleMetricTriggerDimension]
One or more dimensions block as defined below.
divide_by_instance_count bool
Whether to enable metric divide by instance count.
metric_namespace str
The namespace of the metric that defines what the rule monitors, such as microsoft.compute/virtualmachinescalesets for Virtual Machine Scale Sets.
metricName This property is required. String

The name of the metric that defines what the rule monitors, such as Percentage CPU for Virtual Machine Scale Sets and CpuPercentage for App Service Plan.

NOTE: The allowed value of metric_name highly depends on the targeting resource type, please visit Supported metrics with Azure Monitor for more details.

metricResourceId This property is required. String
The ID of the Resource which the Rule monitors.
operator This property is required. String
Specifies the operator used to compare the metric data and threshold. Possible values are: Equals, NotEquals, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual.
statistic This property is required. String
Specifies how the metrics from multiple instances are combined. Possible values are Average, Max, Min and Sum.
threshold This property is required. Number
Specifies the threshold of the metric that triggers the scale action.
timeAggregation This property is required. String
Specifies how the data that's collected should be combined over time. Possible values include Average, Count, Maximum, Minimum, Last and Total.
timeGrain This property is required. String
Specifies the granularity of metrics that the rule monitors, which must be one of the pre-defined values returned from the metric definitions for the metric. This value must be between 1 minute and 12 hours an be formatted as an ISO 8601 string.
timeWindow This property is required. String
Specifies the time range for which data is collected, which must be greater than the delay in metric collection (which varies from resource to resource). This value must be between 5 minutes and 12 hours and be formatted as an ISO 8601 string.
dimensions List<Property Map>
One or more dimensions block as defined below.
divideByInstanceCount Boolean
Whether to enable metric divide by instance count.
metricNamespace String
The namespace of the metric that defines what the rule monitors, such as microsoft.compute/virtualmachinescalesets for Virtual Machine Scale Sets.

AutoscaleSettingProfileRuleMetricTriggerDimension
, AutoscaleSettingProfileRuleMetricTriggerDimensionArgs

Name This property is required. string
The name of the dimension.
Operator This property is required. string
The dimension operator. Possible values are Equals and NotEquals. Equals means being equal to any of the values. NotEquals means being not equal to any of the values.
Values This property is required. List<string>
A list of dimension values.
Name This property is required. string
The name of the dimension.
Operator This property is required. string
The dimension operator. Possible values are Equals and NotEquals. Equals means being equal to any of the values. NotEquals means being not equal to any of the values.
Values This property is required. []string
A list of dimension values.
name This property is required. String
The name of the dimension.
operator This property is required. String
The dimension operator. Possible values are Equals and NotEquals. Equals means being equal to any of the values. NotEquals means being not equal to any of the values.
values This property is required. List<String>
A list of dimension values.
name This property is required. string
The name of the dimension.
operator This property is required. string
The dimension operator. Possible values are Equals and NotEquals. Equals means being equal to any of the values. NotEquals means being not equal to any of the values.
values This property is required. string[]
A list of dimension values.
name This property is required. str
The name of the dimension.
operator This property is required. str
The dimension operator. Possible values are Equals and NotEquals. Equals means being equal to any of the values. NotEquals means being not equal to any of the values.
values This property is required. Sequence[str]
A list of dimension values.
name This property is required. String
The name of the dimension.
operator This property is required. String
The dimension operator. Possible values are Equals and NotEquals. Equals means being equal to any of the values. NotEquals means being not equal to any of the values.
values This property is required. List<String>
A list of dimension values.

AutoscaleSettingProfileRuleScaleAction
, AutoscaleSettingProfileRuleScaleActionArgs

Cooldown This property is required. string
The amount of time to wait since the last scaling action before this action occurs. Must be between 1 minute and 1 week and formatted as a ISO 8601 string.
Direction This property is required. string
The scale direction. Possible values are Increase and Decrease.
Type This property is required. string
The type of action that should occur. Possible values are ChangeCount, ExactCount, PercentChangeCount and ServiceAllowedNextValue.
Value This property is required. int
The number of instances involved in the scaling action.
Cooldown This property is required. string
The amount of time to wait since the last scaling action before this action occurs. Must be between 1 minute and 1 week and formatted as a ISO 8601 string.
Direction This property is required. string
The scale direction. Possible values are Increase and Decrease.
Type This property is required. string
The type of action that should occur. Possible values are ChangeCount, ExactCount, PercentChangeCount and ServiceAllowedNextValue.
Value This property is required. int
The number of instances involved in the scaling action.
cooldown This property is required. String
The amount of time to wait since the last scaling action before this action occurs. Must be between 1 minute and 1 week and formatted as a ISO 8601 string.
direction This property is required. String
The scale direction. Possible values are Increase and Decrease.
type This property is required. String
The type of action that should occur. Possible values are ChangeCount, ExactCount, PercentChangeCount and ServiceAllowedNextValue.
value This property is required. Integer
The number of instances involved in the scaling action.
cooldown This property is required. string
The amount of time to wait since the last scaling action before this action occurs. Must be between 1 minute and 1 week and formatted as a ISO 8601 string.
direction This property is required. string
The scale direction. Possible values are Increase and Decrease.
type This property is required. string
The type of action that should occur. Possible values are ChangeCount, ExactCount, PercentChangeCount and ServiceAllowedNextValue.
value This property is required. number
The number of instances involved in the scaling action.
cooldown This property is required. str
The amount of time to wait since the last scaling action before this action occurs. Must be between 1 minute and 1 week and formatted as a ISO 8601 string.
direction This property is required. str
The scale direction. Possible values are Increase and Decrease.
type This property is required. str
The type of action that should occur. Possible values are ChangeCount, ExactCount, PercentChangeCount and ServiceAllowedNextValue.
value This property is required. int
The number of instances involved in the scaling action.
cooldown This property is required. String
The amount of time to wait since the last scaling action before this action occurs. Must be between 1 minute and 1 week and formatted as a ISO 8601 string.
direction This property is required. String
The scale direction. Possible values are Increase and Decrease.
type This property is required. String
The type of action that should occur. Possible values are ChangeCount, ExactCount, PercentChangeCount and ServiceAllowedNextValue.
value This property is required. Number
The number of instances involved in the scaling action.

Import

AutoScale Setting can be imported using the resource id, e.g.

$ pulumi import azure:monitoring/autoscaleSetting:AutoscaleSetting example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Insights/autoScaleSettings/setting1
Copy

To learn more about importing existing cloud resources, see Importing resources.

Package Details

Repository
Azure Classic pulumi/pulumi-azure
License
Apache-2.0
Notes
This Pulumi package is based on the azurerm Terraform Provider.