AutoscaleSetting

class AutoscaleSetting : KotlinCustomResource

The autoscale setting resource. Uses Azure REST API version 2022-10-01. In version 1.x of the Azure Native provider, it used API version 2015-04-01.

Example Usage

Create or update an autoscale setting

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var autoscaleSetting = new AzureNative.Insights.AutoscaleSetting("autoscaleSetting", new()
{
AutoscaleSettingName = "MySetting",
Enabled = true,
Location = "West US",
Notifications = new[]
{
new AzureNative.Insights.Inputs.AutoscaleNotificationArgs
{
Email = new AzureNative.Insights.Inputs.EmailNotificationArgs
{
CustomEmails = new[]
{
"gu@ms.com",
"ge@ns.net",
},
SendToSubscriptionAdministrator = true,
SendToSubscriptionCoAdministrators = true,
},
Operation = AzureNative.Insights.OperationType.Scale,
Webhooks = new[]
{
new AzureNative.Insights.Inputs.WebhookNotificationArgs
{
Properties = null,
ServiceUri = "http://myservice.com",
},
},
},
},
PredictiveAutoscalePolicy = new AzureNative.Insights.Inputs.PredictiveAutoscalePolicyArgs
{
ScaleMode = AzureNative.Insights.PredictiveAutoscalePolicyScaleMode.Enabled,
},
Profiles = new[]
{
new AzureNative.Insights.Inputs.AutoscaleProfileArgs
{
Capacity = new AzureNative.Insights.Inputs.ScaleCapacityArgs
{
Default = "1",
Maximum = "10",
Minimum = "1",
},
FixedDate = new AzureNative.Insights.Inputs.TimeWindowArgs
{
End = "2015-03-05T14:30:00Z",
Start = "2015-03-05T14:00:00Z",
TimeZone = "UTC",
},
Name = "adios",
Rules = new[]
{
new AzureNative.Insights.Inputs.ScaleRuleArgs
{
MetricTrigger = new AzureNative.Insights.Inputs.MetricTriggerArgs
{
DividePerInstance = false,
MetricName = "Percentage CPU",
MetricResourceUri = "/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc",
Operator = AzureNative.Insights.ComparisonOperationType.GreaterThan,
Statistic = AzureNative.Insights.MetricStatisticType.Average,
Threshold = 10,
TimeAggregation = AzureNative.Insights.TimeAggregationType.Average,
TimeGrain = "PT1M",
TimeWindow = "PT5M",
},
ScaleAction = new AzureNative.Insights.Inputs.ScaleActionArgs
{
Cooldown = "PT5M",
Direction = AzureNative.Insights.ScaleDirection.Increase,
Type = AzureNative.Insights.ScaleType.ChangeCount,
Value = "1",
},
},
new AzureNative.Insights.Inputs.ScaleRuleArgs
{
MetricTrigger = new AzureNative.Insights.Inputs.MetricTriggerArgs
{
DividePerInstance = false,
MetricName = "Percentage CPU",
MetricResourceUri = "/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc",
Operator = AzureNative.Insights.ComparisonOperationType.GreaterThan,
Statistic = AzureNative.Insights.MetricStatisticType.Average,
Threshold = 15,
TimeAggregation = AzureNative.Insights.TimeAggregationType.Average,
TimeGrain = "PT2M",
TimeWindow = "PT5M",
},
ScaleAction = new AzureNative.Insights.Inputs.ScaleActionArgs
{
Cooldown = "PT6M",
Direction = AzureNative.Insights.ScaleDirection.Decrease,
Type = AzureNative.Insights.ScaleType.ChangeCount,
Value = "2",
},
},
},
},
new AzureNative.Insights.Inputs.AutoscaleProfileArgs
{
Capacity = new AzureNative.Insights.Inputs.ScaleCapacityArgs
{
Default = "1",
Maximum = "10",
Minimum = "1",
},
Name = "saludos",
Recurrence = new AzureNative.Insights.Inputs.RecurrenceArgs
{
Frequency = AzureNative.Insights.RecurrenceFrequency.Week,
Schedule = new AzureNative.Insights.Inputs.RecurrentScheduleArgs
{
Days = new[]
{
"1",
},
Hours = new[]
{
5,
},
Minutes = new[]
{
15,
},
TimeZone = "UTC",
},
},
Rules = new[]
{
new AzureNative.Insights.Inputs.ScaleRuleArgs
{
MetricTrigger = new AzureNative.Insights.Inputs.MetricTriggerArgs
{
DividePerInstance = false,
MetricName = "Percentage CPU",
MetricResourceUri = "/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc",
Operator = AzureNative.Insights.ComparisonOperationType.GreaterThan,
Statistic = AzureNative.Insights.MetricStatisticType.Average,
Threshold = 10,
TimeAggregation = AzureNative.Insights.TimeAggregationType.Average,
TimeGrain = "PT1M",
TimeWindow = "PT5M",
},
ScaleAction = new AzureNative.Insights.Inputs.ScaleActionArgs
{
Cooldown = "PT5M",
Direction = AzureNative.Insights.ScaleDirection.Increase,
Type = AzureNative.Insights.ScaleType.ChangeCount,
Value = "1",
},
},
new AzureNative.Insights.Inputs.ScaleRuleArgs
{
MetricTrigger = new AzureNative.Insights.Inputs.MetricTriggerArgs
{
DividePerInstance = false,
MetricName = "Percentage CPU",
MetricResourceUri = "/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc",
Operator = AzureNative.Insights.ComparisonOperationType.GreaterThan,
Statistic = AzureNative.Insights.MetricStatisticType.Average,
Threshold = 15,
TimeAggregation = AzureNative.Insights.TimeAggregationType.Average,
TimeGrain = "PT2M",
TimeWindow = "PT5M",
},
ScaleAction = new AzureNative.Insights.Inputs.ScaleActionArgs
{
Cooldown = "PT6M",
Direction = AzureNative.Insights.ScaleDirection.Decrease,
Type = AzureNative.Insights.ScaleType.ChangeCount,
Value = "2",
},
},
},
},
},
ResourceGroupName = "TestingMetricsScaleSet",
Tags =
{
{ "key1", "value1" },
{ "key2", "value2" },
},
TargetResourceUri = "/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc",
});
});
package main
import (
insights "github.com/pulumi/pulumi-azure-native-sdk/insights/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := insights.NewAutoscaleSetting(ctx, "autoscaleSetting", &insights.AutoscaleSettingArgs{
AutoscaleSettingName: pulumi.String("MySetting"),
Enabled: pulumi.Bool(true),
Location: pulumi.String("West US"),
Notifications: insights.AutoscaleNotificationArray{
&insights.AutoscaleNotificationArgs{
Email: &insights.EmailNotificationArgs{
CustomEmails: pulumi.StringArray{
pulumi.String("gu@ms.com"),
pulumi.String("ge@ns.net"),
},
SendToSubscriptionAdministrator: pulumi.Bool(true),
SendToSubscriptionCoAdministrators: pulumi.Bool(true),
},
Operation: insights.OperationTypeScale,
Webhooks: insights.WebhookNotificationArray{
&insights.WebhookNotificationArgs{
Properties: pulumi.StringMap{},
ServiceUri: pulumi.String("http://myservice.com"),
},
},
},
},
PredictiveAutoscalePolicy: &insights.PredictiveAutoscalePolicyArgs{
ScaleMode: insights.PredictiveAutoscalePolicyScaleModeEnabled,
},
Profiles: insights.AutoscaleProfileArray{
&insights.AutoscaleProfileArgs{
Capacity: &insights.ScaleCapacityArgs{
Default: pulumi.String("1"),
Maximum: pulumi.String("10"),
Minimum: pulumi.String("1"),
},
FixedDate: &insights.TimeWindowArgs{
End: pulumi.String("2015-03-05T14:30:00Z"),
Start: pulumi.String("2015-03-05T14:00:00Z"),
TimeZone: pulumi.String("UTC"),
},
Name: pulumi.String("adios"),
Rules: insights.ScaleRuleArray{
&insights.ScaleRuleArgs{
MetricTrigger: &insights.MetricTriggerArgs{
DividePerInstance: pulumi.Bool(false),
MetricName: pulumi.String("Percentage CPU"),
MetricResourceUri: pulumi.String("/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc"),
Operator: insights.ComparisonOperationTypeGreaterThan,
Statistic: insights.MetricStatisticTypeAverage,
Threshold: pulumi.Float64(10),
TimeAggregation: insights.TimeAggregationTypeAverage,
TimeGrain: pulumi.String("PT1M"),
TimeWindow: pulumi.String("PT5M"),
},
ScaleAction: &insights.ScaleActionArgs{
Cooldown: pulumi.String("PT5M"),
Direction: insights.ScaleDirectionIncrease,
Type: insights.ScaleTypeChangeCount,
Value: pulumi.String("1"),
},
},
&insights.ScaleRuleArgs{
MetricTrigger: &insights.MetricTriggerArgs{
DividePerInstance: pulumi.Bool(false),
MetricName: pulumi.String("Percentage CPU"),
MetricResourceUri: pulumi.String("/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc"),
Operator: insights.ComparisonOperationTypeGreaterThan,
Statistic: insights.MetricStatisticTypeAverage,
Threshold: pulumi.Float64(15),
TimeAggregation: insights.TimeAggregationTypeAverage,
TimeGrain: pulumi.String("PT2M"),
TimeWindow: pulumi.String("PT5M"),
},
ScaleAction: &insights.ScaleActionArgs{
Cooldown: pulumi.String("PT6M"),
Direction: insights.ScaleDirectionDecrease,
Type: insights.ScaleTypeChangeCount,
Value: pulumi.String("2"),
},
},
},
},
&insights.AutoscaleProfileArgs{
Capacity: &insights.ScaleCapacityArgs{
Default: pulumi.String("1"),
Maximum: pulumi.String("10"),
Minimum: pulumi.String("1"),
},
Name: pulumi.String("saludos"),
Recurrence: &insights.RecurrenceArgs{
Frequency: insights.RecurrenceFrequencyWeek,
Schedule: &insights.RecurrentScheduleArgs{
Days: pulumi.StringArray{
pulumi.String("1"),
},
Hours: pulumi.IntArray{
pulumi.Int(5),
},
Minutes: pulumi.IntArray{
pulumi.Int(15),
},
TimeZone: pulumi.String("UTC"),
},
},
Rules: insights.ScaleRuleArray{
&insights.ScaleRuleArgs{
MetricTrigger: &insights.MetricTriggerArgs{
DividePerInstance: pulumi.Bool(false),
MetricName: pulumi.String("Percentage CPU"),
MetricResourceUri: pulumi.String("/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc"),
Operator: insights.ComparisonOperationTypeGreaterThan,
Statistic: insights.MetricStatisticTypeAverage,
Threshold: pulumi.Float64(10),
TimeAggregation: insights.TimeAggregationTypeAverage,
TimeGrain: pulumi.String("PT1M"),
TimeWindow: pulumi.String("PT5M"),
},
ScaleAction: &insights.ScaleActionArgs{
Cooldown: pulumi.String("PT5M"),
Direction: insights.ScaleDirectionIncrease,
Type: insights.ScaleTypeChangeCount,
Value: pulumi.String("1"),
},
},
&insights.ScaleRuleArgs{
MetricTrigger: &insights.MetricTriggerArgs{
DividePerInstance: pulumi.Bool(false),
MetricName: pulumi.String("Percentage CPU"),
MetricResourceUri: pulumi.String("/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc"),
Operator: insights.ComparisonOperationTypeGreaterThan,
Statistic: insights.MetricStatisticTypeAverage,
Threshold: pulumi.Float64(15),
TimeAggregation: insights.TimeAggregationTypeAverage,
TimeGrain: pulumi.String("PT2M"),
TimeWindow: pulumi.String("PT5M"),
},
ScaleAction: &insights.ScaleActionArgs{
Cooldown: pulumi.String("PT6M"),
Direction: insights.ScaleDirectionDecrease,
Type: insights.ScaleTypeChangeCount,
Value: pulumi.String("2"),
},
},
},
},
},
ResourceGroupName: pulumi.String("TestingMetricsScaleSet"),
Tags: pulumi.StringMap{
"key1": pulumi.String("value1"),
"key2": pulumi.String("value2"),
},
TargetResourceUri: pulumi.String("/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.insights.AutoscaleSetting;
import com.pulumi.azurenative.insights.AutoscaleSettingArgs;
import com.pulumi.azurenative.insights.inputs.AutoscaleNotificationArgs;
import com.pulumi.azurenative.insights.inputs.EmailNotificationArgs;
import com.pulumi.azurenative.insights.inputs.PredictiveAutoscalePolicyArgs;
import com.pulumi.azurenative.insights.inputs.AutoscaleProfileArgs;
import com.pulumi.azurenative.insights.inputs.ScaleCapacityArgs;
import com.pulumi.azurenative.insights.inputs.TimeWindowArgs;
import com.pulumi.azurenative.insights.inputs.RecurrenceArgs;
import com.pulumi.azurenative.insights.inputs.RecurrentScheduleArgs;
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 autoscaleSetting = new AutoscaleSetting("autoscaleSetting", AutoscaleSettingArgs.builder()
.autoscaleSettingName("MySetting")
.enabled(true)
.location("West US")
.notifications(AutoscaleNotificationArgs.builder()
.email(EmailNotificationArgs.builder()
.customEmails(
"gu@ms.com",
"ge@ns.net")
.sendToSubscriptionAdministrator(true)
.sendToSubscriptionCoAdministrators(true)
.build())
.operation("Scale")
.webhooks(WebhookNotificationArgs.builder()
.properties()
.serviceUri("http://myservice.com")
.build())
.build())
.predictiveAutoscalePolicy(PredictiveAutoscalePolicyArgs.builder()
.scaleMode("Enabled")
.build())
.profiles(
AutoscaleProfileArgs.builder()
.capacity(ScaleCapacityArgs.builder()
.default_("1")
.maximum("10")
.minimum("1")
.build())
.fixedDate(TimeWindowArgs.builder()
.end("2015-03-05T14:30:00Z")
.start("2015-03-05T14:00:00Z")
.timeZone("UTC")
.build())
.name("adios")
.rules(
ScaleRuleArgs.builder()
.metricTrigger(MetricTriggerArgs.builder()
.dividePerInstance(false)
.metricName("Percentage CPU")
.metricResourceUri("/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc")
.operator("GreaterThan")
.statistic("Average")
.threshold(10)
.timeAggregation("Average")
.timeGrain("PT1M")
.timeWindow("PT5M")
.build())
.scaleAction(ScaleActionArgs.builder()
.cooldown("PT5M")
.direction("Increase")
.type("ChangeCount")
.value("1")
.build())
.build(),
ScaleRuleArgs.builder()
.metricTrigger(MetricTriggerArgs.builder()
.dividePerInstance(false)
.metricName("Percentage CPU")
.metricResourceUri("/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc")
.operator("GreaterThan")
.statistic("Average")
.threshold(15)
.timeAggregation("Average")
.timeGrain("PT2M")
.timeWindow("PT5M")
.build())
.scaleAction(ScaleActionArgs.builder()
.cooldown("PT6M")
.direction("Decrease")
.type("ChangeCount")
.value("2")
.build())
.build())
.build(),
AutoscaleProfileArgs.builder()
.capacity(ScaleCapacityArgs.builder()
.default_("1")
.maximum("10")
.minimum("1")
.build())
.name("saludos")
.recurrence(RecurrenceArgs.builder()
.frequency("Week")
.schedule(RecurrentScheduleArgs.builder()
.days("1")
.hours(5)
.minutes(15)
.timeZone("UTC")
.build())
.build())
.rules(
ScaleRuleArgs.builder()
.metricTrigger(MetricTriggerArgs.builder()
.dividePerInstance(false)
.metricName("Percentage CPU")
.metricResourceUri("/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc")
.operator("GreaterThan")
.statistic("Average")
.threshold(10)
.timeAggregation("Average")
.timeGrain("PT1M")
.timeWindow("PT5M")
.build())
.scaleAction(ScaleActionArgs.builder()
.cooldown("PT5M")
.direction("Increase")
.type("ChangeCount")
.value("1")
.build())
.build(),
ScaleRuleArgs.builder()
.metricTrigger(MetricTriggerArgs.builder()
.dividePerInstance(false)
.metricName("Percentage CPU")
.metricResourceUri("/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc")
.operator("GreaterThan")
.statistic("Average")
.threshold(15)
.timeAggregation("Average")
.timeGrain("PT2M")
.timeWindow("PT5M")
.build())
.scaleAction(ScaleActionArgs.builder()
.cooldown("PT6M")
.direction("Decrease")
.type("ChangeCount")
.value("2")
.build())
.build())
.build())
.resourceGroupName("TestingMetricsScaleSet")
.tags(Map.ofEntries(
Map.entry("key1", "value1"),
Map.entry("key2", "value2")
))
.targetResourceUri("/subscriptions/b67f7fec-69fc-4974-9099-a26bd6ffeda3/resourceGroups/TestingMetricsScaleSet/providers/Microsoft.Compute/virtualMachineScaleSets/testingsc")
.build());
}
}

Import

An existing resource can be imported using its type token, name, and identifier, e.g.

$ pulumi import azure-native:insights:AutoscaleSetting MySetting /subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Insights/autoscalesettings/{autoscaleSettingName}

Properties

Link copied to clipboard
val enabled: Output<Boolean>?

the enabled flag. Specifies whether automatic scaling is enabled for the resource. The default value is 'false'.

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

Resource location

Link copied to clipboard
val name: Output<String>

Azure resource name

Link copied to clipboard

the collection of notifications.

Link copied to clipboard

the predictive autoscale policy mode.

Link copied to clipboard

the collection of automatic scaling profiles that specify different scaling parameters for different time periods. A maximum of 20 profiles can be specified.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The system metadata related to the response.

Link copied to clipboard
val tags: Output<Map<String, String>>?

Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater in length than 128 characters and a value no greater in length than 256 characters.

Link copied to clipboard

the location of the resource that the autoscale setting should be added to.

Link copied to clipboard

the resource identifier of the resource that the autoscale setting should be added to.

Link copied to clipboard
val type: Output<String>

Azure resource type

Link copied to clipboard
val urn: Output<String>