We recommend using Azure Native.
azure.compute.ScaleSet
Explore with Pulumi AI
Manages a virtual machine scale set.
Example Usage
With Managed Disks (Recommended)
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
import * as std from "@pulumi/std";
const example = new azure.core.ResourceGroup("example", {
    name: "example-resources",
    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 examplePublicIp = new azure.network.PublicIp("example", {
    name: "test",
    location: example.location,
    resourceGroupName: example.name,
    allocationMethod: "Static",
    domainNameLabel: example.name,
    tags: {
        environment: "staging",
    },
});
const exampleLoadBalancer = new azure.lb.LoadBalancer("example", {
    name: "test",
    location: example.location,
    resourceGroupName: example.name,
    frontendIpConfigurations: [{
        name: "PublicIPAddress",
        publicIpAddressId: examplePublicIp.id,
    }],
});
const bpepool = new azure.lb.BackendAddressPool("bpepool", {
    loadbalancerId: exampleLoadBalancer.id,
    name: "BackEndAddressPool",
});
const lbnatpool = new azure.lb.NatPool("lbnatpool", {
    resourceGroupName: example.name,
    name: "ssh",
    loadbalancerId: exampleLoadBalancer.id,
    protocol: "Tcp",
    frontendPortStart: 50000,
    frontendPortEnd: 50119,
    backendPort: 22,
    frontendIpConfigurationName: "PublicIPAddress",
});
const exampleProbe = new azure.lb.Probe("example", {
    loadbalancerId: exampleLoadBalancer.id,
    name: "http-probe",
    protocol: "Http",
    requestPath: "/health",
    port: 8080,
});
const exampleScaleSet = new azure.compute.ScaleSet("example", {
    name: "mytestscaleset-1",
    location: example.location,
    resourceGroupName: example.name,
    automaticOsUpgrade: true,
    upgradePolicyMode: "Rolling",
    rollingUpgradePolicy: {
        maxBatchInstancePercent: 20,
        maxUnhealthyInstancePercent: 20,
        maxUnhealthyUpgradedInstancePercent: 5,
        pauseTimeBetweenBatches: "PT0S",
    },
    healthProbeId: exampleProbe.id,
    sku: {
        name: "Standard_F2",
        tier: "Standard",
        capacity: 2,
    },
    storageProfileImageReference: {
        publisher: "Canonical",
        offer: "0001-com-ubuntu-server-jammy",
        sku: "22_04-lts",
        version: "latest",
    },
    storageProfileOsDisk: {
        name: "",
        caching: "ReadWrite",
        createOption: "FromImage",
        managedDiskType: "Standard_LRS",
    },
    storageProfileDataDisks: [{
        lun: 0,
        caching: "ReadWrite",
        createOption: "Empty",
        diskSizeGb: 10,
    }],
    osProfile: {
        computerNamePrefix: "testvm",
        adminUsername: "myadmin",
    },
    osProfileLinuxConfig: {
        disablePasswordAuthentication: true,
        sshKeys: [{
            path: "/home/myadmin/.ssh/authorized_keys",
            keyData: std.file({
                input: "~/.ssh/demo_key.pub",
            }).then(invoke => invoke.result),
        }],
    },
    networkProfiles: [{
        name: "mynetworkprofile",
        primary: true,
        ipConfigurations: [{
            name: "TestIPConfiguration",
            primary: true,
            subnetId: exampleSubnet.id,
            loadBalancerBackendAddressPoolIds: [bpepool.id],
            loadBalancerInboundNatRulesIds: [lbnatpool.id],
        }],
    }],
    tags: {
        environment: "staging",
    },
});
import pulumi
import pulumi_azure as azure
import pulumi_std as std
example = azure.core.ResourceGroup("example",
    name="example-resources",
    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_public_ip = azure.network.PublicIp("example",
    name="test",
    location=example.location,
    resource_group_name=example.name,
    allocation_method="Static",
    domain_name_label=example.name,
    tags={
        "environment": "staging",
    })
example_load_balancer = azure.lb.LoadBalancer("example",
    name="test",
    location=example.location,
    resource_group_name=example.name,
    frontend_ip_configurations=[{
        "name": "PublicIPAddress",
        "public_ip_address_id": example_public_ip.id,
    }])
bpepool = azure.lb.BackendAddressPool("bpepool",
    loadbalancer_id=example_load_balancer.id,
    name="BackEndAddressPool")
lbnatpool = azure.lb.NatPool("lbnatpool",
    resource_group_name=example.name,
    name="ssh",
    loadbalancer_id=example_load_balancer.id,
    protocol="Tcp",
    frontend_port_start=50000,
    frontend_port_end=50119,
    backend_port=22,
    frontend_ip_configuration_name="PublicIPAddress")
example_probe = azure.lb.Probe("example",
    loadbalancer_id=example_load_balancer.id,
    name="http-probe",
    protocol="Http",
    request_path="/health",
    port=8080)
example_scale_set = azure.compute.ScaleSet("example",
    name="mytestscaleset-1",
    location=example.location,
    resource_group_name=example.name,
    automatic_os_upgrade=True,
    upgrade_policy_mode="Rolling",
    rolling_upgrade_policy={
        "max_batch_instance_percent": 20,
        "max_unhealthy_instance_percent": 20,
        "max_unhealthy_upgraded_instance_percent": 5,
        "pause_time_between_batches": "PT0S",
    },
    health_probe_id=example_probe.id,
    sku={
        "name": "Standard_F2",
        "tier": "Standard",
        "capacity": 2,
    },
    storage_profile_image_reference={
        "publisher": "Canonical",
        "offer": "0001-com-ubuntu-server-jammy",
        "sku": "22_04-lts",
        "version": "latest",
    },
    storage_profile_os_disk={
        "name": "",
        "caching": "ReadWrite",
        "create_option": "FromImage",
        "managed_disk_type": "Standard_LRS",
    },
    storage_profile_data_disks=[{
        "lun": 0,
        "caching": "ReadWrite",
        "create_option": "Empty",
        "disk_size_gb": 10,
    }],
    os_profile={
        "computer_name_prefix": "testvm",
        "admin_username": "myadmin",
    },
    os_profile_linux_config={
        "disable_password_authentication": True,
        "ssh_keys": [{
            "path": "/home/myadmin/.ssh/authorized_keys",
            "key_data": std.file(input="~/.ssh/demo_key.pub").result,
        }],
    },
    network_profiles=[{
        "name": "mynetworkprofile",
        "primary": True,
        "ip_configurations": [{
            "name": "TestIPConfiguration",
            "primary": True,
            "subnet_id": example_subnet.id,
            "load_balancer_backend_address_pool_ids": [bpepool.id],
            "load_balancer_inbound_nat_rules_ids": [lbnatpool.id],
        }],
    }],
    tags={
        "environment": "staging",
    })
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/lb"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"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("example-resources"),
			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
		}
		examplePublicIp, err := network.NewPublicIp(ctx, "example", &network.PublicIpArgs{
			Name:              pulumi.String("test"),
			Location:          example.Location,
			ResourceGroupName: example.Name,
			AllocationMethod:  pulumi.String("Static"),
			DomainNameLabel:   example.Name,
			Tags: pulumi.StringMap{
				"environment": pulumi.String("staging"),
			},
		})
		if err != nil {
			return err
		}
		exampleLoadBalancer, err := lb.NewLoadBalancer(ctx, "example", &lb.LoadBalancerArgs{
			Name:              pulumi.String("test"),
			Location:          example.Location,
			ResourceGroupName: example.Name,
			FrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{
				&lb.LoadBalancerFrontendIpConfigurationArgs{
					Name:              pulumi.String("PublicIPAddress"),
					PublicIpAddressId: examplePublicIp.ID(),
				},
			},
		})
		if err != nil {
			return err
		}
		bpepool, err := lb.NewBackendAddressPool(ctx, "bpepool", &lb.BackendAddressPoolArgs{
			LoadbalancerId: exampleLoadBalancer.ID(),
			Name:           pulumi.String("BackEndAddressPool"),
		})
		if err != nil {
			return err
		}
		lbnatpool, err := lb.NewNatPool(ctx, "lbnatpool", &lb.NatPoolArgs{
			ResourceGroupName:           example.Name,
			Name:                        pulumi.String("ssh"),
			LoadbalancerId:              exampleLoadBalancer.ID(),
			Protocol:                    pulumi.String("Tcp"),
			FrontendPortStart:           pulumi.Int(50000),
			FrontendPortEnd:             pulumi.Int(50119),
			BackendPort:                 pulumi.Int(22),
			FrontendIpConfigurationName: pulumi.String("PublicIPAddress"),
		})
		if err != nil {
			return err
		}
		exampleProbe, err := lb.NewProbe(ctx, "example", &lb.ProbeArgs{
			LoadbalancerId: exampleLoadBalancer.ID(),
			Name:           pulumi.String("http-probe"),
			Protocol:       pulumi.String("Http"),
			RequestPath:    pulumi.String("/health"),
			Port:           pulumi.Int(8080),
		})
		if err != nil {
			return err
		}
		invokeFile, err := std.File(ctx, &std.FileArgs{
			Input: "~/.ssh/demo_key.pub",
		}, nil)
		if err != nil {
			return err
		}
		_, err = compute.NewScaleSet(ctx, "example", &compute.ScaleSetArgs{
			Name:               pulumi.String("mytestscaleset-1"),
			Location:           example.Location,
			ResourceGroupName:  example.Name,
			AutomaticOsUpgrade: pulumi.Bool(true),
			UpgradePolicyMode:  pulumi.String("Rolling"),
			RollingUpgradePolicy: &compute.ScaleSetRollingUpgradePolicyArgs{
				MaxBatchInstancePercent:             pulumi.Int(20),
				MaxUnhealthyInstancePercent:         pulumi.Int(20),
				MaxUnhealthyUpgradedInstancePercent: pulumi.Int(5),
				PauseTimeBetweenBatches:             pulumi.String("PT0S"),
			},
			HealthProbeId: exampleProbe.ID(),
			Sku: &compute.ScaleSetSkuArgs{
				Name:     pulumi.String("Standard_F2"),
				Tier:     pulumi.String("Standard"),
				Capacity: pulumi.Int(2),
			},
			StorageProfileImageReference: &compute.ScaleSetStorageProfileImageReferenceArgs{
				Publisher: pulumi.String("Canonical"),
				Offer:     pulumi.String("0001-com-ubuntu-server-jammy"),
				Sku:       pulumi.String("22_04-lts"),
				Version:   pulumi.String("latest"),
			},
			StorageProfileOsDisk: &compute.ScaleSetStorageProfileOsDiskArgs{
				Name:            pulumi.String(""),
				Caching:         pulumi.String("ReadWrite"),
				CreateOption:    pulumi.String("FromImage"),
				ManagedDiskType: pulumi.String("Standard_LRS"),
			},
			StorageProfileDataDisks: compute.ScaleSetStorageProfileDataDiskArray{
				&compute.ScaleSetStorageProfileDataDiskArgs{
					Lun:          pulumi.Int(0),
					Caching:      pulumi.String("ReadWrite"),
					CreateOption: pulumi.String("Empty"),
					DiskSizeGb:   pulumi.Int(10),
				},
			},
			OsProfile: &compute.ScaleSetOsProfileArgs{
				ComputerNamePrefix: pulumi.String("testvm"),
				AdminUsername:      pulumi.String("myadmin"),
			},
			OsProfileLinuxConfig: &compute.ScaleSetOsProfileLinuxConfigArgs{
				DisablePasswordAuthentication: pulumi.Bool(true),
				SshKeys: compute.ScaleSetOsProfileLinuxConfigSshKeyArray{
					&compute.ScaleSetOsProfileLinuxConfigSshKeyArgs{
						Path:    pulumi.String("/home/myadmin/.ssh/authorized_keys"),
						KeyData: pulumi.String(invokeFile.Result),
					},
				},
			},
			NetworkProfiles: compute.ScaleSetNetworkProfileArray{
				&compute.ScaleSetNetworkProfileArgs{
					Name:    pulumi.String("mynetworkprofile"),
					Primary: pulumi.Bool(true),
					IpConfigurations: compute.ScaleSetNetworkProfileIpConfigurationArray{
						&compute.ScaleSetNetworkProfileIpConfigurationArgs{
							Name:     pulumi.String("TestIPConfiguration"),
							Primary:  pulumi.Bool(true),
							SubnetId: exampleSubnet.ID(),
							LoadBalancerBackendAddressPoolIds: pulumi.StringArray{
								bpepool.ID(),
							},
							LoadBalancerInboundNatRulesIds: pulumi.StringArray{
								lbnatpool.ID(),
							},
						},
					},
				},
			},
			Tags: pulumi.StringMap{
				"environment": pulumi.String("staging"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() => 
{
    var example = new Azure.Core.ResourceGroup("example", new()
    {
        Name = "example-resources",
        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 examplePublicIp = new Azure.Network.PublicIp("example", new()
    {
        Name = "test",
        Location = example.Location,
        ResourceGroupName = example.Name,
        AllocationMethod = "Static",
        DomainNameLabel = example.Name,
        Tags = 
        {
            { "environment", "staging" },
        },
    });
    var exampleLoadBalancer = new Azure.Lb.LoadBalancer("example", new()
    {
        Name = "test",
        Location = example.Location,
        ResourceGroupName = example.Name,
        FrontendIpConfigurations = new[]
        {
            new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs
            {
                Name = "PublicIPAddress",
                PublicIpAddressId = examplePublicIp.Id,
            },
        },
    });
    var bpepool = new Azure.Lb.BackendAddressPool("bpepool", new()
    {
        LoadbalancerId = exampleLoadBalancer.Id,
        Name = "BackEndAddressPool",
    });
    var lbnatpool = new Azure.Lb.NatPool("lbnatpool", new()
    {
        ResourceGroupName = example.Name,
        Name = "ssh",
        LoadbalancerId = exampleLoadBalancer.Id,
        Protocol = "Tcp",
        FrontendPortStart = 50000,
        FrontendPortEnd = 50119,
        BackendPort = 22,
        FrontendIpConfigurationName = "PublicIPAddress",
    });
    var exampleProbe = new Azure.Lb.Probe("example", new()
    {
        LoadbalancerId = exampleLoadBalancer.Id,
        Name = "http-probe",
        Protocol = "Http",
        RequestPath = "/health",
        Port = 8080,
    });
    var exampleScaleSet = new Azure.Compute.ScaleSet("example", new()
    {
        Name = "mytestscaleset-1",
        Location = example.Location,
        ResourceGroupName = example.Name,
        AutomaticOsUpgrade = true,
        UpgradePolicyMode = "Rolling",
        RollingUpgradePolicy = new Azure.Compute.Inputs.ScaleSetRollingUpgradePolicyArgs
        {
            MaxBatchInstancePercent = 20,
            MaxUnhealthyInstancePercent = 20,
            MaxUnhealthyUpgradedInstancePercent = 5,
            PauseTimeBetweenBatches = "PT0S",
        },
        HealthProbeId = exampleProbe.Id,
        Sku = new Azure.Compute.Inputs.ScaleSetSkuArgs
        {
            Name = "Standard_F2",
            Tier = "Standard",
            Capacity = 2,
        },
        StorageProfileImageReference = new Azure.Compute.Inputs.ScaleSetStorageProfileImageReferenceArgs
        {
            Publisher = "Canonical",
            Offer = "0001-com-ubuntu-server-jammy",
            Sku = "22_04-lts",
            Version = "latest",
        },
        StorageProfileOsDisk = new Azure.Compute.Inputs.ScaleSetStorageProfileOsDiskArgs
        {
            Name = "",
            Caching = "ReadWrite",
            CreateOption = "FromImage",
            ManagedDiskType = "Standard_LRS",
        },
        StorageProfileDataDisks = new[]
        {
            new Azure.Compute.Inputs.ScaleSetStorageProfileDataDiskArgs
            {
                Lun = 0,
                Caching = "ReadWrite",
                CreateOption = "Empty",
                DiskSizeGb = 10,
            },
        },
        OsProfile = new Azure.Compute.Inputs.ScaleSetOsProfileArgs
        {
            ComputerNamePrefix = "testvm",
            AdminUsername = "myadmin",
        },
        OsProfileLinuxConfig = new Azure.Compute.Inputs.ScaleSetOsProfileLinuxConfigArgs
        {
            DisablePasswordAuthentication = true,
            SshKeys = new[]
            {
                new Azure.Compute.Inputs.ScaleSetOsProfileLinuxConfigSshKeyArgs
                {
                    Path = "/home/myadmin/.ssh/authorized_keys",
                    KeyData = Std.File.Invoke(new()
                    {
                        Input = "~/.ssh/demo_key.pub",
                    }).Apply(invoke => invoke.Result),
                },
            },
        },
        NetworkProfiles = new[]
        {
            new Azure.Compute.Inputs.ScaleSetNetworkProfileArgs
            {
                Name = "mynetworkprofile",
                Primary = true,
                IpConfigurations = new[]
                {
                    new Azure.Compute.Inputs.ScaleSetNetworkProfileIpConfigurationArgs
                    {
                        Name = "TestIPConfiguration",
                        Primary = true,
                        SubnetId = exampleSubnet.Id,
                        LoadBalancerBackendAddressPoolIds = new[]
                        {
                            bpepool.Id,
                        },
                        LoadBalancerInboundNatRulesIds = new[]
                        {
                            lbnatpool.Id,
                        },
                    },
                },
            },
        },
        Tags = 
        {
            { "environment", "staging" },
        },
    });
});
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.network.PublicIp;
import com.pulumi.azure.network.PublicIpArgs;
import com.pulumi.azure.lb.LoadBalancer;
import com.pulumi.azure.lb.LoadBalancerArgs;
import com.pulumi.azure.lb.inputs.LoadBalancerFrontendIpConfigurationArgs;
import com.pulumi.azure.lb.BackendAddressPool;
import com.pulumi.azure.lb.BackendAddressPoolArgs;
import com.pulumi.azure.lb.NatPool;
import com.pulumi.azure.lb.NatPoolArgs;
import com.pulumi.azure.lb.Probe;
import com.pulumi.azure.lb.ProbeArgs;
import com.pulumi.azure.compute.ScaleSet;
import com.pulumi.azure.compute.ScaleSetArgs;
import com.pulumi.azure.compute.inputs.ScaleSetRollingUpgradePolicyArgs;
import com.pulumi.azure.compute.inputs.ScaleSetSkuArgs;
import com.pulumi.azure.compute.inputs.ScaleSetStorageProfileImageReferenceArgs;
import com.pulumi.azure.compute.inputs.ScaleSetStorageProfileOsDiskArgs;
import com.pulumi.azure.compute.inputs.ScaleSetStorageProfileDataDiskArgs;
import com.pulumi.azure.compute.inputs.ScaleSetOsProfileArgs;
import com.pulumi.azure.compute.inputs.ScaleSetOsProfileLinuxConfigArgs;
import com.pulumi.azure.compute.inputs.ScaleSetNetworkProfileArgs;
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("example-resources")
            .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 examplePublicIp = new PublicIp("examplePublicIp", PublicIpArgs.builder()
            .name("test")
            .location(example.location())
            .resourceGroupName(example.name())
            .allocationMethod("Static")
            .domainNameLabel(example.name())
            .tags(Map.of("environment", "staging"))
            .build());
        var exampleLoadBalancer = new LoadBalancer("exampleLoadBalancer", LoadBalancerArgs.builder()
            .name("test")
            .location(example.location())
            .resourceGroupName(example.name())
            .frontendIpConfigurations(LoadBalancerFrontendIpConfigurationArgs.builder()
                .name("PublicIPAddress")
                .publicIpAddressId(examplePublicIp.id())
                .build())
            .build());
        var bpepool = new BackendAddressPool("bpepool", BackendAddressPoolArgs.builder()
            .loadbalancerId(exampleLoadBalancer.id())
            .name("BackEndAddressPool")
            .build());
        var lbnatpool = new NatPool("lbnatpool", NatPoolArgs.builder()
            .resourceGroupName(example.name())
            .name("ssh")
            .loadbalancerId(exampleLoadBalancer.id())
            .protocol("Tcp")
            .frontendPortStart(50000)
            .frontendPortEnd(50119)
            .backendPort(22)
            .frontendIpConfigurationName("PublicIPAddress")
            .build());
        var exampleProbe = new Probe("exampleProbe", ProbeArgs.builder()
            .loadbalancerId(exampleLoadBalancer.id())
            .name("http-probe")
            .protocol("Http")
            .requestPath("/health")
            .port(8080)
            .build());
        var exampleScaleSet = new ScaleSet("exampleScaleSet", ScaleSetArgs.builder()
            .name("mytestscaleset-1")
            .location(example.location())
            .resourceGroupName(example.name())
            .automaticOsUpgrade(true)
            .upgradePolicyMode("Rolling")
            .rollingUpgradePolicy(ScaleSetRollingUpgradePolicyArgs.builder()
                .maxBatchInstancePercent(20)
                .maxUnhealthyInstancePercent(20)
                .maxUnhealthyUpgradedInstancePercent(5)
                .pauseTimeBetweenBatches("PT0S")
                .build())
            .healthProbeId(exampleProbe.id())
            .sku(ScaleSetSkuArgs.builder()
                .name("Standard_F2")
                .tier("Standard")
                .capacity(2)
                .build())
            .storageProfileImageReference(ScaleSetStorageProfileImageReferenceArgs.builder()
                .publisher("Canonical")
                .offer("0001-com-ubuntu-server-jammy")
                .sku("22_04-lts")
                .version("latest")
                .build())
            .storageProfileOsDisk(ScaleSetStorageProfileOsDiskArgs.builder()
                .name("")
                .caching("ReadWrite")
                .createOption("FromImage")
                .managedDiskType("Standard_LRS")
                .build())
            .storageProfileDataDisks(ScaleSetStorageProfileDataDiskArgs.builder()
                .lun(0)
                .caching("ReadWrite")
                .createOption("Empty")
                .diskSizeGb(10)
                .build())
            .osProfile(ScaleSetOsProfileArgs.builder()
                .computerNamePrefix("testvm")
                .adminUsername("myadmin")
                .build())
            .osProfileLinuxConfig(ScaleSetOsProfileLinuxConfigArgs.builder()
                .disablePasswordAuthentication(true)
                .sshKeys(ScaleSetOsProfileLinuxConfigSshKeyArgs.builder()
                    .path("/home/myadmin/.ssh/authorized_keys")
                    .keyData(StdFunctions.file(FileArgs.builder()
                        .input("~/.ssh/demo_key.pub")
                        .build()).result())
                    .build())
                .build())
            .networkProfiles(ScaleSetNetworkProfileArgs.builder()
                .name("mynetworkprofile")
                .primary(true)
                .ipConfigurations(ScaleSetNetworkProfileIpConfigurationArgs.builder()
                    .name("TestIPConfiguration")
                    .primary(true)
                    .subnetId(exampleSubnet.id())
                    .loadBalancerBackendAddressPoolIds(bpepool.id())
                    .loadBalancerInboundNatRulesIds(lbnatpool.id())
                    .build())
                .build())
            .tags(Map.of("environment", "staging"))
            .build());
    }
}
resources:
  example:
    type: azure:core:ResourceGroup
    properties:
      name: example-resources
      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
  examplePublicIp:
    type: azure:network:PublicIp
    name: example
    properties:
      name: test
      location: ${example.location}
      resourceGroupName: ${example.name}
      allocationMethod: Static
      domainNameLabel: ${example.name}
      tags:
        environment: staging
  exampleLoadBalancer:
    type: azure:lb:LoadBalancer
    name: example
    properties:
      name: test
      location: ${example.location}
      resourceGroupName: ${example.name}
      frontendIpConfigurations:
        - name: PublicIPAddress
          publicIpAddressId: ${examplePublicIp.id}
  bpepool:
    type: azure:lb:BackendAddressPool
    properties:
      loadbalancerId: ${exampleLoadBalancer.id}
      name: BackEndAddressPool
  lbnatpool:
    type: azure:lb:NatPool
    properties:
      resourceGroupName: ${example.name}
      name: ssh
      loadbalancerId: ${exampleLoadBalancer.id}
      protocol: Tcp
      frontendPortStart: 50000
      frontendPortEnd: 50119
      backendPort: 22
      frontendIpConfigurationName: PublicIPAddress
  exampleProbe:
    type: azure:lb:Probe
    name: example
    properties:
      loadbalancerId: ${exampleLoadBalancer.id}
      name: http-probe
      protocol: Http
      requestPath: /health
      port: 8080
  exampleScaleSet:
    type: azure:compute:ScaleSet
    name: example
    properties:
      name: mytestscaleset-1
      location: ${example.location}
      resourceGroupName: ${example.name}
      automaticOsUpgrade: true
      upgradePolicyMode: Rolling
      rollingUpgradePolicy:
        maxBatchInstancePercent: 20
        maxUnhealthyInstancePercent: 20
        maxUnhealthyUpgradedInstancePercent: 5
        pauseTimeBetweenBatches: PT0S
      healthProbeId: ${exampleProbe.id}
      sku:
        name: Standard_F2
        tier: Standard
        capacity: 2
      storageProfileImageReference:
        publisher: Canonical
        offer: 0001-com-ubuntu-server-jammy
        sku: 22_04-lts
        version: latest
      storageProfileOsDisk:
        name: ""
        caching: ReadWrite
        createOption: FromImage
        managedDiskType: Standard_LRS
      storageProfileDataDisks:
        - lun: 0
          caching: ReadWrite
          createOption: Empty
          diskSizeGb: 10
      osProfile:
        computerNamePrefix: testvm
        adminUsername: myadmin
      osProfileLinuxConfig:
        disablePasswordAuthentication: true
        sshKeys:
          - path: /home/myadmin/.ssh/authorized_keys
            keyData:
              fn::invoke:
                function: std:file
                arguments:
                  input: ~/.ssh/demo_key.pub
                return: result
      networkProfiles:
        - name: mynetworkprofile
          primary: true
          ipConfigurations:
            - name: TestIPConfiguration
              primary: true
              subnetId: ${exampleSubnet.id}
              loadBalancerBackendAddressPoolIds:
                - ${bpepool.id}
              loadBalancerInboundNatRulesIds:
                - ${lbnatpool.id}
      tags:
        environment: staging
With Unmanaged Disks
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
import * as std from "@pulumi/std";
const example = new azure.core.ResourceGroup("example", {
    name: "example-resources",
    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 exampleAccount = new azure.storage.Account("example", {
    name: "accsa",
    resourceGroupName: example.name,
    location: example.location,
    accountTier: "Standard",
    accountReplicationType: "LRS",
    tags: {
        environment: "staging",
    },
});
const exampleContainer = new azure.storage.Container("example", {
    name: "vhds",
    storageAccountName: exampleAccount.name,
    containerAccessType: "private",
});
const exampleScaleSet = new azure.compute.ScaleSet("example", {
    name: "mytestscaleset-1",
    location: example.location,
    resourceGroupName: example.name,
    upgradePolicyMode: "Manual",
    sku: {
        name: "Standard_F2",
        tier: "Standard",
        capacity: 2,
    },
    osProfile: {
        computerNamePrefix: "testvm",
        adminUsername: "myadmin",
    },
    osProfileLinuxConfig: {
        disablePasswordAuthentication: true,
        sshKeys: [{
            path: "/home/myadmin/.ssh/authorized_keys",
            keyData: std.file({
                input: "~/.ssh/demo_key.pub",
            }).then(invoke => invoke.result),
        }],
    },
    networkProfiles: [{
        name: "TestNetworkProfile",
        primary: true,
        ipConfigurations: [{
            name: "TestIPConfiguration",
            primary: true,
            subnetId: exampleSubnet.id,
        }],
    }],
    storageProfileOsDisk: {
        name: "osDiskProfile",
        caching: "ReadWrite",
        createOption: "FromImage",
        vhdContainers: [pulumi.interpolate`${exampleAccount.primaryBlobEndpoint}${exampleContainer.name}`],
    },
    storageProfileImageReference: {
        publisher: "Canonical",
        offer: "0001-com-ubuntu-server-jammy",
        sku: "22_04-lts",
        version: "latest",
    },
});
import pulumi
import pulumi_azure as azure
import pulumi_std as std
example = azure.core.ResourceGroup("example",
    name="example-resources",
    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_account = azure.storage.Account("example",
    name="accsa",
    resource_group_name=example.name,
    location=example.location,
    account_tier="Standard",
    account_replication_type="LRS",
    tags={
        "environment": "staging",
    })
example_container = azure.storage.Container("example",
    name="vhds",
    storage_account_name=example_account.name,
    container_access_type="private")
example_scale_set = azure.compute.ScaleSet("example",
    name="mytestscaleset-1",
    location=example.location,
    resource_group_name=example.name,
    upgrade_policy_mode="Manual",
    sku={
        "name": "Standard_F2",
        "tier": "Standard",
        "capacity": 2,
    },
    os_profile={
        "computer_name_prefix": "testvm",
        "admin_username": "myadmin",
    },
    os_profile_linux_config={
        "disable_password_authentication": True,
        "ssh_keys": [{
            "path": "/home/myadmin/.ssh/authorized_keys",
            "key_data": std.file(input="~/.ssh/demo_key.pub").result,
        }],
    },
    network_profiles=[{
        "name": "TestNetworkProfile",
        "primary": True,
        "ip_configurations": [{
            "name": "TestIPConfiguration",
            "primary": True,
            "subnet_id": example_subnet.id,
        }],
    }],
    storage_profile_os_disk={
        "name": "osDiskProfile",
        "caching": "ReadWrite",
        "create_option": "FromImage",
        "vhd_containers": [pulumi.Output.all(
            primary_blob_endpoint=example_account.primary_blob_endpoint,
            name=example_container.name
).apply(lambda resolved_outputs: f"{resolved_outputs['primary_blob_endpoint']}{resolved_outputs['name']}")
],
    },
    storage_profile_image_reference={
        "publisher": "Canonical",
        "offer": "0001-com-ubuntu-server-jammy",
        "sku": "22_04-lts",
        "version": "latest",
    })
package main
import (
	"fmt"
	"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/network"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/storage"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"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("example-resources"),
			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
		}
		exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
			Name:                   pulumi.String("accsa"),
			ResourceGroupName:      example.Name,
			Location:               example.Location,
			AccountTier:            pulumi.String("Standard"),
			AccountReplicationType: pulumi.String("LRS"),
			Tags: pulumi.StringMap{
				"environment": pulumi.String("staging"),
			},
		})
		if err != nil {
			return err
		}
		exampleContainer, err := storage.NewContainer(ctx, "example", &storage.ContainerArgs{
			Name:                pulumi.String("vhds"),
			StorageAccountName:  exampleAccount.Name,
			ContainerAccessType: pulumi.String("private"),
		})
		if err != nil {
			return err
		}
		invokeFile, err := std.File(ctx, &std.FileArgs{
			Input: "~/.ssh/demo_key.pub",
		}, nil)
		if err != nil {
			return err
		}
		_, err = compute.NewScaleSet(ctx, "example", &compute.ScaleSetArgs{
			Name:              pulumi.String("mytestscaleset-1"),
			Location:          example.Location,
			ResourceGroupName: example.Name,
			UpgradePolicyMode: pulumi.String("Manual"),
			Sku: &compute.ScaleSetSkuArgs{
				Name:     pulumi.String("Standard_F2"),
				Tier:     pulumi.String("Standard"),
				Capacity: pulumi.Int(2),
			},
			OsProfile: &compute.ScaleSetOsProfileArgs{
				ComputerNamePrefix: pulumi.String("testvm"),
				AdminUsername:      pulumi.String("myadmin"),
			},
			OsProfileLinuxConfig: &compute.ScaleSetOsProfileLinuxConfigArgs{
				DisablePasswordAuthentication: pulumi.Bool(true),
				SshKeys: compute.ScaleSetOsProfileLinuxConfigSshKeyArray{
					&compute.ScaleSetOsProfileLinuxConfigSshKeyArgs{
						Path:    pulumi.String("/home/myadmin/.ssh/authorized_keys"),
						KeyData: pulumi.String(invokeFile.Result),
					},
				},
			},
			NetworkProfiles: compute.ScaleSetNetworkProfileArray{
				&compute.ScaleSetNetworkProfileArgs{
					Name:    pulumi.String("TestNetworkProfile"),
					Primary: pulumi.Bool(true),
					IpConfigurations: compute.ScaleSetNetworkProfileIpConfigurationArray{
						&compute.ScaleSetNetworkProfileIpConfigurationArgs{
							Name:     pulumi.String("TestIPConfiguration"),
							Primary:  pulumi.Bool(true),
							SubnetId: exampleSubnet.ID(),
						},
					},
				},
			},
			StorageProfileOsDisk: &compute.ScaleSetStorageProfileOsDiskArgs{
				Name:         pulumi.String("osDiskProfile"),
				Caching:      pulumi.String("ReadWrite"),
				CreateOption: pulumi.String("FromImage"),
				VhdContainers: pulumi.StringArray{
					pulumi.All(exampleAccount.PrimaryBlobEndpoint, exampleContainer.Name).ApplyT(func(_args []interface{}) (string, error) {
						primaryBlobEndpoint := _args[0].(string)
						name := _args[1].(string)
						return fmt.Sprintf("%v%v", primaryBlobEndpoint, name), nil
					}).(pulumi.StringOutput),
				},
			},
			StorageProfileImageReference: &compute.ScaleSetStorageProfileImageReferenceArgs{
				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
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() => 
{
    var example = new Azure.Core.ResourceGroup("example", new()
    {
        Name = "example-resources",
        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 exampleAccount = new Azure.Storage.Account("example", new()
    {
        Name = "accsa",
        ResourceGroupName = example.Name,
        Location = example.Location,
        AccountTier = "Standard",
        AccountReplicationType = "LRS",
        Tags = 
        {
            { "environment", "staging" },
        },
    });
    var exampleContainer = new Azure.Storage.Container("example", new()
    {
        Name = "vhds",
        StorageAccountName = exampleAccount.Name,
        ContainerAccessType = "private",
    });
    var exampleScaleSet = new Azure.Compute.ScaleSet("example", new()
    {
        Name = "mytestscaleset-1",
        Location = example.Location,
        ResourceGroupName = example.Name,
        UpgradePolicyMode = "Manual",
        Sku = new Azure.Compute.Inputs.ScaleSetSkuArgs
        {
            Name = "Standard_F2",
            Tier = "Standard",
            Capacity = 2,
        },
        OsProfile = new Azure.Compute.Inputs.ScaleSetOsProfileArgs
        {
            ComputerNamePrefix = "testvm",
            AdminUsername = "myadmin",
        },
        OsProfileLinuxConfig = new Azure.Compute.Inputs.ScaleSetOsProfileLinuxConfigArgs
        {
            DisablePasswordAuthentication = true,
            SshKeys = new[]
            {
                new Azure.Compute.Inputs.ScaleSetOsProfileLinuxConfigSshKeyArgs
                {
                    Path = "/home/myadmin/.ssh/authorized_keys",
                    KeyData = Std.File.Invoke(new()
                    {
                        Input = "~/.ssh/demo_key.pub",
                    }).Apply(invoke => invoke.Result),
                },
            },
        },
        NetworkProfiles = new[]
        {
            new Azure.Compute.Inputs.ScaleSetNetworkProfileArgs
            {
                Name = "TestNetworkProfile",
                Primary = true,
                IpConfigurations = new[]
                {
                    new Azure.Compute.Inputs.ScaleSetNetworkProfileIpConfigurationArgs
                    {
                        Name = "TestIPConfiguration",
                        Primary = true,
                        SubnetId = exampleSubnet.Id,
                    },
                },
            },
        },
        StorageProfileOsDisk = new Azure.Compute.Inputs.ScaleSetStorageProfileOsDiskArgs
        {
            Name = "osDiskProfile",
            Caching = "ReadWrite",
            CreateOption = "FromImage",
            VhdContainers = new[]
            {
                Output.Tuple(exampleAccount.PrimaryBlobEndpoint, exampleContainer.Name).Apply(values =>
                {
                    var primaryBlobEndpoint = values.Item1;
                    var name = values.Item2;
                    return $"{primaryBlobEndpoint}{name}";
                }),
            },
        },
        StorageProfileImageReference = new Azure.Compute.Inputs.ScaleSetStorageProfileImageReferenceArgs
        {
            Publisher = "Canonical",
            Offer = "0001-com-ubuntu-server-jammy",
            Sku = "22_04-lts",
            Version = "latest",
        },
    });
});
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.storage.Account;
import com.pulumi.azure.storage.AccountArgs;
import com.pulumi.azure.storage.Container;
import com.pulumi.azure.storage.ContainerArgs;
import com.pulumi.azure.compute.ScaleSet;
import com.pulumi.azure.compute.ScaleSetArgs;
import com.pulumi.azure.compute.inputs.ScaleSetSkuArgs;
import com.pulumi.azure.compute.inputs.ScaleSetOsProfileArgs;
import com.pulumi.azure.compute.inputs.ScaleSetOsProfileLinuxConfigArgs;
import com.pulumi.azure.compute.inputs.ScaleSetNetworkProfileArgs;
import com.pulumi.azure.compute.inputs.ScaleSetStorageProfileOsDiskArgs;
import com.pulumi.azure.compute.inputs.ScaleSetStorageProfileImageReferenceArgs;
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("example-resources")
            .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 exampleAccount = new Account("exampleAccount", AccountArgs.builder()
            .name("accsa")
            .resourceGroupName(example.name())
            .location(example.location())
            .accountTier("Standard")
            .accountReplicationType("LRS")
            .tags(Map.of("environment", "staging"))
            .build());
        var exampleContainer = new Container("exampleContainer", ContainerArgs.builder()
            .name("vhds")
            .storageAccountName(exampleAccount.name())
            .containerAccessType("private")
            .build());
        var exampleScaleSet = new ScaleSet("exampleScaleSet", ScaleSetArgs.builder()
            .name("mytestscaleset-1")
            .location(example.location())
            .resourceGroupName(example.name())
            .upgradePolicyMode("Manual")
            .sku(ScaleSetSkuArgs.builder()
                .name("Standard_F2")
                .tier("Standard")
                .capacity(2)
                .build())
            .osProfile(ScaleSetOsProfileArgs.builder()
                .computerNamePrefix("testvm")
                .adminUsername("myadmin")
                .build())
            .osProfileLinuxConfig(ScaleSetOsProfileLinuxConfigArgs.builder()
                .disablePasswordAuthentication(true)
                .sshKeys(ScaleSetOsProfileLinuxConfigSshKeyArgs.builder()
                    .path("/home/myadmin/.ssh/authorized_keys")
                    .keyData(StdFunctions.file(FileArgs.builder()
                        .input("~/.ssh/demo_key.pub")
                        .build()).result())
                    .build())
                .build())
            .networkProfiles(ScaleSetNetworkProfileArgs.builder()
                .name("TestNetworkProfile")
                .primary(true)
                .ipConfigurations(ScaleSetNetworkProfileIpConfigurationArgs.builder()
                    .name("TestIPConfiguration")
                    .primary(true)
                    .subnetId(exampleSubnet.id())
                    .build())
                .build())
            .storageProfileOsDisk(ScaleSetStorageProfileOsDiskArgs.builder()
                .name("osDiskProfile")
                .caching("ReadWrite")
                .createOption("FromImage")
                .vhdContainers(Output.tuple(exampleAccount.primaryBlobEndpoint(), exampleContainer.name()).applyValue(values -> {
                    var primaryBlobEndpoint = values.t1;
                    var name = values.t2;
                    return String.format("%s%s", primaryBlobEndpoint,name);
                }))
                .build())
            .storageProfileImageReference(ScaleSetStorageProfileImageReferenceArgs.builder()
                .publisher("Canonical")
                .offer("0001-com-ubuntu-server-jammy")
                .sku("22_04-lts")
                .version("latest")
                .build())
            .build());
    }
}
resources:
  example:
    type: azure:core:ResourceGroup
    properties:
      name: example-resources
      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
  exampleAccount:
    type: azure:storage:Account
    name: example
    properties:
      name: accsa
      resourceGroupName: ${example.name}
      location: ${example.location}
      accountTier: Standard
      accountReplicationType: LRS
      tags:
        environment: staging
  exampleContainer:
    type: azure:storage:Container
    name: example
    properties:
      name: vhds
      storageAccountName: ${exampleAccount.name}
      containerAccessType: private
  exampleScaleSet:
    type: azure:compute:ScaleSet
    name: example
    properties:
      name: mytestscaleset-1
      location: ${example.location}
      resourceGroupName: ${example.name}
      upgradePolicyMode: Manual
      sku:
        name: Standard_F2
        tier: Standard
        capacity: 2
      osProfile:
        computerNamePrefix: testvm
        adminUsername: myadmin
      osProfileLinuxConfig:
        disablePasswordAuthentication: true
        sshKeys:
          - path: /home/myadmin/.ssh/authorized_keys
            keyData:
              fn::invoke:
                function: std:file
                arguments:
                  input: ~/.ssh/demo_key.pub
                return: result
      networkProfiles:
        - name: TestNetworkProfile
          primary: true
          ipConfigurations:
            - name: TestIPConfiguration
              primary: true
              subnetId: ${exampleSubnet.id}
      storageProfileOsDisk:
        name: osDiskProfile
        caching: ReadWrite
        createOption: FromImage
        vhdContainers:
          - ${exampleAccount.primaryBlobEndpoint}${exampleContainer.name}
      storageProfileImageReference:
        publisher: Canonical
        offer: 0001-com-ubuntu-server-jammy
        sku: 22_04-lts
        version: latest
Example of storage_profile_image_reference with id
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.compute.Image("example", {name: "test"});
const exampleScaleSet = new azure.compute.ScaleSet("example", {
    name: "test",
    storageProfileImageReference: {
        id: example.id,
    },
});
import pulumi
import pulumi_azure as azure
example = azure.compute.Image("example", name="test")
example_scale_set = azure.compute.ScaleSet("example",
    name="test",
    storage_profile_image_reference={
        "id": example.id,
    })
package main
import (
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := compute.NewImage(ctx, "example", &compute.ImageArgs{
			Name: pulumi.String("test"),
		})
		if err != nil {
			return err
		}
		_, err = compute.NewScaleSet(ctx, "example", &compute.ScaleSetArgs{
			Name: pulumi.String("test"),
			StorageProfileImageReference: &compute.ScaleSetStorageProfileImageReferenceArgs{
				Id: example.ID(),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() => 
{
    var example = new Azure.Compute.Image("example", new()
    {
        Name = "test",
    });
    var exampleScaleSet = new Azure.Compute.ScaleSet("example", new()
    {
        Name = "test",
        StorageProfileImageReference = new Azure.Compute.Inputs.ScaleSetStorageProfileImageReferenceArgs
        {
            Id = example.Id,
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.compute.Image;
import com.pulumi.azure.compute.ImageArgs;
import com.pulumi.azure.compute.ScaleSet;
import com.pulumi.azure.compute.ScaleSetArgs;
import com.pulumi.azure.compute.inputs.ScaleSetStorageProfileImageReferenceArgs;
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 Image("example", ImageArgs.builder()
            .name("test")
            .build());
        var exampleScaleSet = new ScaleSet("exampleScaleSet", ScaleSetArgs.builder()
            .name("test")
            .storageProfileImageReference(ScaleSetStorageProfileImageReferenceArgs.builder()
                .id(example.id())
                .build())
            .build());
    }
}
resources:
  example:
    type: azure:compute:Image
    properties:
      name: test
  exampleScaleSet:
    type: azure:compute:ScaleSet
    name: example
    properties:
      name: test
      storageProfileImageReference:
        id: ${example.id}
Create ScaleSet Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new ScaleSet(name: string, args: ScaleSetArgs, opts?: CustomResourceOptions);@overload
def ScaleSet(resource_name: str,
             args: ScaleSetArgs,
             opts: Optional[ResourceOptions] = None)
@overload
def ScaleSet(resource_name: str,
             opts: Optional[ResourceOptions] = None,
             network_profiles: Optional[Sequence[ScaleSetNetworkProfileArgs]] = None,
             upgrade_policy_mode: Optional[str] = None,
             storage_profile_os_disk: Optional[ScaleSetStorageProfileOsDiskArgs] = None,
             sku: Optional[ScaleSetSkuArgs] = None,
             resource_group_name: Optional[str] = None,
             os_profile: Optional[ScaleSetOsProfileArgs] = None,
             location: Optional[str] = None,
             proximity_placement_group_id: Optional[str] = None,
             name: Optional[str] = None,
             license_type: Optional[str] = None,
             identity: Optional[ScaleSetIdentityArgs] = None,
             os_profile_linux_config: Optional[ScaleSetOsProfileLinuxConfigArgs] = None,
             os_profile_secrets: Optional[Sequence[ScaleSetOsProfileSecretArgs]] = None,
             os_profile_windows_config: Optional[ScaleSetOsProfileWindowsConfigArgs] = None,
             overprovision: Optional[bool] = None,
             plan: Optional[ScaleSetPlanArgs] = None,
             priority: Optional[str] = None,
             automatic_os_upgrade: Optional[bool] = None,
             health_probe_id: Optional[str] = None,
             rolling_upgrade_policy: Optional[ScaleSetRollingUpgradePolicyArgs] = None,
             single_placement_group: Optional[bool] = None,
             extensions: Optional[Sequence[ScaleSetExtensionArgs]] = None,
             storage_profile_data_disks: Optional[Sequence[ScaleSetStorageProfileDataDiskArgs]] = None,
             storage_profile_image_reference: Optional[ScaleSetStorageProfileImageReferenceArgs] = None,
             eviction_policy: Optional[str] = None,
             tags: Optional[Mapping[str, str]] = None,
             boot_diagnostics: Optional[ScaleSetBootDiagnosticsArgs] = None,
             zones: Optional[Sequence[str]] = None)func NewScaleSet(ctx *Context, name string, args ScaleSetArgs, opts ...ResourceOption) (*ScaleSet, error)public ScaleSet(string name, ScaleSetArgs args, CustomResourceOptions? opts = null)
public ScaleSet(String name, ScaleSetArgs args)
public ScaleSet(String name, ScaleSetArgs args, CustomResourceOptions options)
type: azure:compute:ScaleSet
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args ScaleSetArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args ScaleSetArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args ScaleSetArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ScaleSetArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ScaleSetArgs
- 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 scaleSetResource = new Azure.Compute.ScaleSet("scaleSetResource", new()
{
    NetworkProfiles = new[]
    {
        new Azure.Compute.Inputs.ScaleSetNetworkProfileArgs
        {
            IpConfigurations = new[]
            {
                new Azure.Compute.Inputs.ScaleSetNetworkProfileIpConfigurationArgs
                {
                    Name = "string",
                    Primary = false,
                    SubnetId = "string",
                    ApplicationGatewayBackendAddressPoolIds = new[]
                    {
                        "string",
                    },
                    ApplicationSecurityGroupIds = new[]
                    {
                        "string",
                    },
                    LoadBalancerBackendAddressPoolIds = new[]
                    {
                        "string",
                    },
                    LoadBalancerInboundNatRulesIds = new[]
                    {
                        "string",
                    },
                    PublicIpAddressConfiguration = new Azure.Compute.Inputs.ScaleSetNetworkProfileIpConfigurationPublicIpAddressConfigurationArgs
                    {
                        DomainNameLabel = "string",
                        IdleTimeout = 0,
                        Name = "string",
                    },
                },
            },
            Name = "string",
            Primary = false,
            AcceleratedNetworking = false,
            DnsSettings = new Azure.Compute.Inputs.ScaleSetNetworkProfileDnsSettingsArgs
            {
                DnsServers = new[]
                {
                    "string",
                },
            },
            IpForwarding = false,
            NetworkSecurityGroupId = "string",
        },
    },
    UpgradePolicyMode = "string",
    StorageProfileOsDisk = new Azure.Compute.Inputs.ScaleSetStorageProfileOsDiskArgs
    {
        CreateOption = "string",
        Caching = "string",
        Image = "string",
        ManagedDiskType = "string",
        Name = "string",
        OsType = "string",
        VhdContainers = new[]
        {
            "string",
        },
    },
    Sku = new Azure.Compute.Inputs.ScaleSetSkuArgs
    {
        Capacity = 0,
        Name = "string",
        Tier = "string",
    },
    ResourceGroupName = "string",
    OsProfile = new Azure.Compute.Inputs.ScaleSetOsProfileArgs
    {
        AdminUsername = "string",
        ComputerNamePrefix = "string",
        AdminPassword = "string",
        CustomData = "string",
    },
    Location = "string",
    ProximityPlacementGroupId = "string",
    Name = "string",
    LicenseType = "string",
    Identity = new Azure.Compute.Inputs.ScaleSetIdentityArgs
    {
        Type = "string",
        IdentityIds = new[]
        {
            "string",
        },
        PrincipalId = "string",
        TenantId = "string",
    },
    OsProfileLinuxConfig = new Azure.Compute.Inputs.ScaleSetOsProfileLinuxConfigArgs
    {
        DisablePasswordAuthentication = false,
        SshKeys = new[]
        {
            new Azure.Compute.Inputs.ScaleSetOsProfileLinuxConfigSshKeyArgs
            {
                Path = "string",
                KeyData = "string",
            },
        },
    },
    OsProfileSecrets = new[]
    {
        new Azure.Compute.Inputs.ScaleSetOsProfileSecretArgs
        {
            SourceVaultId = "string",
            VaultCertificates = new[]
            {
                new Azure.Compute.Inputs.ScaleSetOsProfileSecretVaultCertificateArgs
                {
                    CertificateUrl = "string",
                    CertificateStore = "string",
                },
            },
        },
    },
    OsProfileWindowsConfig = new Azure.Compute.Inputs.ScaleSetOsProfileWindowsConfigArgs
    {
        AdditionalUnattendConfigs = new[]
        {
            new Azure.Compute.Inputs.ScaleSetOsProfileWindowsConfigAdditionalUnattendConfigArgs
            {
                Component = "string",
                Content = "string",
                Pass = "string",
                SettingName = "string",
            },
        },
        EnableAutomaticUpgrades = false,
        ProvisionVmAgent = false,
        Winrms = new[]
        {
            new Azure.Compute.Inputs.ScaleSetOsProfileWindowsConfigWinrmArgs
            {
                Protocol = "string",
                CertificateUrl = "string",
            },
        },
    },
    Overprovision = false,
    Plan = new Azure.Compute.Inputs.ScaleSetPlanArgs
    {
        Name = "string",
        Product = "string",
        Publisher = "string",
    },
    Priority = "string",
    AutomaticOsUpgrade = false,
    HealthProbeId = "string",
    RollingUpgradePolicy = new Azure.Compute.Inputs.ScaleSetRollingUpgradePolicyArgs
    {
        MaxBatchInstancePercent = 0,
        MaxUnhealthyInstancePercent = 0,
        MaxUnhealthyUpgradedInstancePercent = 0,
        PauseTimeBetweenBatches = "string",
    },
    SinglePlacementGroup = false,
    Extensions = new[]
    {
        new Azure.Compute.Inputs.ScaleSetExtensionArgs
        {
            Name = "string",
            Publisher = "string",
            Type = "string",
            TypeHandlerVersion = "string",
            AutoUpgradeMinorVersion = false,
            ProtectedSettings = "string",
            ProvisionAfterExtensions = new[]
            {
                "string",
            },
            Settings = "string",
        },
    },
    StorageProfileDataDisks = new[]
    {
        new Azure.Compute.Inputs.ScaleSetStorageProfileDataDiskArgs
        {
            CreateOption = "string",
            Lun = 0,
            Caching = "string",
            DiskSizeGb = 0,
            ManagedDiskType = "string",
        },
    },
    StorageProfileImageReference = new Azure.Compute.Inputs.ScaleSetStorageProfileImageReferenceArgs
    {
        Id = "string",
        Offer = "string",
        Publisher = "string",
        Sku = "string",
        Version = "string",
    },
    EvictionPolicy = "string",
    Tags = 
    {
        { "string", "string" },
    },
    BootDiagnostics = new Azure.Compute.Inputs.ScaleSetBootDiagnosticsArgs
    {
        StorageUri = "string",
        Enabled = false,
    },
    Zones = new[]
    {
        "string",
    },
});
example, err := compute.NewScaleSet(ctx, "scaleSetResource", &compute.ScaleSetArgs{
	NetworkProfiles: compute.ScaleSetNetworkProfileArray{
		&compute.ScaleSetNetworkProfileArgs{
			IpConfigurations: compute.ScaleSetNetworkProfileIpConfigurationArray{
				&compute.ScaleSetNetworkProfileIpConfigurationArgs{
					Name:     pulumi.String("string"),
					Primary:  pulumi.Bool(false),
					SubnetId: pulumi.String("string"),
					ApplicationGatewayBackendAddressPoolIds: pulumi.StringArray{
						pulumi.String("string"),
					},
					ApplicationSecurityGroupIds: pulumi.StringArray{
						pulumi.String("string"),
					},
					LoadBalancerBackendAddressPoolIds: pulumi.StringArray{
						pulumi.String("string"),
					},
					LoadBalancerInboundNatRulesIds: pulumi.StringArray{
						pulumi.String("string"),
					},
					PublicIpAddressConfiguration: &compute.ScaleSetNetworkProfileIpConfigurationPublicIpAddressConfigurationArgs{
						DomainNameLabel: pulumi.String("string"),
						IdleTimeout:     pulumi.Int(0),
						Name:            pulumi.String("string"),
					},
				},
			},
			Name:                  pulumi.String("string"),
			Primary:               pulumi.Bool(false),
			AcceleratedNetworking: pulumi.Bool(false),
			DnsSettings: &compute.ScaleSetNetworkProfileDnsSettingsArgs{
				DnsServers: pulumi.StringArray{
					pulumi.String("string"),
				},
			},
			IpForwarding:           pulumi.Bool(false),
			NetworkSecurityGroupId: pulumi.String("string"),
		},
	},
	UpgradePolicyMode: pulumi.String("string"),
	StorageProfileOsDisk: &compute.ScaleSetStorageProfileOsDiskArgs{
		CreateOption:    pulumi.String("string"),
		Caching:         pulumi.String("string"),
		Image:           pulumi.String("string"),
		ManagedDiskType: pulumi.String("string"),
		Name:            pulumi.String("string"),
		OsType:          pulumi.String("string"),
		VhdContainers: pulumi.StringArray{
			pulumi.String("string"),
		},
	},
	Sku: &compute.ScaleSetSkuArgs{
		Capacity: pulumi.Int(0),
		Name:     pulumi.String("string"),
		Tier:     pulumi.String("string"),
	},
	ResourceGroupName: pulumi.String("string"),
	OsProfile: &compute.ScaleSetOsProfileArgs{
		AdminUsername:      pulumi.String("string"),
		ComputerNamePrefix: pulumi.String("string"),
		AdminPassword:      pulumi.String("string"),
		CustomData:         pulumi.String("string"),
	},
	Location:                  pulumi.String("string"),
	ProximityPlacementGroupId: pulumi.String("string"),
	Name:                      pulumi.String("string"),
	LicenseType:               pulumi.String("string"),
	Identity: &compute.ScaleSetIdentityArgs{
		Type: pulumi.String("string"),
		IdentityIds: pulumi.StringArray{
			pulumi.String("string"),
		},
		PrincipalId: pulumi.String("string"),
		TenantId:    pulumi.String("string"),
	},
	OsProfileLinuxConfig: &compute.ScaleSetOsProfileLinuxConfigArgs{
		DisablePasswordAuthentication: pulumi.Bool(false),
		SshKeys: compute.ScaleSetOsProfileLinuxConfigSshKeyArray{
			&compute.ScaleSetOsProfileLinuxConfigSshKeyArgs{
				Path:    pulumi.String("string"),
				KeyData: pulumi.String("string"),
			},
		},
	},
	OsProfileSecrets: compute.ScaleSetOsProfileSecretArray{
		&compute.ScaleSetOsProfileSecretArgs{
			SourceVaultId: pulumi.String("string"),
			VaultCertificates: compute.ScaleSetOsProfileSecretVaultCertificateArray{
				&compute.ScaleSetOsProfileSecretVaultCertificateArgs{
					CertificateUrl:   pulumi.String("string"),
					CertificateStore: pulumi.String("string"),
				},
			},
		},
	},
	OsProfileWindowsConfig: &compute.ScaleSetOsProfileWindowsConfigArgs{
		AdditionalUnattendConfigs: compute.ScaleSetOsProfileWindowsConfigAdditionalUnattendConfigArray{
			&compute.ScaleSetOsProfileWindowsConfigAdditionalUnattendConfigArgs{
				Component:   pulumi.String("string"),
				Content:     pulumi.String("string"),
				Pass:        pulumi.String("string"),
				SettingName: pulumi.String("string"),
			},
		},
		EnableAutomaticUpgrades: pulumi.Bool(false),
		ProvisionVmAgent:        pulumi.Bool(false),
		Winrms: compute.ScaleSetOsProfileWindowsConfigWinrmArray{
			&compute.ScaleSetOsProfileWindowsConfigWinrmArgs{
				Protocol:       pulumi.String("string"),
				CertificateUrl: pulumi.String("string"),
			},
		},
	},
	Overprovision: pulumi.Bool(false),
	Plan: &compute.ScaleSetPlanArgs{
		Name:      pulumi.String("string"),
		Product:   pulumi.String("string"),
		Publisher: pulumi.String("string"),
	},
	Priority:           pulumi.String("string"),
	AutomaticOsUpgrade: pulumi.Bool(false),
	HealthProbeId:      pulumi.String("string"),
	RollingUpgradePolicy: &compute.ScaleSetRollingUpgradePolicyArgs{
		MaxBatchInstancePercent:             pulumi.Int(0),
		MaxUnhealthyInstancePercent:         pulumi.Int(0),
		MaxUnhealthyUpgradedInstancePercent: pulumi.Int(0),
		PauseTimeBetweenBatches:             pulumi.String("string"),
	},
	SinglePlacementGroup: pulumi.Bool(false),
	Extensions: compute.ScaleSetExtensionArray{
		&compute.ScaleSetExtensionArgs{
			Name:                    pulumi.String("string"),
			Publisher:               pulumi.String("string"),
			Type:                    pulumi.String("string"),
			TypeHandlerVersion:      pulumi.String("string"),
			AutoUpgradeMinorVersion: pulumi.Bool(false),
			ProtectedSettings:       pulumi.String("string"),
			ProvisionAfterExtensions: pulumi.StringArray{
				pulumi.String("string"),
			},
			Settings: pulumi.String("string"),
		},
	},
	StorageProfileDataDisks: compute.ScaleSetStorageProfileDataDiskArray{
		&compute.ScaleSetStorageProfileDataDiskArgs{
			CreateOption:    pulumi.String("string"),
			Lun:             pulumi.Int(0),
			Caching:         pulumi.String("string"),
			DiskSizeGb:      pulumi.Int(0),
			ManagedDiskType: pulumi.String("string"),
		},
	},
	StorageProfileImageReference: &compute.ScaleSetStorageProfileImageReferenceArgs{
		Id:        pulumi.String("string"),
		Offer:     pulumi.String("string"),
		Publisher: pulumi.String("string"),
		Sku:       pulumi.String("string"),
		Version:   pulumi.String("string"),
	},
	EvictionPolicy: pulumi.String("string"),
	Tags: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	BootDiagnostics: &compute.ScaleSetBootDiagnosticsArgs{
		StorageUri: pulumi.String("string"),
		Enabled:    pulumi.Bool(false),
	},
	Zones: pulumi.StringArray{
		pulumi.String("string"),
	},
})
var scaleSetResource = new ScaleSet("scaleSetResource", ScaleSetArgs.builder()
    .networkProfiles(ScaleSetNetworkProfileArgs.builder()
        .ipConfigurations(ScaleSetNetworkProfileIpConfigurationArgs.builder()
            .name("string")
            .primary(false)
            .subnetId("string")
            .applicationGatewayBackendAddressPoolIds("string")
            .applicationSecurityGroupIds("string")
            .loadBalancerBackendAddressPoolIds("string")
            .loadBalancerInboundNatRulesIds("string")
            .publicIpAddressConfiguration(ScaleSetNetworkProfileIpConfigurationPublicIpAddressConfigurationArgs.builder()
                .domainNameLabel("string")
                .idleTimeout(0)
                .name("string")
                .build())
            .build())
        .name("string")
        .primary(false)
        .acceleratedNetworking(false)
        .dnsSettings(ScaleSetNetworkProfileDnsSettingsArgs.builder()
            .dnsServers("string")
            .build())
        .ipForwarding(false)
        .networkSecurityGroupId("string")
        .build())
    .upgradePolicyMode("string")
    .storageProfileOsDisk(ScaleSetStorageProfileOsDiskArgs.builder()
        .createOption("string")
        .caching("string")
        .image("string")
        .managedDiskType("string")
        .name("string")
        .osType("string")
        .vhdContainers("string")
        .build())
    .sku(ScaleSetSkuArgs.builder()
        .capacity(0)
        .name("string")
        .tier("string")
        .build())
    .resourceGroupName("string")
    .osProfile(ScaleSetOsProfileArgs.builder()
        .adminUsername("string")
        .computerNamePrefix("string")
        .adminPassword("string")
        .customData("string")
        .build())
    .location("string")
    .proximityPlacementGroupId("string")
    .name("string")
    .licenseType("string")
    .identity(ScaleSetIdentityArgs.builder()
        .type("string")
        .identityIds("string")
        .principalId("string")
        .tenantId("string")
        .build())
    .osProfileLinuxConfig(ScaleSetOsProfileLinuxConfigArgs.builder()
        .disablePasswordAuthentication(false)
        .sshKeys(ScaleSetOsProfileLinuxConfigSshKeyArgs.builder()
            .path("string")
            .keyData("string")
            .build())
        .build())
    .osProfileSecrets(ScaleSetOsProfileSecretArgs.builder()
        .sourceVaultId("string")
        .vaultCertificates(ScaleSetOsProfileSecretVaultCertificateArgs.builder()
            .certificateUrl("string")
            .certificateStore("string")
            .build())
        .build())
    .osProfileWindowsConfig(ScaleSetOsProfileWindowsConfigArgs.builder()
        .additionalUnattendConfigs(ScaleSetOsProfileWindowsConfigAdditionalUnattendConfigArgs.builder()
            .component("string")
            .content("string")
            .pass("string")
            .settingName("string")
            .build())
        .enableAutomaticUpgrades(false)
        .provisionVmAgent(false)
        .winrms(ScaleSetOsProfileWindowsConfigWinrmArgs.builder()
            .protocol("string")
            .certificateUrl("string")
            .build())
        .build())
    .overprovision(false)
    .plan(ScaleSetPlanArgs.builder()
        .name("string")
        .product("string")
        .publisher("string")
        .build())
    .priority("string")
    .automaticOsUpgrade(false)
    .healthProbeId("string")
    .rollingUpgradePolicy(ScaleSetRollingUpgradePolicyArgs.builder()
        .maxBatchInstancePercent(0)
        .maxUnhealthyInstancePercent(0)
        .maxUnhealthyUpgradedInstancePercent(0)
        .pauseTimeBetweenBatches("string")
        .build())
    .singlePlacementGroup(false)
    .extensions(ScaleSetExtensionArgs.builder()
        .name("string")
        .publisher("string")
        .type("string")
        .typeHandlerVersion("string")
        .autoUpgradeMinorVersion(false)
        .protectedSettings("string")
        .provisionAfterExtensions("string")
        .settings("string")
        .build())
    .storageProfileDataDisks(ScaleSetStorageProfileDataDiskArgs.builder()
        .createOption("string")
        .lun(0)
        .caching("string")
        .diskSizeGb(0)
        .managedDiskType("string")
        .build())
    .storageProfileImageReference(ScaleSetStorageProfileImageReferenceArgs.builder()
        .id("string")
        .offer("string")
        .publisher("string")
        .sku("string")
        .version("string")
        .build())
    .evictionPolicy("string")
    .tags(Map.of("string", "string"))
    .bootDiagnostics(ScaleSetBootDiagnosticsArgs.builder()
        .storageUri("string")
        .enabled(false)
        .build())
    .zones("string")
    .build());
scale_set_resource = azure.compute.ScaleSet("scaleSetResource",
    network_profiles=[{
        "ip_configurations": [{
            "name": "string",
            "primary": False,
            "subnet_id": "string",
            "application_gateway_backend_address_pool_ids": ["string"],
            "application_security_group_ids": ["string"],
            "load_balancer_backend_address_pool_ids": ["string"],
            "load_balancer_inbound_nat_rules_ids": ["string"],
            "public_ip_address_configuration": {
                "domain_name_label": "string",
                "idle_timeout": 0,
                "name": "string",
            },
        }],
        "name": "string",
        "primary": False,
        "accelerated_networking": False,
        "dns_settings": {
            "dns_servers": ["string"],
        },
        "ip_forwarding": False,
        "network_security_group_id": "string",
    }],
    upgrade_policy_mode="string",
    storage_profile_os_disk={
        "create_option": "string",
        "caching": "string",
        "image": "string",
        "managed_disk_type": "string",
        "name": "string",
        "os_type": "string",
        "vhd_containers": ["string"],
    },
    sku={
        "capacity": 0,
        "name": "string",
        "tier": "string",
    },
    resource_group_name="string",
    os_profile={
        "admin_username": "string",
        "computer_name_prefix": "string",
        "admin_password": "string",
        "custom_data": "string",
    },
    location="string",
    proximity_placement_group_id="string",
    name="string",
    license_type="string",
    identity={
        "type": "string",
        "identity_ids": ["string"],
        "principal_id": "string",
        "tenant_id": "string",
    },
    os_profile_linux_config={
        "disable_password_authentication": False,
        "ssh_keys": [{
            "path": "string",
            "key_data": "string",
        }],
    },
    os_profile_secrets=[{
        "source_vault_id": "string",
        "vault_certificates": [{
            "certificate_url": "string",
            "certificate_store": "string",
        }],
    }],
    os_profile_windows_config={
        "additional_unattend_configs": [{
            "component": "string",
            "content": "string",
            "pass_": "string",
            "setting_name": "string",
        }],
        "enable_automatic_upgrades": False,
        "provision_vm_agent": False,
        "winrms": [{
            "protocol": "string",
            "certificate_url": "string",
        }],
    },
    overprovision=False,
    plan={
        "name": "string",
        "product": "string",
        "publisher": "string",
    },
    priority="string",
    automatic_os_upgrade=False,
    health_probe_id="string",
    rolling_upgrade_policy={
        "max_batch_instance_percent": 0,
        "max_unhealthy_instance_percent": 0,
        "max_unhealthy_upgraded_instance_percent": 0,
        "pause_time_between_batches": "string",
    },
    single_placement_group=False,
    extensions=[{
        "name": "string",
        "publisher": "string",
        "type": "string",
        "type_handler_version": "string",
        "auto_upgrade_minor_version": False,
        "protected_settings": "string",
        "provision_after_extensions": ["string"],
        "settings": "string",
    }],
    storage_profile_data_disks=[{
        "create_option": "string",
        "lun": 0,
        "caching": "string",
        "disk_size_gb": 0,
        "managed_disk_type": "string",
    }],
    storage_profile_image_reference={
        "id": "string",
        "offer": "string",
        "publisher": "string",
        "sku": "string",
        "version": "string",
    },
    eviction_policy="string",
    tags={
        "string": "string",
    },
    boot_diagnostics={
        "storage_uri": "string",
        "enabled": False,
    },
    zones=["string"])
const scaleSetResource = new azure.compute.ScaleSet("scaleSetResource", {
    networkProfiles: [{
        ipConfigurations: [{
            name: "string",
            primary: false,
            subnetId: "string",
            applicationGatewayBackendAddressPoolIds: ["string"],
            applicationSecurityGroupIds: ["string"],
            loadBalancerBackendAddressPoolIds: ["string"],
            loadBalancerInboundNatRulesIds: ["string"],
            publicIpAddressConfiguration: {
                domainNameLabel: "string",
                idleTimeout: 0,
                name: "string",
            },
        }],
        name: "string",
        primary: false,
        acceleratedNetworking: false,
        dnsSettings: {
            dnsServers: ["string"],
        },
        ipForwarding: false,
        networkSecurityGroupId: "string",
    }],
    upgradePolicyMode: "string",
    storageProfileOsDisk: {
        createOption: "string",
        caching: "string",
        image: "string",
        managedDiskType: "string",
        name: "string",
        osType: "string",
        vhdContainers: ["string"],
    },
    sku: {
        capacity: 0,
        name: "string",
        tier: "string",
    },
    resourceGroupName: "string",
    osProfile: {
        adminUsername: "string",
        computerNamePrefix: "string",
        adminPassword: "string",
        customData: "string",
    },
    location: "string",
    proximityPlacementGroupId: "string",
    name: "string",
    licenseType: "string",
    identity: {
        type: "string",
        identityIds: ["string"],
        principalId: "string",
        tenantId: "string",
    },
    osProfileLinuxConfig: {
        disablePasswordAuthentication: false,
        sshKeys: [{
            path: "string",
            keyData: "string",
        }],
    },
    osProfileSecrets: [{
        sourceVaultId: "string",
        vaultCertificates: [{
            certificateUrl: "string",
            certificateStore: "string",
        }],
    }],
    osProfileWindowsConfig: {
        additionalUnattendConfigs: [{
            component: "string",
            content: "string",
            pass: "string",
            settingName: "string",
        }],
        enableAutomaticUpgrades: false,
        provisionVmAgent: false,
        winrms: [{
            protocol: "string",
            certificateUrl: "string",
        }],
    },
    overprovision: false,
    plan: {
        name: "string",
        product: "string",
        publisher: "string",
    },
    priority: "string",
    automaticOsUpgrade: false,
    healthProbeId: "string",
    rollingUpgradePolicy: {
        maxBatchInstancePercent: 0,
        maxUnhealthyInstancePercent: 0,
        maxUnhealthyUpgradedInstancePercent: 0,
        pauseTimeBetweenBatches: "string",
    },
    singlePlacementGroup: false,
    extensions: [{
        name: "string",
        publisher: "string",
        type: "string",
        typeHandlerVersion: "string",
        autoUpgradeMinorVersion: false,
        protectedSettings: "string",
        provisionAfterExtensions: ["string"],
        settings: "string",
    }],
    storageProfileDataDisks: [{
        createOption: "string",
        lun: 0,
        caching: "string",
        diskSizeGb: 0,
        managedDiskType: "string",
    }],
    storageProfileImageReference: {
        id: "string",
        offer: "string",
        publisher: "string",
        sku: "string",
        version: "string",
    },
    evictionPolicy: "string",
    tags: {
        string: "string",
    },
    bootDiagnostics: {
        storageUri: "string",
        enabled: false,
    },
    zones: ["string"],
});
type: azure:compute:ScaleSet
properties:
    automaticOsUpgrade: false
    bootDiagnostics:
        enabled: false
        storageUri: string
    evictionPolicy: string
    extensions:
        - autoUpgradeMinorVersion: false
          name: string
          protectedSettings: string
          provisionAfterExtensions:
            - string
          publisher: string
          settings: string
          type: string
          typeHandlerVersion: string
    healthProbeId: string
    identity:
        identityIds:
            - string
        principalId: string
        tenantId: string
        type: string
    licenseType: string
    location: string
    name: string
    networkProfiles:
        - acceleratedNetworking: false
          dnsSettings:
            dnsServers:
                - string
          ipConfigurations:
            - applicationGatewayBackendAddressPoolIds:
                - string
              applicationSecurityGroupIds:
                - string
              loadBalancerBackendAddressPoolIds:
                - string
              loadBalancerInboundNatRulesIds:
                - string
              name: string
              primary: false
              publicIpAddressConfiguration:
                domainNameLabel: string
                idleTimeout: 0
                name: string
              subnetId: string
          ipForwarding: false
          name: string
          networkSecurityGroupId: string
          primary: false
    osProfile:
        adminPassword: string
        adminUsername: string
        computerNamePrefix: string
        customData: string
    osProfileLinuxConfig:
        disablePasswordAuthentication: false
        sshKeys:
            - keyData: string
              path: string
    osProfileSecrets:
        - sourceVaultId: string
          vaultCertificates:
            - certificateStore: string
              certificateUrl: string
    osProfileWindowsConfig:
        additionalUnattendConfigs:
            - component: string
              content: string
              pass: string
              settingName: string
        enableAutomaticUpgrades: false
        provisionVmAgent: false
        winrms:
            - certificateUrl: string
              protocol: string
    overprovision: false
    plan:
        name: string
        product: string
        publisher: string
    priority: string
    proximityPlacementGroupId: string
    resourceGroupName: string
    rollingUpgradePolicy:
        maxBatchInstancePercent: 0
        maxUnhealthyInstancePercent: 0
        maxUnhealthyUpgradedInstancePercent: 0
        pauseTimeBetweenBatches: string
    singlePlacementGroup: false
    sku:
        capacity: 0
        name: string
        tier: string
    storageProfileDataDisks:
        - caching: string
          createOption: string
          diskSizeGb: 0
          lun: 0
          managedDiskType: string
    storageProfileImageReference:
        id: string
        offer: string
        publisher: string
        sku: string
        version: string
    storageProfileOsDisk:
        caching: string
        createOption: string
        image: string
        managedDiskType: string
        name: string
        osType: string
        vhdContainers:
            - string
    tags:
        string: string
    upgradePolicyMode: string
    zones:
        - string
ScaleSet 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 ScaleSet resource accepts the following input properties:
- NetworkProfiles List<ScaleSet Network Profile> 
- A collection of network_profileblocks as documented below.
- OsProfile ScaleSet Os Profile 
- A os_profileblock as documented below.
- ResourceGroup stringName 
- The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
- Sku
ScaleSet Sku 
- A skublock as documented below.
- StorageProfile ScaleOs Disk Set Storage Profile Os Disk 
- A storage_profile_os_diskblock as documented below.
- UpgradePolicy stringMode 
- Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling,Manual, orAutomatic. When choosingRolling, you will need to set a health probe.
- AutomaticOs boolUpgrade 
- Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_modeis set toRolling. Defaults tofalse.
- BootDiagnostics ScaleSet Boot Diagnostics 
- A boot_diagnosticsblock as referenced below.
- EvictionPolicy string
- Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are - Deallocateand- Delete. Changing this forces a new resource to be created.- NOTE: - eviction_policycan only be set when- priorityis set to- Low.
- Extensions
List<ScaleSet Extension> 
- Can be specified multiple times to add extension profiles to the scale set. Each extensionblock supports the fields documented below.
- HealthProbe stringId 
- Specifies the identifier for the load balancer health probe. Required when using Rollingas yourupgrade_policy_mode.
- Identity
ScaleSet Identity 
- An identityblock as defined below.
- LicenseType string
- (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are Windows_ClientandWindows_Server.
- Location string
- Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
- Name string
- Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
- OsProfile ScaleLinux Config Set Os Profile Linux Config 
- A os_profile_linux_configblock as documented below.
- OsProfile List<ScaleSecrets Set Os Profile Secret> 
- A collection of os_profile_secretsblocks as documented below.
- OsProfile ScaleWindows Config Set Os Profile Windows Config 
- A os_profile_windows_configblock as documented below.
- Overprovision bool
- Specifies whether the virtual machine scale set should be overprovisioned. Defaults to true.
- Plan
ScaleSet Plan 
- A planblock as documented below.
- Priority string
- Specifies the priority for the Virtual Machines in the Scale Set. Possible values are LowandRegular. Changing this forces a new resource to be created.
- ProximityPlacement stringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- RollingUpgrade ScalePolicy Set Rolling Upgrade Policy 
- A rolling_upgrade_policyblock as defined below. This is only applicable when theupgrade_policy_modeisRolling.
- SinglePlacement boolGroup 
- Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See documentation for more information. Defaults to true.
- StorageProfile List<ScaleData Disks Set Storage Profile Data Disk> 
- A storage_profile_data_diskblock as documented below.
- StorageProfile ScaleImage Reference Set Storage Profile Image Reference 
- A storage_profile_image_referenceblock as documented below.
- Dictionary<string, string>
- A mapping of tags to assign to the resource.
- Zones List<string>
- A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created. - NOTE: Availability Zones are only supported in several regions at this time. 
- NetworkProfiles []ScaleSet Network Profile Args 
- A collection of network_profileblocks as documented below.
- OsProfile ScaleSet Os Profile Args 
- A os_profileblock as documented below.
- ResourceGroup stringName 
- The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
- Sku
ScaleSet Sku Args 
- A skublock as documented below.
- StorageProfile ScaleOs Disk Set Storage Profile Os Disk Args 
- A storage_profile_os_diskblock as documented below.
- UpgradePolicy stringMode 
- Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling,Manual, orAutomatic. When choosingRolling, you will need to set a health probe.
- AutomaticOs boolUpgrade 
- Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_modeis set toRolling. Defaults tofalse.
- BootDiagnostics ScaleSet Boot Diagnostics Args 
- A boot_diagnosticsblock as referenced below.
- EvictionPolicy string
- Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are - Deallocateand- Delete. Changing this forces a new resource to be created.- NOTE: - eviction_policycan only be set when- priorityis set to- Low.
- Extensions
[]ScaleSet Extension Args 
- Can be specified multiple times to add extension profiles to the scale set. Each extensionblock supports the fields documented below.
- HealthProbe stringId 
- Specifies the identifier for the load balancer health probe. Required when using Rollingas yourupgrade_policy_mode.
- Identity
ScaleSet Identity Args 
- An identityblock as defined below.
- LicenseType string
- (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are Windows_ClientandWindows_Server.
- Location string
- Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
- Name string
- Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
- OsProfile ScaleLinux Config Set Os Profile Linux Config Args 
- A os_profile_linux_configblock as documented below.
- OsProfile []ScaleSecrets Set Os Profile Secret Args 
- A collection of os_profile_secretsblocks as documented below.
- OsProfile ScaleWindows Config Set Os Profile Windows Config Args 
- A os_profile_windows_configblock as documented below.
- Overprovision bool
- Specifies whether the virtual machine scale set should be overprovisioned. Defaults to true.
- Plan
ScaleSet Plan Args 
- A planblock as documented below.
- Priority string
- Specifies the priority for the Virtual Machines in the Scale Set. Possible values are LowandRegular. Changing this forces a new resource to be created.
- ProximityPlacement stringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- RollingUpgrade ScalePolicy Set Rolling Upgrade Policy Args 
- A rolling_upgrade_policyblock as defined below. This is only applicable when theupgrade_policy_modeisRolling.
- SinglePlacement boolGroup 
- Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See documentation for more information. Defaults to true.
- StorageProfile []ScaleData Disks Set Storage Profile Data Disk Args 
- A storage_profile_data_diskblock as documented below.
- StorageProfile ScaleImage Reference Set Storage Profile Image Reference Args 
- A storage_profile_image_referenceblock as documented below.
- map[string]string
- A mapping of tags to assign to the resource.
- Zones []string
- A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created. - NOTE: Availability Zones are only supported in several regions at this time. 
- networkProfiles List<ScaleSet Network Profile> 
- A collection of network_profileblocks as documented below.
- osProfile ScaleSet Os Profile 
- A os_profileblock as documented below.
- resourceGroup StringName 
- The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
- sku
ScaleSet Sku 
- A skublock as documented below.
- storageProfile ScaleOs Disk Set Storage Profile Os Disk 
- A storage_profile_os_diskblock as documented below.
- upgradePolicy StringMode 
- Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling,Manual, orAutomatic. When choosingRolling, you will need to set a health probe.
- automaticOs BooleanUpgrade 
- Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_modeis set toRolling. Defaults tofalse.
- bootDiagnostics ScaleSet Boot Diagnostics 
- A boot_diagnosticsblock as referenced below.
- evictionPolicy String
- Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are - Deallocateand- Delete. Changing this forces a new resource to be created.- NOTE: - eviction_policycan only be set when- priorityis set to- Low.
- extensions
List<ScaleSet Extension> 
- Can be specified multiple times to add extension profiles to the scale set. Each extensionblock supports the fields documented below.
- healthProbe StringId 
- Specifies the identifier for the load balancer health probe. Required when using Rollingas yourupgrade_policy_mode.
- identity
ScaleSet Identity 
- An identityblock as defined below.
- licenseType String
- (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are Windows_ClientandWindows_Server.
- location String
- Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
- name String
- Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
- osProfile ScaleLinux Config Set Os Profile Linux Config 
- A os_profile_linux_configblock as documented below.
- osProfile List<ScaleSecrets Set Os Profile Secret> 
- A collection of os_profile_secretsblocks as documented below.
- osProfile ScaleWindows Config Set Os Profile Windows Config 
- A os_profile_windows_configblock as documented below.
- overprovision Boolean
- Specifies whether the virtual machine scale set should be overprovisioned. Defaults to true.
- plan
ScaleSet Plan 
- A planblock as documented below.
- priority String
- Specifies the priority for the Virtual Machines in the Scale Set. Possible values are LowandRegular. Changing this forces a new resource to be created.
- proximityPlacement StringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- rollingUpgrade ScalePolicy Set Rolling Upgrade Policy 
- A rolling_upgrade_policyblock as defined below. This is only applicable when theupgrade_policy_modeisRolling.
- singlePlacement BooleanGroup 
- Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See documentation for more information. Defaults to true.
- storageProfile List<ScaleData Disks Set Storage Profile Data Disk> 
- A storage_profile_data_diskblock as documented below.
- storageProfile ScaleImage Reference Set Storage Profile Image Reference 
- A storage_profile_image_referenceblock as documented below.
- Map<String,String>
- A mapping of tags to assign to the resource.
- zones List<String>
- A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created. - NOTE: Availability Zones are only supported in several regions at this time. 
- networkProfiles ScaleSet Network Profile[] 
- A collection of network_profileblocks as documented below.
- osProfile ScaleSet Os Profile 
- A os_profileblock as documented below.
- resourceGroup stringName 
- The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
- sku
ScaleSet Sku 
- A skublock as documented below.
- storageProfile ScaleOs Disk Set Storage Profile Os Disk 
- A storage_profile_os_diskblock as documented below.
- upgradePolicy stringMode 
- Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling,Manual, orAutomatic. When choosingRolling, you will need to set a health probe.
- automaticOs booleanUpgrade 
- Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_modeis set toRolling. Defaults tofalse.
- bootDiagnostics ScaleSet Boot Diagnostics 
- A boot_diagnosticsblock as referenced below.
- evictionPolicy string
- Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are - Deallocateand- Delete. Changing this forces a new resource to be created.- NOTE: - eviction_policycan only be set when- priorityis set to- Low.
- extensions
ScaleSet Extension[] 
- Can be specified multiple times to add extension profiles to the scale set. Each extensionblock supports the fields documented below.
- healthProbe stringId 
- Specifies the identifier for the load balancer health probe. Required when using Rollingas yourupgrade_policy_mode.
- identity
ScaleSet Identity 
- An identityblock as defined below.
- licenseType string
- (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are Windows_ClientandWindows_Server.
- location string
- Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
- name string
- Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
- osProfile ScaleLinux Config Set Os Profile Linux Config 
- A os_profile_linux_configblock as documented below.
- osProfile ScaleSecrets Set Os Profile Secret[] 
- A collection of os_profile_secretsblocks as documented below.
- osProfile ScaleWindows Config Set Os Profile Windows Config 
- A os_profile_windows_configblock as documented below.
- overprovision boolean
- Specifies whether the virtual machine scale set should be overprovisioned. Defaults to true.
- plan
ScaleSet Plan 
- A planblock as documented below.
- priority string
- Specifies the priority for the Virtual Machines in the Scale Set. Possible values are LowandRegular. Changing this forces a new resource to be created.
- proximityPlacement stringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- rollingUpgrade ScalePolicy Set Rolling Upgrade Policy 
- A rolling_upgrade_policyblock as defined below. This is only applicable when theupgrade_policy_modeisRolling.
- singlePlacement booleanGroup 
- Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See documentation for more information. Defaults to true.
- storageProfile ScaleData Disks Set Storage Profile Data Disk[] 
- A storage_profile_data_diskblock as documented below.
- storageProfile ScaleImage Reference Set Storage Profile Image Reference 
- A storage_profile_image_referenceblock as documented below.
- {[key: string]: string}
- A mapping of tags to assign to the resource.
- zones string[]
- A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created. - NOTE: Availability Zones are only supported in several regions at this time. 
- network_profiles Sequence[ScaleSet Network Profile Args] 
- A collection of network_profileblocks as documented below.
- os_profile ScaleSet Os Profile Args 
- A os_profileblock as documented below.
- resource_group_ strname 
- The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
- sku
ScaleSet Sku Args 
- A skublock as documented below.
- storage_profile_ Scaleos_ disk Set Storage Profile Os Disk Args 
- A storage_profile_os_diskblock as documented below.
- upgrade_policy_ strmode 
- Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling,Manual, orAutomatic. When choosingRolling, you will need to set a health probe.
- automatic_os_ boolupgrade 
- Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_modeis set toRolling. Defaults tofalse.
- boot_diagnostics ScaleSet Boot Diagnostics Args 
- A boot_diagnosticsblock as referenced below.
- eviction_policy str
- Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are - Deallocateand- Delete. Changing this forces a new resource to be created.- NOTE: - eviction_policycan only be set when- priorityis set to- Low.
- extensions
Sequence[ScaleSet Extension Args] 
- Can be specified multiple times to add extension profiles to the scale set. Each extensionblock supports the fields documented below.
- health_probe_ strid 
- Specifies the identifier for the load balancer health probe. Required when using Rollingas yourupgrade_policy_mode.
- identity
ScaleSet Identity Args 
- An identityblock as defined below.
- license_type str
- (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are Windows_ClientandWindows_Server.
- location str
- Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
- name str
- Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
- os_profile_ Scalelinux_ config Set Os Profile Linux Config Args 
- A os_profile_linux_configblock as documented below.
- os_profile_ Sequence[Scalesecrets Set Os Profile Secret Args] 
- A collection of os_profile_secretsblocks as documented below.
- os_profile_ Scalewindows_ config Set Os Profile Windows Config Args 
- A os_profile_windows_configblock as documented below.
- overprovision bool
- Specifies whether the virtual machine scale set should be overprovisioned. Defaults to true.
- plan
ScaleSet Plan Args 
- A planblock as documented below.
- priority str
- Specifies the priority for the Virtual Machines in the Scale Set. Possible values are LowandRegular. Changing this forces a new resource to be created.
- proximity_placement_ strgroup_ id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- rolling_upgrade_ Scalepolicy Set Rolling Upgrade Policy Args 
- A rolling_upgrade_policyblock as defined below. This is only applicable when theupgrade_policy_modeisRolling.
- single_placement_ boolgroup 
- Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See documentation for more information. Defaults to true.
- storage_profile_ Sequence[Scaledata_ disks Set Storage Profile Data Disk Args] 
- A storage_profile_data_diskblock as documented below.
- storage_profile_ Scaleimage_ reference Set Storage Profile Image Reference Args 
- A storage_profile_image_referenceblock as documented below.
- Mapping[str, str]
- A mapping of tags to assign to the resource.
- zones Sequence[str]
- A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created. - NOTE: Availability Zones are only supported in several regions at this time. 
- networkProfiles List<Property Map>
- A collection of network_profileblocks as documented below.
- osProfile Property Map
- A os_profileblock as documented below.
- resourceGroup StringName 
- The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
- sku Property Map
- A skublock as documented below.
- storageProfile Property MapOs Disk 
- A storage_profile_os_diskblock as documented below.
- upgradePolicy StringMode 
- Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling,Manual, orAutomatic. When choosingRolling, you will need to set a health probe.
- automaticOs BooleanUpgrade 
- Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_modeis set toRolling. Defaults tofalse.
- bootDiagnostics Property Map
- A boot_diagnosticsblock as referenced below.
- evictionPolicy String
- Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are - Deallocateand- Delete. Changing this forces a new resource to be created.- NOTE: - eviction_policycan only be set when- priorityis set to- Low.
- extensions List<Property Map>
- Can be specified multiple times to add extension profiles to the scale set. Each extensionblock supports the fields documented below.
- healthProbe StringId 
- Specifies the identifier for the load balancer health probe. Required when using Rollingas yourupgrade_policy_mode.
- identity Property Map
- An identityblock as defined below.
- licenseType String
- (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are Windows_ClientandWindows_Server.
- location String
- Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
- name String
- Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
- osProfile Property MapLinux Config 
- A os_profile_linux_configblock as documented below.
- osProfile List<Property Map>Secrets 
- A collection of os_profile_secretsblocks as documented below.
- osProfile Property MapWindows Config 
- A os_profile_windows_configblock as documented below.
- overprovision Boolean
- Specifies whether the virtual machine scale set should be overprovisioned. Defaults to true.
- plan Property Map
- A planblock as documented below.
- priority String
- Specifies the priority for the Virtual Machines in the Scale Set. Possible values are LowandRegular. Changing this forces a new resource to be created.
- proximityPlacement StringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- rollingUpgrade Property MapPolicy 
- A rolling_upgrade_policyblock as defined below. This is only applicable when theupgrade_policy_modeisRolling.
- singlePlacement BooleanGroup 
- Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See documentation for more information. Defaults to true.
- storageProfile List<Property Map>Data Disks 
- A storage_profile_data_diskblock as documented below.
- storageProfile Property MapImage Reference 
- A storage_profile_image_referenceblock as documented below.
- Map<String>
- A mapping of tags to assign to the resource.
- zones List<String>
- A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created. - NOTE: Availability Zones are only supported in several regions at this time. 
Outputs
All input properties are implicitly available as output properties. Additionally, the ScaleSet 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 ScaleSet Resource
Get an existing ScaleSet 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?: ScaleSetState, opts?: CustomResourceOptions): ScaleSet@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        automatic_os_upgrade: Optional[bool] = None,
        boot_diagnostics: Optional[ScaleSetBootDiagnosticsArgs] = None,
        eviction_policy: Optional[str] = None,
        extensions: Optional[Sequence[ScaleSetExtensionArgs]] = None,
        health_probe_id: Optional[str] = None,
        identity: Optional[ScaleSetIdentityArgs] = None,
        license_type: Optional[str] = None,
        location: Optional[str] = None,
        name: Optional[str] = None,
        network_profiles: Optional[Sequence[ScaleSetNetworkProfileArgs]] = None,
        os_profile: Optional[ScaleSetOsProfileArgs] = None,
        os_profile_linux_config: Optional[ScaleSetOsProfileLinuxConfigArgs] = None,
        os_profile_secrets: Optional[Sequence[ScaleSetOsProfileSecretArgs]] = None,
        os_profile_windows_config: Optional[ScaleSetOsProfileWindowsConfigArgs] = None,
        overprovision: Optional[bool] = None,
        plan: Optional[ScaleSetPlanArgs] = None,
        priority: Optional[str] = None,
        proximity_placement_group_id: Optional[str] = None,
        resource_group_name: Optional[str] = None,
        rolling_upgrade_policy: Optional[ScaleSetRollingUpgradePolicyArgs] = None,
        single_placement_group: Optional[bool] = None,
        sku: Optional[ScaleSetSkuArgs] = None,
        storage_profile_data_disks: Optional[Sequence[ScaleSetStorageProfileDataDiskArgs]] = None,
        storage_profile_image_reference: Optional[ScaleSetStorageProfileImageReferenceArgs] = None,
        storage_profile_os_disk: Optional[ScaleSetStorageProfileOsDiskArgs] = None,
        tags: Optional[Mapping[str, str]] = None,
        upgrade_policy_mode: Optional[str] = None,
        zones: Optional[Sequence[str]] = None) -> ScaleSetfunc GetScaleSet(ctx *Context, name string, id IDInput, state *ScaleSetState, opts ...ResourceOption) (*ScaleSet, error)public static ScaleSet Get(string name, Input<string> id, ScaleSetState? state, CustomResourceOptions? opts = null)public static ScaleSet get(String name, Output<String> id, ScaleSetState state, CustomResourceOptions options)resources:  _:    type: azure:compute:ScaleSet    get:      id: ${id}- name
- The unique name of the resulting resource.
- id
- 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
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- 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
- The unique name of the resulting resource.
- id
- 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
- The unique name of the resulting resource.
- id
- 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.
- AutomaticOs boolUpgrade 
- Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_modeis set toRolling. Defaults tofalse.
- BootDiagnostics ScaleSet Boot Diagnostics 
- A boot_diagnosticsblock as referenced below.
- EvictionPolicy string
- Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are - Deallocateand- Delete. Changing this forces a new resource to be created.- NOTE: - eviction_policycan only be set when- priorityis set to- Low.
- Extensions
List<ScaleSet Extension> 
- Can be specified multiple times to add extension profiles to the scale set. Each extensionblock supports the fields documented below.
- HealthProbe stringId 
- Specifies the identifier for the load balancer health probe. Required when using Rollingas yourupgrade_policy_mode.
- Identity
ScaleSet Identity 
- An identityblock as defined below.
- LicenseType string
- (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are Windows_ClientandWindows_Server.
- Location string
- Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
- Name string
- Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
- NetworkProfiles List<ScaleSet Network Profile> 
- A collection of network_profileblocks as documented below.
- OsProfile ScaleSet Os Profile 
- A os_profileblock as documented below.
- OsProfile ScaleLinux Config Set Os Profile Linux Config 
- A os_profile_linux_configblock as documented below.
- OsProfile List<ScaleSecrets Set Os Profile Secret> 
- A collection of os_profile_secretsblocks as documented below.
- OsProfile ScaleWindows Config Set Os Profile Windows Config 
- A os_profile_windows_configblock as documented below.
- Overprovision bool
- Specifies whether the virtual machine scale set should be overprovisioned. Defaults to true.
- Plan
ScaleSet Plan 
- A planblock as documented below.
- Priority string
- Specifies the priority for the Virtual Machines in the Scale Set. Possible values are LowandRegular. Changing this forces a new resource to be created.
- ProximityPlacement stringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- ResourceGroup stringName 
- The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
- RollingUpgrade ScalePolicy Set Rolling Upgrade Policy 
- A rolling_upgrade_policyblock as defined below. This is only applicable when theupgrade_policy_modeisRolling.
- SinglePlacement boolGroup 
- Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See documentation for more information. Defaults to true.
- Sku
ScaleSet Sku 
- A skublock as documented below.
- StorageProfile List<ScaleData Disks Set Storage Profile Data Disk> 
- A storage_profile_data_diskblock as documented below.
- StorageProfile ScaleImage Reference Set Storage Profile Image Reference 
- A storage_profile_image_referenceblock as documented below.
- StorageProfile ScaleOs Disk Set Storage Profile Os Disk 
- A storage_profile_os_diskblock as documented below.
- Dictionary<string, string>
- A mapping of tags to assign to the resource.
- UpgradePolicy stringMode 
- Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling,Manual, orAutomatic. When choosingRolling, you will need to set a health probe.
- Zones List<string>
- A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created. - NOTE: Availability Zones are only supported in several regions at this time. 
- AutomaticOs boolUpgrade 
- Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_modeis set toRolling. Defaults tofalse.
- BootDiagnostics ScaleSet Boot Diagnostics Args 
- A boot_diagnosticsblock as referenced below.
- EvictionPolicy string
- Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are - Deallocateand- Delete. Changing this forces a new resource to be created.- NOTE: - eviction_policycan only be set when- priorityis set to- Low.
- Extensions
[]ScaleSet Extension Args 
- Can be specified multiple times to add extension profiles to the scale set. Each extensionblock supports the fields documented below.
- HealthProbe stringId 
- Specifies the identifier for the load balancer health probe. Required when using Rollingas yourupgrade_policy_mode.
- Identity
ScaleSet Identity Args 
- An identityblock as defined below.
- LicenseType string
- (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are Windows_ClientandWindows_Server.
- Location string
- Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
- Name string
- Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
- NetworkProfiles []ScaleSet Network Profile Args 
- A collection of network_profileblocks as documented below.
- OsProfile ScaleSet Os Profile Args 
- A os_profileblock as documented below.
- OsProfile ScaleLinux Config Set Os Profile Linux Config Args 
- A os_profile_linux_configblock as documented below.
- OsProfile []ScaleSecrets Set Os Profile Secret Args 
- A collection of os_profile_secretsblocks as documented below.
- OsProfile ScaleWindows Config Set Os Profile Windows Config Args 
- A os_profile_windows_configblock as documented below.
- Overprovision bool
- Specifies whether the virtual machine scale set should be overprovisioned. Defaults to true.
- Plan
ScaleSet Plan Args 
- A planblock as documented below.
- Priority string
- Specifies the priority for the Virtual Machines in the Scale Set. Possible values are LowandRegular. Changing this forces a new resource to be created.
- ProximityPlacement stringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- ResourceGroup stringName 
- The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
- RollingUpgrade ScalePolicy Set Rolling Upgrade Policy Args 
- A rolling_upgrade_policyblock as defined below. This is only applicable when theupgrade_policy_modeisRolling.
- SinglePlacement boolGroup 
- Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See documentation for more information. Defaults to true.
- Sku
ScaleSet Sku Args 
- A skublock as documented below.
- StorageProfile []ScaleData Disks Set Storage Profile Data Disk Args 
- A storage_profile_data_diskblock as documented below.
- StorageProfile ScaleImage Reference Set Storage Profile Image Reference Args 
- A storage_profile_image_referenceblock as documented below.
- StorageProfile ScaleOs Disk Set Storage Profile Os Disk Args 
- A storage_profile_os_diskblock as documented below.
- map[string]string
- A mapping of tags to assign to the resource.
- UpgradePolicy stringMode 
- Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling,Manual, orAutomatic. When choosingRolling, you will need to set a health probe.
- Zones []string
- A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created. - NOTE: Availability Zones are only supported in several regions at this time. 
- automaticOs BooleanUpgrade 
- Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_modeis set toRolling. Defaults tofalse.
- bootDiagnostics ScaleSet Boot Diagnostics 
- A boot_diagnosticsblock as referenced below.
- evictionPolicy String
- Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are - Deallocateand- Delete. Changing this forces a new resource to be created.- NOTE: - eviction_policycan only be set when- priorityis set to- Low.
- extensions
List<ScaleSet Extension> 
- Can be specified multiple times to add extension profiles to the scale set. Each extensionblock supports the fields documented below.
- healthProbe StringId 
- Specifies the identifier for the load balancer health probe. Required when using Rollingas yourupgrade_policy_mode.
- identity
ScaleSet Identity 
- An identityblock as defined below.
- licenseType String
- (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are Windows_ClientandWindows_Server.
- location String
- Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
- name String
- Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
- networkProfiles List<ScaleSet Network Profile> 
- A collection of network_profileblocks as documented below.
- osProfile ScaleSet Os Profile 
- A os_profileblock as documented below.
- osProfile ScaleLinux Config Set Os Profile Linux Config 
- A os_profile_linux_configblock as documented below.
- osProfile List<ScaleSecrets Set Os Profile Secret> 
- A collection of os_profile_secretsblocks as documented below.
- osProfile ScaleWindows Config Set Os Profile Windows Config 
- A os_profile_windows_configblock as documented below.
- overprovision Boolean
- Specifies whether the virtual machine scale set should be overprovisioned. Defaults to true.
- plan
ScaleSet Plan 
- A planblock as documented below.
- priority String
- Specifies the priority for the Virtual Machines in the Scale Set. Possible values are LowandRegular. Changing this forces a new resource to be created.
- proximityPlacement StringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- resourceGroup StringName 
- The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
- rollingUpgrade ScalePolicy Set Rolling Upgrade Policy 
- A rolling_upgrade_policyblock as defined below. This is only applicable when theupgrade_policy_modeisRolling.
- singlePlacement BooleanGroup 
- Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See documentation for more information. Defaults to true.
- sku
ScaleSet Sku 
- A skublock as documented below.
- storageProfile List<ScaleData Disks Set Storage Profile Data Disk> 
- A storage_profile_data_diskblock as documented below.
- storageProfile ScaleImage Reference Set Storage Profile Image Reference 
- A storage_profile_image_referenceblock as documented below.
- storageProfile ScaleOs Disk Set Storage Profile Os Disk 
- A storage_profile_os_diskblock as documented below.
- Map<String,String>
- A mapping of tags to assign to the resource.
- upgradePolicy StringMode 
- Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling,Manual, orAutomatic. When choosingRolling, you will need to set a health probe.
- zones List<String>
- A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created. - NOTE: Availability Zones are only supported in several regions at this time. 
- automaticOs booleanUpgrade 
- Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_modeis set toRolling. Defaults tofalse.
- bootDiagnostics ScaleSet Boot Diagnostics 
- A boot_diagnosticsblock as referenced below.
- evictionPolicy string
- Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are - Deallocateand- Delete. Changing this forces a new resource to be created.- NOTE: - eviction_policycan only be set when- priorityis set to- Low.
- extensions
ScaleSet Extension[] 
- Can be specified multiple times to add extension profiles to the scale set. Each extensionblock supports the fields documented below.
- healthProbe stringId 
- Specifies the identifier for the load balancer health probe. Required when using Rollingas yourupgrade_policy_mode.
- identity
ScaleSet Identity 
- An identityblock as defined below.
- licenseType string
- (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are Windows_ClientandWindows_Server.
- location string
- Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
- name string
- Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
- networkProfiles ScaleSet Network Profile[] 
- A collection of network_profileblocks as documented below.
- osProfile ScaleSet Os Profile 
- A os_profileblock as documented below.
- osProfile ScaleLinux Config Set Os Profile Linux Config 
- A os_profile_linux_configblock as documented below.
- osProfile ScaleSecrets Set Os Profile Secret[] 
- A collection of os_profile_secretsblocks as documented below.
- osProfile ScaleWindows Config Set Os Profile Windows Config 
- A os_profile_windows_configblock as documented below.
- overprovision boolean
- Specifies whether the virtual machine scale set should be overprovisioned. Defaults to true.
- plan
ScaleSet Plan 
- A planblock as documented below.
- priority string
- Specifies the priority for the Virtual Machines in the Scale Set. Possible values are LowandRegular. Changing this forces a new resource to be created.
- proximityPlacement stringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- resourceGroup stringName 
- The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
- rollingUpgrade ScalePolicy Set Rolling Upgrade Policy 
- A rolling_upgrade_policyblock as defined below. This is only applicable when theupgrade_policy_modeisRolling.
- singlePlacement booleanGroup 
- Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See documentation for more information. Defaults to true.
- sku
ScaleSet Sku 
- A skublock as documented below.
- storageProfile ScaleData Disks Set Storage Profile Data Disk[] 
- A storage_profile_data_diskblock as documented below.
- storageProfile ScaleImage Reference Set Storage Profile Image Reference 
- A storage_profile_image_referenceblock as documented below.
- storageProfile ScaleOs Disk Set Storage Profile Os Disk 
- A storage_profile_os_diskblock as documented below.
- {[key: string]: string}
- A mapping of tags to assign to the resource.
- upgradePolicy stringMode 
- Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling,Manual, orAutomatic. When choosingRolling, you will need to set a health probe.
- zones string[]
- A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created. - NOTE: Availability Zones are only supported in several regions at this time. 
- automatic_os_ boolupgrade 
- Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_modeis set toRolling. Defaults tofalse.
- boot_diagnostics ScaleSet Boot Diagnostics Args 
- A boot_diagnosticsblock as referenced below.
- eviction_policy str
- Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are - Deallocateand- Delete. Changing this forces a new resource to be created.- NOTE: - eviction_policycan only be set when- priorityis set to- Low.
- extensions
Sequence[ScaleSet Extension Args] 
- Can be specified multiple times to add extension profiles to the scale set. Each extensionblock supports the fields documented below.
- health_probe_ strid 
- Specifies the identifier for the load balancer health probe. Required when using Rollingas yourupgrade_policy_mode.
- identity
ScaleSet Identity Args 
- An identityblock as defined below.
- license_type str
- (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are Windows_ClientandWindows_Server.
- location str
- Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
- name str
- Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
- network_profiles Sequence[ScaleSet Network Profile Args] 
- A collection of network_profileblocks as documented below.
- os_profile ScaleSet Os Profile Args 
- A os_profileblock as documented below.
- os_profile_ Scalelinux_ config Set Os Profile Linux Config Args 
- A os_profile_linux_configblock as documented below.
- os_profile_ Sequence[Scalesecrets Set Os Profile Secret Args] 
- A collection of os_profile_secretsblocks as documented below.
- os_profile_ Scalewindows_ config Set Os Profile Windows Config Args 
- A os_profile_windows_configblock as documented below.
- overprovision bool
- Specifies whether the virtual machine scale set should be overprovisioned. Defaults to true.
- plan
ScaleSet Plan Args 
- A planblock as documented below.
- priority str
- Specifies the priority for the Virtual Machines in the Scale Set. Possible values are LowandRegular. Changing this forces a new resource to be created.
- proximity_placement_ strgroup_ id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- resource_group_ strname 
- The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
- rolling_upgrade_ Scalepolicy Set Rolling Upgrade Policy Args 
- A rolling_upgrade_policyblock as defined below. This is only applicable when theupgrade_policy_modeisRolling.
- single_placement_ boolgroup 
- Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See documentation for more information. Defaults to true.
- sku
ScaleSet Sku Args 
- A skublock as documented below.
- storage_profile_ Sequence[Scaledata_ disks Set Storage Profile Data Disk Args] 
- A storage_profile_data_diskblock as documented below.
- storage_profile_ Scaleimage_ reference Set Storage Profile Image Reference Args 
- A storage_profile_image_referenceblock as documented below.
- storage_profile_ Scaleos_ disk Set Storage Profile Os Disk Args 
- A storage_profile_os_diskblock as documented below.
- Mapping[str, str]
- A mapping of tags to assign to the resource.
- upgrade_policy_ strmode 
- Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling,Manual, orAutomatic. When choosingRolling, you will need to set a health probe.
- zones Sequence[str]
- A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created. - NOTE: Availability Zones are only supported in several regions at this time. 
- automaticOs BooleanUpgrade 
- Automatic OS patches can be applied by Azure to your scaleset. This is particularly useful when upgrade_policy_modeis set toRolling. Defaults tofalse.
- bootDiagnostics Property Map
- A boot_diagnosticsblock as referenced below.
- evictionPolicy String
- Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are - Deallocateand- Delete. Changing this forces a new resource to be created.- NOTE: - eviction_policycan only be set when- priorityis set to- Low.
- extensions List<Property Map>
- Can be specified multiple times to add extension profiles to the scale set. Each extensionblock supports the fields documented below.
- healthProbe StringId 
- Specifies the identifier for the load balancer health probe. Required when using Rollingas yourupgrade_policy_mode.
- identity Property Map
- An identityblock as defined below.
- licenseType String
- (Optional, when a Windows machine) Specifies the Windows OS license type. If supplied, the only allowed values are Windows_ClientandWindows_Server.
- location String
- Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
- name String
- Specifies the name of the virtual machine scale set resource. Changing this forces a new resource to be created.
- networkProfiles List<Property Map>
- A collection of network_profileblocks as documented below.
- osProfile Property Map
- A os_profileblock as documented below.
- osProfile Property MapLinux Config 
- A os_profile_linux_configblock as documented below.
- osProfile List<Property Map>Secrets 
- A collection of os_profile_secretsblocks as documented below.
- osProfile Property MapWindows Config 
- A os_profile_windows_configblock as documented below.
- overprovision Boolean
- Specifies whether the virtual machine scale set should be overprovisioned. Defaults to true.
- plan Property Map
- A planblock as documented below.
- priority String
- Specifies the priority for the Virtual Machines in the Scale Set. Possible values are LowandRegular. Changing this forces a new resource to be created.
- proximityPlacement StringGroup Id 
- The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created
- resourceGroup StringName 
- The name of the resource group in which to create the virtual machine scale set. Changing this forces a new resource to be created.
- rollingUpgrade Property MapPolicy 
- A rolling_upgrade_policyblock as defined below. This is only applicable when theupgrade_policy_modeisRolling.
- singlePlacement BooleanGroup 
- Specifies whether the scale set is limited to a single placement group with a maximum size of 100 virtual machines. If set to false, managed disks must be used. Changing this forces a new resource to be created. See documentation for more information. Defaults to true.
- sku Property Map
- A skublock as documented below.
- storageProfile List<Property Map>Data Disks 
- A storage_profile_data_diskblock as documented below.
- storageProfile Property MapImage Reference 
- A storage_profile_image_referenceblock as documented below.
- storageProfile Property MapOs Disk 
- A storage_profile_os_diskblock as documented below.
- Map<String>
- A mapping of tags to assign to the resource.
- upgradePolicy StringMode 
- Specifies the mode of an upgrade to virtual machines in the scale set. Possible values, Rolling,Manual, orAutomatic. When choosingRolling, you will need to set a health probe.
- zones List<String>
- A collection of availability zones to spread the Virtual Machines over. Changing this forces a new resource to be created. - NOTE: Availability Zones are only supported in several regions at this time. 
Supporting Types
ScaleSetBootDiagnostics, ScaleSetBootDiagnosticsArgs        
- StorageUri string
- Blob endpoint for the storage account to hold the virtual machine's diagnostic files. This must be the root of a storage account, and not a storage container.
- Enabled bool
- Whether to enable boot diagnostics for the virtual machine. Defaults to true.
- StorageUri string
- Blob endpoint for the storage account to hold the virtual machine's diagnostic files. This must be the root of a storage account, and not a storage container.
- Enabled bool
- Whether to enable boot diagnostics for the virtual machine. Defaults to true.
- storageUri String
- Blob endpoint for the storage account to hold the virtual machine's diagnostic files. This must be the root of a storage account, and not a storage container.
- enabled Boolean
- Whether to enable boot diagnostics for the virtual machine. Defaults to true.
- storageUri string
- Blob endpoint for the storage account to hold the virtual machine's diagnostic files. This must be the root of a storage account, and not a storage container.
- enabled boolean
- Whether to enable boot diagnostics for the virtual machine. Defaults to true.
- storage_uri str
- Blob endpoint for the storage account to hold the virtual machine's diagnostic files. This must be the root of a storage account, and not a storage container.
- enabled bool
- Whether to enable boot diagnostics for the virtual machine. Defaults to true.
- storageUri String
- Blob endpoint for the storage account to hold the virtual machine's diagnostic files. This must be the root of a storage account, and not a storage container.
- enabled Boolean
- Whether to enable boot diagnostics for the virtual machine. Defaults to true.
ScaleSetExtension, ScaleSetExtensionArgs      
- Name string
- Specifies the name of the extension.
- Publisher string
- The publisher of the extension, available publishers can be found by using the Azure CLI.
- Type string
- The type of extension, available types for a publisher can be found using the Azure CLI.
- TypeHandler stringVersion 
- Specifies the version of the extension to use, available versions can be found using the Azure CLI.
- AutoUpgrade boolMinor Version 
- Specifies whether or not to use the latest minor version available.
- ProtectedSettings string
- The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.
- ProvisionAfter List<string>Extensions 
- Specifies a dependency array of extensions required to be executed before, the array stores the name of each extension.
- Settings string
- The settings passed to the extension, these are specified as a JSON object in a string.
- Name string
- Specifies the name of the extension.
- Publisher string
- The publisher of the extension, available publishers can be found by using the Azure CLI.
- Type string
- The type of extension, available types for a publisher can be found using the Azure CLI.
- TypeHandler stringVersion 
- Specifies the version of the extension to use, available versions can be found using the Azure CLI.
- AutoUpgrade boolMinor Version 
- Specifies whether or not to use the latest minor version available.
- ProtectedSettings string
- The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.
- ProvisionAfter []stringExtensions 
- Specifies a dependency array of extensions required to be executed before, the array stores the name of each extension.
- Settings string
- The settings passed to the extension, these are specified as a JSON object in a string.
- name String
- Specifies the name of the extension.
- publisher String
- The publisher of the extension, available publishers can be found by using the Azure CLI.
- type String
- The type of extension, available types for a publisher can be found using the Azure CLI.
- typeHandler StringVersion 
- Specifies the version of the extension to use, available versions can be found using the Azure CLI.
- autoUpgrade BooleanMinor Version 
- Specifies whether or not to use the latest minor version available.
- protectedSettings String
- The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.
- provisionAfter List<String>Extensions 
- Specifies a dependency array of extensions required to be executed before, the array stores the name of each extension.
- settings String
- The settings passed to the extension, these are specified as a JSON object in a string.
- name string
- Specifies the name of the extension.
- publisher string
- The publisher of the extension, available publishers can be found by using the Azure CLI.
- type string
- The type of extension, available types for a publisher can be found using the Azure CLI.
- typeHandler stringVersion 
- Specifies the version of the extension to use, available versions can be found using the Azure CLI.
- autoUpgrade booleanMinor Version 
- Specifies whether or not to use the latest minor version available.
- protectedSettings string
- The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.
- provisionAfter string[]Extensions 
- Specifies a dependency array of extensions required to be executed before, the array stores the name of each extension.
- settings string
- The settings passed to the extension, these are specified as a JSON object in a string.
- name str
- Specifies the name of the extension.
- publisher str
- The publisher of the extension, available publishers can be found by using the Azure CLI.
- type str
- The type of extension, available types for a publisher can be found using the Azure CLI.
- type_handler_ strversion 
- Specifies the version of the extension to use, available versions can be found using the Azure CLI.
- auto_upgrade_ boolminor_ version 
- Specifies whether or not to use the latest minor version available.
- protected_settings str
- The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.
- provision_after_ Sequence[str]extensions 
- Specifies a dependency array of extensions required to be executed before, the array stores the name of each extension.
- settings str
- The settings passed to the extension, these are specified as a JSON object in a string.
- name String
- Specifies the name of the extension.
- publisher String
- The publisher of the extension, available publishers can be found by using the Azure CLI.
- type String
- The type of extension, available types for a publisher can be found using the Azure CLI.
- typeHandler StringVersion 
- Specifies the version of the extension to use, available versions can be found using the Azure CLI.
- autoUpgrade BooleanMinor Version 
- Specifies whether or not to use the latest minor version available.
- protectedSettings String
- The protected_settings passed to the extension, like settings, these are specified as a JSON object in a string.
- provisionAfter List<String>Extensions 
- Specifies a dependency array of extensions required to be executed before, the array stores the name of each extension.
- settings String
- The settings passed to the extension, these are specified as a JSON object in a string.
ScaleSetIdentity, ScaleSetIdentityArgs      
- Type string
- Specifies the identity type to be assigned to the scale set. Allowable values are SystemAssignedandUserAssigned. For theSystemAssignedidentity the scale set's Service Principal ID (SPN) can be retrieved after the scale set has been created. See documentation for more information. Possible values areSystemAssigned,UserAssignedandSystemAssigned, UserAssigned.
- IdentityIds List<string>
- Specifies a list of user managed identity ids to be assigned to the VMSS. Required if typeisUserAssigned.import * as pulumi from "@pulumi/pulumi"; import * as azure from "@pulumi/azure";const example = new azure.compute.ScaleSet("example", { name: "vm-scaleset", resourceGroupName: exampleAzurermResourceGroup.name, location: exampleAzurermResourceGroup.location, sku: { name: vmSku, tier: "Standard", capacity: instanceCount, }, identity: { type: "SystemAssigned", }, extensions: [{ name: "MSILinuxExtension", publisher: "Microsoft.ManagedIdentity", type: "ManagedIdentityExtensionForLinux", typeHandlerVersion: "1.0", settings: "{"port": 50342}", }], }); export const principalId = example.identity.apply(identity => identity?.principalId); import pulumi import pulumi_azure as azure example = azure.compute.ScaleSet("example", name="vm-scaleset", resource_group_name=example_azurerm_resource_group["name"], location=example_azurerm_resource_group["location"], sku={ "name": vm_sku, "tier": "Standard", "capacity": instance_count, }, identity={ "type": "SystemAssigned", }, extensions=[{ "name": "MSILinuxExtension", "publisher": "Microsoft.ManagedIdentity", "type": "ManagedIdentityExtensionForLinux", "type_handler_version": "1.0", "settings": "{\"port\": 50342}", }]) pulumi.export("principalId", example.identity.principal_id)using System.Collections.Generic; using System.Linq; using Pulumi; using Azure = Pulumi.Azure; return await Deployment.RunAsync(() => { var example = new Azure.Compute.ScaleSet("example", new() { Name = "vm-scaleset", ResourceGroupName = exampleAzurermResourceGroup.Name, Location = exampleAzurermResourceGroup.Location, Sku = new Azure.Compute.Inputs.ScaleSetSkuArgs { Name = vmSku, Tier = "Standard", Capacity = instanceCount, }, Identity = new Azure.Compute.Inputs.ScaleSetIdentityArgs { Type = "SystemAssigned", }, Extensions = new[] { new Azure.Compute.Inputs.ScaleSetExtensionArgs { Name = "MSILinuxExtension", Publisher = "Microsoft.ManagedIdentity", Type = "ManagedIdentityExtensionForLinux", TypeHandlerVersion = "1.0", Settings = "{\"port\": 50342}", }, }, }); return new Dictionary<string, object?> { ["principalId"] = example.Identity.Apply(identity => identity?.PrincipalId), }; });package main import ( "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { example, err := compute.NewScaleSet(ctx, "example", &compute.ScaleSetArgs{ Name: pulumi.String("vm-scaleset"), ResourceGroupName: pulumi.Any(exampleAzurermResourceGroup.Name), Location: pulumi.Any(exampleAzurermResourceGroup.Location), Sku: &compute.ScaleSetSkuArgs{ Name: pulumi.Any(vmSku), Tier: pulumi.String("Standard"), Capacity: pulumi.Any(instanceCount), }, Identity: &compute.ScaleSetIdentityArgs{ Type: pulumi.String("SystemAssigned"), }, Extensions: compute.ScaleSetExtensionArray{ &compute.ScaleSetExtensionArgs{ Name: pulumi.String("MSILinuxExtension"), Publisher: pulumi.String("Microsoft.ManagedIdentity"), Type: pulumi.String("ManagedIdentityExtensionForLinux"), TypeHandlerVersion: pulumi.String("1.0"), Settings: pulumi.String("{\"port\": 50342}"), }, }, }) if err != nil { return err } ctx.Export("principalId", example.Identity.ApplyT(func(identity compute.ScaleSetIdentity) (*string, error) { return &identity.PrincipalId, nil }).(pulumi.StringPtrOutput)) return nil }) }package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azure.compute.ScaleSet; import com.pulumi.azure.compute.ScaleSetArgs; import com.pulumi.azure.compute.inputs.ScaleSetSkuArgs; import com.pulumi.azure.compute.inputs.ScaleSetIdentityArgs; import com.pulumi.azure.compute.inputs.ScaleSetExtensionArgs; 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 ScaleSet("example", ScaleSetArgs.builder() .name("vm-scaleset") .resourceGroupName(exampleAzurermResourceGroup.name()) .location(exampleAzurermResourceGroup.location()) .sku(ScaleSetSkuArgs.builder() .name(vmSku) .tier("Standard") .capacity(instanceCount) .build()) .identity(ScaleSetIdentityArgs.builder() .type("SystemAssigned") .build()) .extensions(ScaleSetExtensionArgs.builder() .name("MSILinuxExtension") .publisher("Microsoft.ManagedIdentity") .type("ManagedIdentityExtensionForLinux") .typeHandlerVersion("1.0") .settings("{\"port\": 50342}") .build()) .build()); ctx.export("principalId", example.identity().applyValue(identity -> identity.principalId())); } }resources: example: type: azure:compute:ScaleSet properties: name: vm-scaleset resourceGroupName: ${exampleAzurermResourceGroup.name} location: ${exampleAzurermResourceGroup.location} sku: name: ${vmSku} tier: Standard capacity: ${instanceCount} identity: type: SystemAssigned extensions: - name: MSILinuxExtension publisher: Microsoft.ManagedIdentity type: ManagedIdentityExtensionForLinux typeHandlerVersion: '1.0' settings: '{"port": 50342}' outputs: principalId: ${example.identity.principalId}
- title="Optional"> <span id="principalid_csharp">- Principal - Id string
- TenantId string
- Type string
- Specifies the identity type to be assigned to the scale set. Allowable values are SystemAssignedandUserAssigned. For theSystemAssignedidentity the scale set's Service Principal ID (SPN) can be retrieved after the scale set has been created. See documentation for more information. Possible values areSystemAssigned,UserAssignedandSystemAssigned, UserAssigned.
- IdentityIds []string
- Specifies a list of user managed identity ids to be assigned to the VMSS. Required if typeisUserAssigned.import * as pulumi from "@pulumi/pulumi"; import * as azure from "@pulumi/azure";const example = new azure.compute.ScaleSet("example", { name: "vm-scaleset", resourceGroupName: exampleAzurermResourceGroup.name, location: exampleAzurermResourceGroup.location, sku: { name: vmSku, tier: "Standard", capacity: instanceCount, }, identity: { type: "SystemAssigned", }, extensions: [{ name: "MSILinuxExtension", publisher: "Microsoft.ManagedIdentity", type: "ManagedIdentityExtensionForLinux", typeHandlerVersion: "1.0", settings: "{"port": 50342}", }], }); export const principalId = example.identity.apply(identity => identity?.principalId); import pulumi import pulumi_azure as azure example = azure.compute.ScaleSet("example", name="vm-scaleset", resource_group_name=example_azurerm_resource_group["name"], location=example_azurerm_resource_group["location"], sku={ "name": vm_sku, "tier": "Standard", "capacity": instance_count, }, identity={ "type": "SystemAssigned", }, extensions=[{ "name": "MSILinuxExtension", "publisher": "Microsoft.ManagedIdentity", "type": "ManagedIdentityExtensionForLinux", "type_handler_version": "1.0", "settings": "{\"port\": 50342}", }]) pulumi.export("principalId", example.identity.principal_id)using System.Collections.Generic; using System.Linq; using Pulumi; using Azure = Pulumi.Azure; return await Deployment.RunAsync(() => { var example = new Azure.Compute.ScaleSet("example", new() { Name = "vm-scaleset", ResourceGroupName = exampleAzurermResourceGroup.Name, Location = exampleAzurermResourceGroup.Location, Sku = new Azure.Compute.Inputs.ScaleSetSkuArgs { Name = vmSku, Tier = "Standard", Capacity = instanceCount, }, Identity = new Azure.Compute.Inputs.ScaleSetIdentityArgs { Type = "SystemAssigned", }, Extensions = new[] { new Azure.Compute.Inputs.ScaleSetExtensionArgs { Name = "MSILinuxExtension", Publisher = "Microsoft.ManagedIdentity", Type = "ManagedIdentityExtensionForLinux", TypeHandlerVersion = "1.0", Settings = "{\"port\": 50342}", }, }, }); return new Dictionary<string, object?> { ["principalId"] = example.Identity.Apply(identity => identity?.PrincipalId), }; });package main import ( "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { example, err := compute.NewScaleSet(ctx, "example", &compute.ScaleSetArgs{ Name: pulumi.String("vm-scaleset"), ResourceGroupName: pulumi.Any(exampleAzurermResourceGroup.Name), Location: pulumi.Any(exampleAzurermResourceGroup.Location), Sku: &compute.ScaleSetSkuArgs{ Name: pulumi.Any(vmSku), Tier: pulumi.String("Standard"), Capacity: pulumi.Any(instanceCount), }, Identity: &compute.ScaleSetIdentityArgs{ Type: pulumi.String("SystemAssigned"), }, Extensions: compute.ScaleSetExtensionArray{ &compute.ScaleSetExtensionArgs{ Name: pulumi.String("MSILinuxExtension"), Publisher: pulumi.String("Microsoft.ManagedIdentity"), Type: pulumi.String("ManagedIdentityExtensionForLinux"), TypeHandlerVersion: pulumi.String("1.0"), Settings: pulumi.String("{\"port\": 50342}"), }, }, }) if err != nil { return err } ctx.Export("principalId", example.Identity.ApplyT(func(identity compute.ScaleSetIdentity) (*string, error) { return &identity.PrincipalId, nil }).(pulumi.StringPtrOutput)) return nil }) }package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azure.compute.ScaleSet; import com.pulumi.azure.compute.ScaleSetArgs; import com.pulumi.azure.compute.inputs.ScaleSetSkuArgs; import com.pulumi.azure.compute.inputs.ScaleSetIdentityArgs; import com.pulumi.azure.compute.inputs.ScaleSetExtensionArgs; 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 ScaleSet("example", ScaleSetArgs.builder() .name("vm-scaleset") .resourceGroupName(exampleAzurermResourceGroup.name()) .location(exampleAzurermResourceGroup.location()) .sku(ScaleSetSkuArgs.builder() .name(vmSku) .tier("Standard") .capacity(instanceCount) .build()) .identity(ScaleSetIdentityArgs.builder() .type("SystemAssigned") .build()) .extensions(ScaleSetExtensionArgs.builder() .name("MSILinuxExtension") .publisher("Microsoft.ManagedIdentity") .type("ManagedIdentityExtensionForLinux") .typeHandlerVersion("1.0") .settings("{\"port\": 50342}") .build()) .build()); ctx.export("principalId", example.identity().applyValue(identity -> identity.principalId())); } }resources: example: type: azure:compute:ScaleSet properties: name: vm-scaleset resourceGroupName: ${exampleAzurermResourceGroup.name} location: ${exampleAzurermResourceGroup.location} sku: name: ${vmSku} tier: Standard capacity: ${instanceCount} identity: type: SystemAssigned extensions: - name: MSILinuxExtension publisher: Microsoft.ManagedIdentity type: ManagedIdentityExtensionForLinux typeHandlerVersion: '1.0' settings: '{"port": 50342}' outputs: principalId: ${example.identity.principalId}
- title="Optional"> <span id="principalid_go">- Principal - Id string
- TenantId string
- type String
- Specifies the identity type to be assigned to the scale set. Allowable values are SystemAssignedandUserAssigned. For theSystemAssignedidentity the scale set's Service Principal ID (SPN) can be retrieved after the scale set has been created. See documentation for more information. Possible values areSystemAssigned,UserAssignedandSystemAssigned, UserAssigned.
- identityIds List<String>
- Specifies a list of user managed identity ids to be assigned to the VMSS. Required if typeisUserAssigned.import * as pulumi from "@pulumi/pulumi"; import * as azure from "@pulumi/azure";const example = new azure.compute.ScaleSet("example", { name: "vm-scaleset", resourceGroupName: exampleAzurermResourceGroup.name, location: exampleAzurermResourceGroup.location, sku: { name: vmSku, tier: "Standard", capacity: instanceCount, }, identity: { type: "SystemAssigned", }, extensions: [{ name: "MSILinuxExtension", publisher: "Microsoft.ManagedIdentity", type: "ManagedIdentityExtensionForLinux", typeHandlerVersion: "1.0", settings: "{"port": 50342}", }], }); export const principalId = example.identity.apply(identity => identity?.principalId); import pulumi import pulumi_azure as azure example = azure.compute.ScaleSet("example", name="vm-scaleset", resource_group_name=example_azurerm_resource_group["name"], location=example_azurerm_resource_group["location"], sku={ "name": vm_sku, "tier": "Standard", "capacity": instance_count, }, identity={ "type": "SystemAssigned", }, extensions=[{ "name": "MSILinuxExtension", "publisher": "Microsoft.ManagedIdentity", "type": "ManagedIdentityExtensionForLinux", "type_handler_version": "1.0", "settings": "{\"port\": 50342}", }]) pulumi.export("principalId", example.identity.principal_id)using System.Collections.Generic; using System.Linq; using Pulumi; using Azure = Pulumi.Azure; return await Deployment.RunAsync(() => { var example = new Azure.Compute.ScaleSet("example", new() { Name = "vm-scaleset", ResourceGroupName = exampleAzurermResourceGroup.Name, Location = exampleAzurermResourceGroup.Location, Sku = new Azure.Compute.Inputs.ScaleSetSkuArgs { Name = vmSku, Tier = "Standard", Capacity = instanceCount, }, Identity = new Azure.Compute.Inputs.ScaleSetIdentityArgs { Type = "SystemAssigned", }, Extensions = new[] { new Azure.Compute.Inputs.ScaleSetExtensionArgs { Name = "MSILinuxExtension", Publisher = "Microsoft.ManagedIdentity", Type = "ManagedIdentityExtensionForLinux", TypeHandlerVersion = "1.0", Settings = "{\"port\": 50342}", }, }, }); return new Dictionary<string, object?> { ["principalId"] = example.Identity.Apply(identity => identity?.PrincipalId), }; });package main import ( "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { example, err := compute.NewScaleSet(ctx, "example", &compute.ScaleSetArgs{ Name: pulumi.String("vm-scaleset"), ResourceGroupName: pulumi.Any(exampleAzurermResourceGroup.Name), Location: pulumi.Any(exampleAzurermResourceGroup.Location), Sku: &compute.ScaleSetSkuArgs{ Name: pulumi.Any(vmSku), Tier: pulumi.String("Standard"), Capacity: pulumi.Any(instanceCount), }, Identity: &compute.ScaleSetIdentityArgs{ Type: pulumi.String("SystemAssigned"), }, Extensions: compute.ScaleSetExtensionArray{ &compute.ScaleSetExtensionArgs{ Name: pulumi.String("MSILinuxExtension"), Publisher: pulumi.String("Microsoft.ManagedIdentity"), Type: pulumi.String("ManagedIdentityExtensionForLinux"), TypeHandlerVersion: pulumi.String("1.0"), Settings: pulumi.String("{\"port\": 50342}"), }, }, }) if err != nil { return err } ctx.Export("principalId", example.Identity.ApplyT(func(identity compute.ScaleSetIdentity) (*string, error) { return &identity.PrincipalId, nil }).(pulumi.StringPtrOutput)) return nil }) }package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azure.compute.ScaleSet; import com.pulumi.azure.compute.ScaleSetArgs; import com.pulumi.azure.compute.inputs.ScaleSetSkuArgs; import com.pulumi.azure.compute.inputs.ScaleSetIdentityArgs; import com.pulumi.azure.compute.inputs.ScaleSetExtensionArgs; 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 ScaleSet("example", ScaleSetArgs.builder() .name("vm-scaleset") .resourceGroupName(exampleAzurermResourceGroup.name()) .location(exampleAzurermResourceGroup.location()) .sku(ScaleSetSkuArgs.builder() .name(vmSku) .tier("Standard") .capacity(instanceCount) .build()) .identity(ScaleSetIdentityArgs.builder() .type("SystemAssigned") .build()) .extensions(ScaleSetExtensionArgs.builder() .name("MSILinuxExtension") .publisher("Microsoft.ManagedIdentity") .type("ManagedIdentityExtensionForLinux") .typeHandlerVersion("1.0") .settings("{\"port\": 50342}") .build()) .build()); ctx.export("principalId", example.identity().applyValue(identity -> identity.principalId())); } }resources: example: type: azure:compute:ScaleSet properties: name: vm-scaleset resourceGroupName: ${exampleAzurermResourceGroup.name} location: ${exampleAzurermResourceGroup.location} sku: name: ${vmSku} tier: Standard capacity: ${instanceCount} identity: type: SystemAssigned extensions: - name: MSILinuxExtension publisher: Microsoft.ManagedIdentity type: ManagedIdentityExtensionForLinux typeHandlerVersion: '1.0' settings: '{"port": 50342}' outputs: principalId: ${example.identity.principalId}
- title="Optional"> <span id="principalid_java">- principal - Id String
- tenantId String
- type string
- Specifies the identity type to be assigned to the scale set. Allowable values are SystemAssignedandUserAssigned. For theSystemAssignedidentity the scale set's Service Principal ID (SPN) can be retrieved after the scale set has been created. See documentation for more information. Possible values areSystemAssigned,UserAssignedandSystemAssigned, UserAssigned.
- identityIds string[]
- Specifies a list of user managed identity ids to be assigned to the VMSS. Required if typeisUserAssigned.import * as pulumi from "@pulumi/pulumi"; import * as azure from "@pulumi/azure";const example = new azure.compute.ScaleSet("example", { name: "vm-scaleset", resourceGroupName: exampleAzurermResourceGroup.name, location: exampleAzurermResourceGroup.location, sku: { name: vmSku, tier: "Standard", capacity: instanceCount, }, identity: { type: "SystemAssigned", }, extensions: [{ name: "MSILinuxExtension", publisher: "Microsoft.ManagedIdentity", type: "ManagedIdentityExtensionForLinux", typeHandlerVersion: "1.0", settings: "{"port": 50342}", }], }); export const principalId = example.identity.apply(identity => identity?.principalId); import pulumi import pulumi_azure as azure example = azure.compute.ScaleSet("example", name="vm-scaleset", resource_group_name=example_azurerm_resource_group["name"], location=example_azurerm_resource_group["location"], sku={ "name": vm_sku, "tier": "Standard", "capacity": instance_count, }, identity={ "type": "SystemAssigned", }, extensions=[{ "name": "MSILinuxExtension", "publisher": "Microsoft.ManagedIdentity", "type": "ManagedIdentityExtensionForLinux", "type_handler_version": "1.0", "settings": "{\"port\": 50342}", }]) pulumi.export("principalId", example.identity.principal_id)using System.Collections.Generic; using System.Linq; using Pulumi; using Azure = Pulumi.Azure; return await Deployment.RunAsync(() => { var example = new Azure.Compute.ScaleSet("example", new() { Name = "vm-scaleset", ResourceGroupName = exampleAzurermResourceGroup.Name, Location = exampleAzurermResourceGroup.Location, Sku = new Azure.Compute.Inputs.ScaleSetSkuArgs { Name = vmSku, Tier = "Standard", Capacity = instanceCount, }, Identity = new Azure.Compute.Inputs.ScaleSetIdentityArgs { Type = "SystemAssigned", }, Extensions = new[] { new Azure.Compute.Inputs.ScaleSetExtensionArgs { Name = "MSILinuxExtension", Publisher = "Microsoft.ManagedIdentity", Type = "ManagedIdentityExtensionForLinux", TypeHandlerVersion = "1.0", Settings = "{\"port\": 50342}", }, }, }); return new Dictionary<string, object?> { ["principalId"] = example.Identity.Apply(identity => identity?.PrincipalId), }; });package main import ( "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { example, err := compute.NewScaleSet(ctx, "example", &compute.ScaleSetArgs{ Name: pulumi.String("vm-scaleset"), ResourceGroupName: pulumi.Any(exampleAzurermResourceGroup.Name), Location: pulumi.Any(exampleAzurermResourceGroup.Location), Sku: &compute.ScaleSetSkuArgs{ Name: pulumi.Any(vmSku), Tier: pulumi.String("Standard"), Capacity: pulumi.Any(instanceCount), }, Identity: &compute.ScaleSetIdentityArgs{ Type: pulumi.String("SystemAssigned"), }, Extensions: compute.ScaleSetExtensionArray{ &compute.ScaleSetExtensionArgs{ Name: pulumi.String("MSILinuxExtension"), Publisher: pulumi.String("Microsoft.ManagedIdentity"), Type: pulumi.String("ManagedIdentityExtensionForLinux"), TypeHandlerVersion: pulumi.String("1.0"), Settings: pulumi.String("{\"port\": 50342}"), }, }, }) if err != nil { return err } ctx.Export("principalId", example.Identity.ApplyT(func(identity compute.ScaleSetIdentity) (*string, error) { return &identity.PrincipalId, nil }).(pulumi.StringPtrOutput)) return nil }) }package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azure.compute.ScaleSet; import com.pulumi.azure.compute.ScaleSetArgs; import com.pulumi.azure.compute.inputs.ScaleSetSkuArgs; import com.pulumi.azure.compute.inputs.ScaleSetIdentityArgs; import com.pulumi.azure.compute.inputs.ScaleSetExtensionArgs; 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 ScaleSet("example", ScaleSetArgs.builder() .name("vm-scaleset") .resourceGroupName(exampleAzurermResourceGroup.name()) .location(exampleAzurermResourceGroup.location()) .sku(ScaleSetSkuArgs.builder() .name(vmSku) .tier("Standard") .capacity(instanceCount) .build()) .identity(ScaleSetIdentityArgs.builder() .type("SystemAssigned") .build()) .extensions(ScaleSetExtensionArgs.builder() .name("MSILinuxExtension") .publisher("Microsoft.ManagedIdentity") .type("ManagedIdentityExtensionForLinux") .typeHandlerVersion("1.0") .settings("{\"port\": 50342}") .build()) .build()); ctx.export("principalId", example.identity().applyValue(identity -> identity.principalId())); } }resources: example: type: azure:compute:ScaleSet properties: name: vm-scaleset resourceGroupName: ${exampleAzurermResourceGroup.name} location: ${exampleAzurermResourceGroup.location} sku: name: ${vmSku} tier: Standard capacity: ${instanceCount} identity: type: SystemAssigned extensions: - name: MSILinuxExtension publisher: Microsoft.ManagedIdentity type: ManagedIdentityExtensionForLinux typeHandlerVersion: '1.0' settings: '{"port": 50342}' outputs: principalId: ${example.identity.principalId}
- title="Optional"> <span id="principalid_nodejs">- principal - Id string
- tenantId string
- type str
- Specifies the identity type to be assigned to the scale set. Allowable values are SystemAssignedandUserAssigned. For theSystemAssignedidentity the scale set's Service Principal ID (SPN) can be retrieved after the scale set has been created. See documentation for more information. Possible values areSystemAssigned,UserAssignedandSystemAssigned, UserAssigned.
- identity_ids Sequence[str]
- Specifies a list of user managed identity ids to be assigned to the VMSS. Required if typeisUserAssigned.import * as pulumi from "@pulumi/pulumi"; import * as azure from "@pulumi/azure";const example = new azure.compute.ScaleSet("example", { name: "vm-scaleset", resourceGroupName: exampleAzurermResourceGroup.name, location: exampleAzurermResourceGroup.location, sku: { name: vmSku, tier: "Standard", capacity: instanceCount, }, identity: { type: "SystemAssigned", }, extensions: [{ name: "MSILinuxExtension", publisher: "Microsoft.ManagedIdentity", type: "ManagedIdentityExtensionForLinux", typeHandlerVersion: "1.0", settings: "{"port": 50342}", }], }); export const principalId = example.identity.apply(identity => identity?.principalId); import pulumi import pulumi_azure as azure example = azure.compute.ScaleSet("example", name="vm-scaleset", resource_group_name=example_azurerm_resource_group["name"], location=example_azurerm_resource_group["location"], sku={ "name": vm_sku, "tier": "Standard", "capacity": instance_count, }, identity={ "type": "SystemAssigned", }, extensions=[{ "name": "MSILinuxExtension", "publisher": "Microsoft.ManagedIdentity", "type": "ManagedIdentityExtensionForLinux", "type_handler_version": "1.0", "settings": "{\"port\": 50342}", }]) pulumi.export("principalId", example.identity.principal_id)using System.Collections.Generic; using System.Linq; using Pulumi; using Azure = Pulumi.Azure; return await Deployment.RunAsync(() => { var example = new Azure.Compute.ScaleSet("example", new() { Name = "vm-scaleset", ResourceGroupName = exampleAzurermResourceGroup.Name, Location = exampleAzurermResourceGroup.Location, Sku = new Azure.Compute.Inputs.ScaleSetSkuArgs { Name = vmSku, Tier = "Standard", Capacity = instanceCount, }, Identity = new Azure.Compute.Inputs.ScaleSetIdentityArgs { Type = "SystemAssigned", }, Extensions = new[] { new Azure.Compute.Inputs.ScaleSetExtensionArgs { Name = "MSILinuxExtension", Publisher = "Microsoft.ManagedIdentity", Type = "ManagedIdentityExtensionForLinux", TypeHandlerVersion = "1.0", Settings = "{\"port\": 50342}", }, }, }); return new Dictionary<string, object?> { ["principalId"] = example.Identity.Apply(identity => identity?.PrincipalId), }; });package main import ( "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { example, err := compute.NewScaleSet(ctx, "example", &compute.ScaleSetArgs{ Name: pulumi.String("vm-scaleset"), ResourceGroupName: pulumi.Any(exampleAzurermResourceGroup.Name), Location: pulumi.Any(exampleAzurermResourceGroup.Location), Sku: &compute.ScaleSetSkuArgs{ Name: pulumi.Any(vmSku), Tier: pulumi.String("Standard"), Capacity: pulumi.Any(instanceCount), }, Identity: &compute.ScaleSetIdentityArgs{ Type: pulumi.String("SystemAssigned"), }, Extensions: compute.ScaleSetExtensionArray{ &compute.ScaleSetExtensionArgs{ Name: pulumi.String("MSILinuxExtension"), Publisher: pulumi.String("Microsoft.ManagedIdentity"), Type: pulumi.String("ManagedIdentityExtensionForLinux"), TypeHandlerVersion: pulumi.String("1.0"), Settings: pulumi.String("{\"port\": 50342}"), }, }, }) if err != nil { return err } ctx.Export("principalId", example.Identity.ApplyT(func(identity compute.ScaleSetIdentity) (*string, error) { return &identity.PrincipalId, nil }).(pulumi.StringPtrOutput)) return nil }) }package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azure.compute.ScaleSet; import com.pulumi.azure.compute.ScaleSetArgs; import com.pulumi.azure.compute.inputs.ScaleSetSkuArgs; import com.pulumi.azure.compute.inputs.ScaleSetIdentityArgs; import com.pulumi.azure.compute.inputs.ScaleSetExtensionArgs; 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 ScaleSet("example", ScaleSetArgs.builder() .name("vm-scaleset") .resourceGroupName(exampleAzurermResourceGroup.name()) .location(exampleAzurermResourceGroup.location()) .sku(ScaleSetSkuArgs.builder() .name(vmSku) .tier("Standard") .capacity(instanceCount) .build()) .identity(ScaleSetIdentityArgs.builder() .type("SystemAssigned") .build()) .extensions(ScaleSetExtensionArgs.builder() .name("MSILinuxExtension") .publisher("Microsoft.ManagedIdentity") .type("ManagedIdentityExtensionForLinux") .typeHandlerVersion("1.0") .settings("{\"port\": 50342}") .build()) .build()); ctx.export("principalId", example.identity().applyValue(identity -> identity.principalId())); } }resources: example: type: azure:compute:ScaleSet properties: name: vm-scaleset resourceGroupName: ${exampleAzurermResourceGroup.name} location: ${exampleAzurermResourceGroup.location} sku: name: ${vmSku} tier: Standard capacity: ${instanceCount} identity: type: SystemAssigned extensions: - name: MSILinuxExtension publisher: Microsoft.ManagedIdentity type: ManagedIdentityExtensionForLinux typeHandlerVersion: '1.0' settings: '{"port": 50342}' outputs: principalId: ${example.identity.principalId}
- title="Optional"> <span id="principal_id_python">- principal_ - id str
- tenant_id str
- type String
- Specifies the identity type to be assigned to the scale set. Allowable values are SystemAssignedandUserAssigned. For theSystemAssignedidentity the scale set's Service Principal ID (SPN) can be retrieved after the scale set has been created. See documentation for more information. Possible values areSystemAssigned,UserAssignedandSystemAssigned, UserAssigned.
- identityIds List<String>
- Specifies a list of user managed identity ids to be assigned to the VMSS. Required if typeisUserAssigned.import * as pulumi from "@pulumi/pulumi"; import * as azure from "@pulumi/azure";const example = new azure.compute.ScaleSet("example", { name: "vm-scaleset", resourceGroupName: exampleAzurermResourceGroup.name, location: exampleAzurermResourceGroup.location, sku: { name: vmSku, tier: "Standard", capacity: instanceCount, }, identity: { type: "SystemAssigned", }, extensions: [{ name: "MSILinuxExtension", publisher: "Microsoft.ManagedIdentity", type: "ManagedIdentityExtensionForLinux", typeHandlerVersion: "1.0", settings: "{"port": 50342}", }], }); export const principalId = example.identity.apply(identity => identity?.principalId); import pulumi import pulumi_azure as azure example = azure.compute.ScaleSet("example", name="vm-scaleset", resource_group_name=example_azurerm_resource_group["name"], location=example_azurerm_resource_group["location"], sku={ "name": vm_sku, "tier": "Standard", "capacity": instance_count, }, identity={ "type": "SystemAssigned", }, extensions=[{ "name": "MSILinuxExtension", "publisher": "Microsoft.ManagedIdentity", "type": "ManagedIdentityExtensionForLinux", "type_handler_version": "1.0", "settings": "{\"port\": 50342}", }]) pulumi.export("principalId", example.identity.principal_id)using System.Collections.Generic; using System.Linq; using Pulumi; using Azure = Pulumi.Azure; return await Deployment.RunAsync(() => { var example = new Azure.Compute.ScaleSet("example", new() { Name = "vm-scaleset", ResourceGroupName = exampleAzurermResourceGroup.Name, Location = exampleAzurermResourceGroup.Location, Sku = new Azure.Compute.Inputs.ScaleSetSkuArgs { Name = vmSku, Tier = "Standard", Capacity = instanceCount, }, Identity = new Azure.Compute.Inputs.ScaleSetIdentityArgs { Type = "SystemAssigned", }, Extensions = new[] { new Azure.Compute.Inputs.ScaleSetExtensionArgs { Name = "MSILinuxExtension", Publisher = "Microsoft.ManagedIdentity", Type = "ManagedIdentityExtensionForLinux", TypeHandlerVersion = "1.0", Settings = "{\"port\": 50342}", }, }, }); return new Dictionary<string, object?> { ["principalId"] = example.Identity.Apply(identity => identity?.PrincipalId), }; });package main import ( "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { example, err := compute.NewScaleSet(ctx, "example", &compute.ScaleSetArgs{ Name: pulumi.String("vm-scaleset"), ResourceGroupName: pulumi.Any(exampleAzurermResourceGroup.Name), Location: pulumi.Any(exampleAzurermResourceGroup.Location), Sku: &compute.ScaleSetSkuArgs{ Name: pulumi.Any(vmSku), Tier: pulumi.String("Standard"), Capacity: pulumi.Any(instanceCount), }, Identity: &compute.ScaleSetIdentityArgs{ Type: pulumi.String("SystemAssigned"), }, Extensions: compute.ScaleSetExtensionArray{ &compute.ScaleSetExtensionArgs{ Name: pulumi.String("MSILinuxExtension"), Publisher: pulumi.String("Microsoft.ManagedIdentity"), Type: pulumi.String("ManagedIdentityExtensionForLinux"), TypeHandlerVersion: pulumi.String("1.0"), Settings: pulumi.String("{\"port\": 50342}"), }, }, }) if err != nil { return err } ctx.Export("principalId", example.Identity.ApplyT(func(identity compute.ScaleSetIdentity) (*string, error) { return &identity.PrincipalId, nil }).(pulumi.StringPtrOutput)) return nil }) }package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azure.compute.ScaleSet; import com.pulumi.azure.compute.ScaleSetArgs; import com.pulumi.azure.compute.inputs.ScaleSetSkuArgs; import com.pulumi.azure.compute.inputs.ScaleSetIdentityArgs; import com.pulumi.azure.compute.inputs.ScaleSetExtensionArgs; 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 ScaleSet("example", ScaleSetArgs.builder() .name("vm-scaleset") .resourceGroupName(exampleAzurermResourceGroup.name()) .location(exampleAzurermResourceGroup.location()) .sku(ScaleSetSkuArgs.builder() .name(vmSku) .tier("Standard") .capacity(instanceCount) .build()) .identity(ScaleSetIdentityArgs.builder() .type("SystemAssigned") .build()) .extensions(ScaleSetExtensionArgs.builder() .name("MSILinuxExtension") .publisher("Microsoft.ManagedIdentity") .type("ManagedIdentityExtensionForLinux") .typeHandlerVersion("1.0") .settings("{\"port\": 50342}") .build()) .build()); ctx.export("principalId", example.identity().applyValue(identity -> identity.principalId())); } }resources: example: type: azure:compute:ScaleSet properties: name: vm-scaleset resourceGroupName: ${exampleAzurermResourceGroup.name} location: ${exampleAzurermResourceGroup.location} sku: name: ${vmSku} tier: Standard capacity: ${instanceCount} identity: type: SystemAssigned extensions: - name: MSILinuxExtension publisher: Microsoft.ManagedIdentity type: ManagedIdentityExtensionForLinux typeHandlerVersion: '1.0' settings: '{"port": 50342}' outputs: principalId: ${example.identity.principalId}
- title="Optional"> <span id="principalid_yaml">- principal - Id String
- tenantId String
ScaleSetNetworkProfile, ScaleSetNetworkProfileArgs        
- IpConfigurations List<ScaleSet Network Profile Ip Configuration> 
- An ip_configurationblock as documented below.
- Name string
- Specifies the name of the network interface configuration.
- Primary bool
- Indicates whether network interfaces created from the network interface configuration will be the primary NIC of the VM.
- AcceleratedNetworking bool
- Specifies whether to enable accelerated networking or not.
- DnsSettings ScaleSet Network Profile Dns Settings 
- A dns_settingsblock as documented below.
- IpForwarding bool
- Whether IP forwarding is enabled on this NIC. Defaults to false.
- NetworkSecurity stringGroup Id 
- Specifies the identifier for the network security group.
- IpConfigurations []ScaleSet Network Profile Ip Configuration 
- An ip_configurationblock as documented below.
- Name string
- Specifies the name of the network interface configuration.
- Primary bool
- Indicates whether network interfaces created from the network interface configuration will be the primary NIC of the VM.
- AcceleratedNetworking bool
- Specifies whether to enable accelerated networking or not.
- DnsSettings ScaleSet Network Profile Dns Settings 
- A dns_settingsblock as documented below.
- IpForwarding bool
- Whether IP forwarding is enabled on this NIC. Defaults to false.
- NetworkSecurity stringGroup Id 
- Specifies the identifier for the network security group.
- ipConfigurations List<ScaleSet Network Profile Ip Configuration> 
- An ip_configurationblock as documented below.
- name String
- Specifies the name of the network interface configuration.
- primary Boolean
- Indicates whether network interfaces created from the network interface configuration will be the primary NIC of the VM.
- acceleratedNetworking Boolean
- Specifies whether to enable accelerated networking or not.
- dnsSettings ScaleSet Network Profile Dns Settings 
- A dns_settingsblock as documented below.
- ipForwarding Boolean
- Whether IP forwarding is enabled on this NIC. Defaults to false.
- networkSecurity StringGroup Id 
- Specifies the identifier for the network security group.
- ipConfigurations ScaleSet Network Profile Ip Configuration[] 
- An ip_configurationblock as documented below.
- name string
- Specifies the name of the network interface configuration.
- primary boolean
- Indicates whether network interfaces created from the network interface configuration will be the primary NIC of the VM.
- acceleratedNetworking boolean
- Specifies whether to enable accelerated networking or not.
- dnsSettings ScaleSet Network Profile Dns Settings 
- A dns_settingsblock as documented below.
- ipForwarding boolean
- Whether IP forwarding is enabled on this NIC. Defaults to false.
- networkSecurity stringGroup Id 
- Specifies the identifier for the network security group.
- ip_configurations Sequence[ScaleSet Network Profile Ip Configuration] 
- An ip_configurationblock as documented below.
- name str
- Specifies the name of the network interface configuration.
- primary bool
- Indicates whether network interfaces created from the network interface configuration will be the primary NIC of the VM.
- accelerated_networking bool
- Specifies whether to enable accelerated networking or not.
- dns_settings ScaleSet Network Profile Dns Settings 
- A dns_settingsblock as documented below.
- ip_forwarding bool
- Whether IP forwarding is enabled on this NIC. Defaults to false.
- network_security_ strgroup_ id 
- Specifies the identifier for the network security group.
- ipConfigurations List<Property Map>
- An ip_configurationblock as documented below.
- name String
- Specifies the name of the network interface configuration.
- primary Boolean
- Indicates whether network interfaces created from the network interface configuration will be the primary NIC of the VM.
- acceleratedNetworking Boolean
- Specifies whether to enable accelerated networking or not.
- dnsSettings Property Map
- A dns_settingsblock as documented below.
- ipForwarding Boolean
- Whether IP forwarding is enabled on this NIC. Defaults to false.
- networkSecurity StringGroup Id 
- Specifies the identifier for the network security group.
ScaleSetNetworkProfileDnsSettings, ScaleSetNetworkProfileDnsSettingsArgs            
- DnsServers List<string>
- Specifies an array of DNS servers.
- DnsServers []string
- Specifies an array of DNS servers.
- dnsServers List<String>
- Specifies an array of DNS servers.
- dnsServers string[]
- Specifies an array of DNS servers.
- dns_servers Sequence[str]
- Specifies an array of DNS servers.
- dnsServers List<String>
- Specifies an array of DNS servers.
ScaleSetNetworkProfileIpConfiguration, ScaleSetNetworkProfileIpConfigurationArgs            
- Name string
- Specifies name of the IP configuration.
- Primary bool
- Specifies if this ip_configuration is the primary one.
- SubnetId string
- Specifies the identifier of the subnet.
- ApplicationGateway List<string>Backend Address Pool Ids 
- Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.
- ApplicationSecurity List<string>Group Ids 
- Specifies up to 20application security group IDs.
- LoadBalancer List<string>Backend Address Pool Ids 
- Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer. - NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a - depends_onbetween this resource and the Load Balancer Rule.
- LoadBalancer List<string>Inbound Nat Rules Ids 
- Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound NAT pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer. - NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a - depends_onbetween this resource and the Load Balancer Rule.
- PublicIp ScaleAddress Configuration Set Network Profile Ip Configuration Public Ip Address Configuration 
- Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. The public_ip_address_configurationblock is documented below.
- Name string
- Specifies name of the IP configuration.
- Primary bool
- Specifies if this ip_configuration is the primary one.
- SubnetId string
- Specifies the identifier of the subnet.
- ApplicationGateway []stringBackend Address Pool Ids 
- Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.
- ApplicationSecurity []stringGroup Ids 
- Specifies up to 20application security group IDs.
- LoadBalancer []stringBackend Address Pool Ids 
- Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer. - NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a - depends_onbetween this resource and the Load Balancer Rule.
- LoadBalancer []stringInbound Nat Rules Ids 
- Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound NAT pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer. - NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a - depends_onbetween this resource and the Load Balancer Rule.
- PublicIp ScaleAddress Configuration Set Network Profile Ip Configuration Public Ip Address Configuration 
- Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. The public_ip_address_configurationblock is documented below.
- name String
- Specifies name of the IP configuration.
- primary Boolean
- Specifies if this ip_configuration is the primary one.
- subnetId String
- Specifies the identifier of the subnet.
- applicationGateway List<String>Backend Address Pool Ids 
- Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.
- applicationSecurity List<String>Group Ids 
- Specifies up to 20application security group IDs.
- loadBalancer List<String>Backend Address Pool Ids 
- Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer. - NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a - depends_onbetween this resource and the Load Balancer Rule.
- loadBalancer List<String>Inbound Nat Rules Ids 
- Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound NAT pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer. - NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a - depends_onbetween this resource and the Load Balancer Rule.
- publicIp ScaleAddress Configuration Set Network Profile Ip Configuration Public Ip Address Configuration 
- Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. The public_ip_address_configurationblock is documented below.
- name string
- Specifies name of the IP configuration.
- primary boolean
- Specifies if this ip_configuration is the primary one.
- subnetId string
- Specifies the identifier of the subnet.
- applicationGateway string[]Backend Address Pool Ids 
- Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.
- applicationSecurity string[]Group Ids 
- Specifies up to 20application security group IDs.
- loadBalancer string[]Backend Address Pool Ids 
- Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer. - NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a - depends_onbetween this resource and the Load Balancer Rule.
- loadBalancer string[]Inbound Nat Rules Ids 
- Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound NAT pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer. - NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a - depends_onbetween this resource and the Load Balancer Rule.
- publicIp ScaleAddress Configuration Set Network Profile Ip Configuration Public Ip Address Configuration 
- Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. The public_ip_address_configurationblock is documented below.
- name str
- Specifies name of the IP configuration.
- primary bool
- Specifies if this ip_configuration is the primary one.
- subnet_id str
- Specifies the identifier of the subnet.
- application_gateway_ Sequence[str]backend_ address_ pool_ ids 
- Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.
- application_security_ Sequence[str]group_ ids 
- Specifies up to 20application security group IDs.
- load_balancer_ Sequence[str]backend_ address_ pool_ ids 
- Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer. - NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a - depends_onbetween this resource and the Load Balancer Rule.
- load_balancer_ Sequence[str]inbound_ nat_ rules_ ids 
- Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound NAT pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer. - NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a - depends_onbetween this resource and the Load Balancer Rule.
- public_ip_ Scaleaddress_ configuration Set Network Profile Ip Configuration Public Ip Address Configuration 
- Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. The public_ip_address_configurationblock is documented below.
- name String
- Specifies name of the IP configuration.
- primary Boolean
- Specifies if this ip_configuration is the primary one.
- subnetId String
- Specifies the identifier of the subnet.
- applicationGateway List<String>Backend Address Pool Ids 
- Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets can use the same application gateway.
- applicationSecurity List<String>Group Ids 
- Specifies up to 20application security group IDs.
- loadBalancer List<String>Backend Address Pool Ids 
- Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer. - NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a - depends_onbetween this resource and the Load Balancer Rule.
- loadBalancer List<String>Inbound Nat Rules Ids 
- Specifies an array of references to inbound NAT pools for load balancers. A scale set can reference inbound NAT pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer. - NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a - depends_onbetween this resource and the Load Balancer Rule.
- publicIp Property MapAddress Configuration 
- Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. The public_ip_address_configurationblock is documented below.
ScaleSetNetworkProfileIpConfigurationPublicIpAddressConfiguration, ScaleSetNetworkProfileIpConfigurationPublicIpAddressConfigurationArgs                    
- DomainName stringLabel 
- The domain name label for the DNS settings.
- IdleTimeout int
- The idle timeout in minutes. This value must be between 4 and 30.
- Name string
- The name of the public IP address configuration
- DomainName stringLabel 
- The domain name label for the DNS settings.
- IdleTimeout int
- The idle timeout in minutes. This value must be between 4 and 30.
- Name string
- The name of the public IP address configuration
- domainName StringLabel 
- The domain name label for the DNS settings.
- idleTimeout Integer
- The idle timeout in minutes. This value must be between 4 and 30.
- name String
- The name of the public IP address configuration
- domainName stringLabel 
- The domain name label for the DNS settings.
- idleTimeout number
- The idle timeout in minutes. This value must be between 4 and 30.
- name string
- The name of the public IP address configuration
- domain_name_ strlabel 
- The domain name label for the DNS settings.
- idle_timeout int
- The idle timeout in minutes. This value must be between 4 and 30.
- name str
- The name of the public IP address configuration
- domainName StringLabel 
- The domain name label for the DNS settings.
- idleTimeout Number
- The idle timeout in minutes. This value must be between 4 and 30.
- name String
- The name of the public IP address configuration
ScaleSetOsProfile, ScaleSetOsProfileArgs        
- AdminUsername string
- Specifies the administrator account name to use for all the instances of virtual machines in the scale set.
- ComputerName stringPrefix 
- Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 9 characters long for windows images and 1 - 58 for Linux. Changing this forces a new resource to be created.
- AdminPassword string
- Specifies the administrator password to use for all the instances of virtual machines in a scale set.
- CustomData string
- Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.
- AdminUsername string
- Specifies the administrator account name to use for all the instances of virtual machines in the scale set.
- ComputerName stringPrefix 
- Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 9 characters long for windows images and 1 - 58 for Linux. Changing this forces a new resource to be created.
- AdminPassword string
- Specifies the administrator password to use for all the instances of virtual machines in a scale set.
- CustomData string
- Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.
- adminUsername String
- Specifies the administrator account name to use for all the instances of virtual machines in the scale set.
- computerName StringPrefix 
- Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 9 characters long for windows images and 1 - 58 for Linux. Changing this forces a new resource to be created.
- adminPassword String
- Specifies the administrator password to use for all the instances of virtual machines in a scale set.
- customData String
- Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.
- adminUsername string
- Specifies the administrator account name to use for all the instances of virtual machines in the scale set.
- computerName stringPrefix 
- Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 9 characters long for windows images and 1 - 58 for Linux. Changing this forces a new resource to be created.
- adminPassword string
- Specifies the administrator password to use for all the instances of virtual machines in a scale set.
- customData string
- Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.
- admin_username str
- Specifies the administrator account name to use for all the instances of virtual machines in the scale set.
- computer_name_ strprefix 
- Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 9 characters long for windows images and 1 - 58 for Linux. Changing this forces a new resource to be created.
- admin_password str
- Specifies the administrator password to use for all the instances of virtual machines in a scale set.
- custom_data str
- Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.
- adminUsername String
- Specifies the administrator account name to use for all the instances of virtual machines in the scale set.
- computerName StringPrefix 
- Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 9 characters long for windows images and 1 - 58 for Linux. Changing this forces a new resource to be created.
- adminPassword String
- Specifies the administrator password to use for all the instances of virtual machines in a scale set.
- customData String
- Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes.
ScaleSetOsProfileLinuxConfig, ScaleSetOsProfileLinuxConfigArgs            
- DisablePassword boolAuthentication 
- Specifies whether password authentication should be disabled. Defaults to false. Changing this forces a new resource to be created.
- SshKeys List<ScaleSet Os Profile Linux Config Ssh Key> 
- One or more - ssh_keysblocks as defined below.- Note: Please note that the only allowed - pathis- /home/<username>/.ssh/authorized_keysdue to a limitation of Azure.- NOTE: At least one - ssh_keysblock is required if- disable_password_authenticationis set to- true.
- DisablePassword boolAuthentication 
- Specifies whether password authentication should be disabled. Defaults to false. Changing this forces a new resource to be created.
- SshKeys []ScaleSet Os Profile Linux Config Ssh Key 
- One or more - ssh_keysblocks as defined below.- Note: Please note that the only allowed - pathis- /home/<username>/.ssh/authorized_keysdue to a limitation of Azure.- NOTE: At least one - ssh_keysblock is required if- disable_password_authenticationis set to- true.
- disablePassword BooleanAuthentication 
- Specifies whether password authentication should be disabled. Defaults to false. Changing this forces a new resource to be created.
- sshKeys List<ScaleSet Os Profile Linux Config Ssh Key> 
- One or more - ssh_keysblocks as defined below.- Note: Please note that the only allowed - pathis- /home/<username>/.ssh/authorized_keysdue to a limitation of Azure.- NOTE: At least one - ssh_keysblock is required if- disable_password_authenticationis set to- true.
- disablePassword booleanAuthentication 
- Specifies whether password authentication should be disabled. Defaults to false. Changing this forces a new resource to be created.
- sshKeys ScaleSet Os Profile Linux Config Ssh Key[] 
- One or more - ssh_keysblocks as defined below.- Note: Please note that the only allowed - pathis- /home/<username>/.ssh/authorized_keysdue to a limitation of Azure.- NOTE: At least one - ssh_keysblock is required if- disable_password_authenticationis set to- true.
- disable_password_ boolauthentication 
- Specifies whether password authentication should be disabled. Defaults to false. Changing this forces a new resource to be created.
- ssh_keys Sequence[ScaleSet Os Profile Linux Config Ssh Key] 
- One or more - ssh_keysblocks as defined below.- Note: Please note that the only allowed - pathis- /home/<username>/.ssh/authorized_keysdue to a limitation of Azure.- NOTE: At least one - ssh_keysblock is required if- disable_password_authenticationis set to- true.
- disablePassword BooleanAuthentication 
- Specifies whether password authentication should be disabled. Defaults to false. Changing this forces a new resource to be created.
- sshKeys List<Property Map>
- One or more - ssh_keysblocks as defined below.- Note: Please note that the only allowed - pathis- /home/<username>/.ssh/authorized_keysdue to a limitation of Azure.- NOTE: At least one - ssh_keysblock is required if- disable_password_authenticationis set to- true.
ScaleSetOsProfileLinuxConfigSshKey, ScaleSetOsProfileLinuxConfigSshKeyArgs                
- Path string
- The path of the destination file on the virtual machine - NOTE: Due to a limitation in the Azure VM Agent the only allowed - pathis- /home/{username}/.ssh/authorized_keys.
- KeyData string
- The Public SSH Key which should be written to the - pathdefined above.- Note: Azure only supports RSA SSH2 key signatures of at least 2048 bits in length - NOTE: Rather than defining this in-line you can source this from a local file using the - filefunction - for example- key_data = file("~/.ssh/id_rsa.pub").
- Path string
- The path of the destination file on the virtual machine - NOTE: Due to a limitation in the Azure VM Agent the only allowed - pathis- /home/{username}/.ssh/authorized_keys.
- KeyData string
- The Public SSH Key which should be written to the - pathdefined above.- Note: Azure only supports RSA SSH2 key signatures of at least 2048 bits in length - NOTE: Rather than defining this in-line you can source this from a local file using the - filefunction - for example- key_data = file("~/.ssh/id_rsa.pub").
- path String
- The path of the destination file on the virtual machine - NOTE: Due to a limitation in the Azure VM Agent the only allowed - pathis- /home/{username}/.ssh/authorized_keys.
- keyData String
- The Public SSH Key which should be written to the - pathdefined above.- Note: Azure only supports RSA SSH2 key signatures of at least 2048 bits in length - NOTE: Rather than defining this in-line you can source this from a local file using the - filefunction - for example- key_data = file("~/.ssh/id_rsa.pub").
- path string
- The path of the destination file on the virtual machine - NOTE: Due to a limitation in the Azure VM Agent the only allowed - pathis- /home/{username}/.ssh/authorized_keys.
- keyData string
- The Public SSH Key which should be written to the - pathdefined above.- Note: Azure only supports RSA SSH2 key signatures of at least 2048 bits in length - NOTE: Rather than defining this in-line you can source this from a local file using the - filefunction - for example- key_data = file("~/.ssh/id_rsa.pub").
- path str
- The path of the destination file on the virtual machine - NOTE: Due to a limitation in the Azure VM Agent the only allowed - pathis- /home/{username}/.ssh/authorized_keys.
- key_data str
- The Public SSH Key which should be written to the - pathdefined above.- Note: Azure only supports RSA SSH2 key signatures of at least 2048 bits in length - NOTE: Rather than defining this in-line you can source this from a local file using the - filefunction - for example- key_data = file("~/.ssh/id_rsa.pub").
- path String
- The path of the destination file on the virtual machine - NOTE: Due to a limitation in the Azure VM Agent the only allowed - pathis- /home/{username}/.ssh/authorized_keys.
- keyData String
- The Public SSH Key which should be written to the - pathdefined above.- Note: Azure only supports RSA SSH2 key signatures of at least 2048 bits in length - NOTE: Rather than defining this in-line you can source this from a local file using the - filefunction - for example- key_data = file("~/.ssh/id_rsa.pub").
ScaleSetOsProfileSecret, ScaleSetOsProfileSecretArgs          
- SourceVault stringId 
- Specifies the key vault to use.
- VaultCertificates List<ScaleSet Os Profile Secret Vault Certificate> 
- (Required, on Windows machines) One or more vault_certificatesblocks as defined below.
- SourceVault stringId 
- Specifies the key vault to use.
- VaultCertificates []ScaleSet Os Profile Secret Vault Certificate 
- (Required, on Windows machines) One or more vault_certificatesblocks as defined below.
- sourceVault StringId 
- Specifies the key vault to use.
- vaultCertificates List<ScaleSet Os Profile Secret Vault Certificate> 
- (Required, on Windows machines) One or more vault_certificatesblocks as defined below.
- sourceVault stringId 
- Specifies the key vault to use.
- vaultCertificates ScaleSet Os Profile Secret Vault Certificate[] 
- (Required, on Windows machines) One or more vault_certificatesblocks as defined below.
- source_vault_ strid 
- Specifies the key vault to use.
- vault_certificates Sequence[ScaleSet Os Profile Secret Vault Certificate] 
- (Required, on Windows machines) One or more vault_certificatesblocks as defined below.
- sourceVault StringId 
- Specifies the key vault to use.
- vaultCertificates List<Property Map>
- (Required, on Windows machines) One or more vault_certificatesblocks as defined below.
ScaleSetOsProfileSecretVaultCertificate, ScaleSetOsProfileSecretVaultCertificateArgs              
- CertificateUrl string
- It is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be data,dataTypeandpassword.
- CertificateStore string
- (Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to.
- CertificateUrl string
- It is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be data,dataTypeandpassword.
- CertificateStore string
- (Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to.
- certificateUrl String
- It is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be data,dataTypeandpassword.
- certificateStore String
- (Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to.
- certificateUrl string
- It is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be data,dataTypeandpassword.
- certificateStore string
- (Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to.
- certificate_url str
- It is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be data,dataTypeandpassword.
- certificate_store str
- (Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to.
- certificateUrl String
- It is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be data,dataTypeandpassword.
- certificateStore String
- (Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to.
ScaleSetOsProfileWindowsConfig, ScaleSetOsProfileWindowsConfigArgs            
- AdditionalUnattend List<ScaleConfigs Set Os Profile Windows Config Additional Unattend Config> 
- An additional_unattend_configblock as documented below.
- EnableAutomatic boolUpgrades 
- Indicates whether virtual machines in the scale set are enabled for automatic updates.
- ProvisionVm boolAgent 
- Indicates whether virtual machine agent should be provisioned on the virtual machines in the scale set.
- Winrms
List<ScaleSet Os Profile Windows Config Winrm> 
- A collection of winrmblocks as documented below.
- AdditionalUnattend []ScaleConfigs Set Os Profile Windows Config Additional Unattend Config 
- An additional_unattend_configblock as documented below.
- EnableAutomatic boolUpgrades 
- Indicates whether virtual machines in the scale set are enabled for automatic updates.
- ProvisionVm boolAgent 
- Indicates whether virtual machine agent should be provisioned on the virtual machines in the scale set.
- Winrms
[]ScaleSet Os Profile Windows Config Winrm 
- A collection of winrmblocks as documented below.
- additionalUnattend List<ScaleConfigs Set Os Profile Windows Config Additional Unattend Config> 
- An additional_unattend_configblock as documented below.
- enableAutomatic BooleanUpgrades 
- Indicates whether virtual machines in the scale set are enabled for automatic updates.
- provisionVm BooleanAgent 
- Indicates whether virtual machine agent should be provisioned on the virtual machines in the scale set.
- winrms
List<ScaleSet Os Profile Windows Config Winrm> 
- A collection of winrmblocks as documented below.
- additionalUnattend ScaleConfigs Set Os Profile Windows Config Additional Unattend Config[] 
- An additional_unattend_configblock as documented below.
- enableAutomatic booleanUpgrades 
- Indicates whether virtual machines in the scale set are enabled for automatic updates.
- provisionVm booleanAgent 
- Indicates whether virtual machine agent should be provisioned on the virtual machines in the scale set.
- winrms
ScaleSet Os Profile Windows Config Winrm[] 
- A collection of winrmblocks as documented below.
- additional_unattend_ Sequence[Scaleconfigs Set Os Profile Windows Config Additional Unattend Config] 
- An additional_unattend_configblock as documented below.
- enable_automatic_ boolupgrades 
- Indicates whether virtual machines in the scale set are enabled for automatic updates.
- provision_vm_ boolagent 
- Indicates whether virtual machine agent should be provisioned on the virtual machines in the scale set.
- winrms
Sequence[ScaleSet Os Profile Windows Config Winrm] 
- A collection of winrmblocks as documented below.
- additionalUnattend List<Property Map>Configs 
- An additional_unattend_configblock as documented below.
- enableAutomatic BooleanUpgrades 
- Indicates whether virtual machines in the scale set are enabled for automatic updates.
- provisionVm BooleanAgent 
- Indicates whether virtual machine agent should be provisioned on the virtual machines in the scale set.
- winrms List<Property Map>
- A collection of winrmblocks as documented below.
ScaleSetOsProfileWindowsConfigAdditionalUnattendConfig, ScaleSetOsProfileWindowsConfigAdditionalUnattendConfigArgs                  
- Component string
- Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
- Content string
- Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
- Pass string
- Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.
- SettingName string
- Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommandsandAutoLogon.
- Component string
- Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
- Content string
- Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
- Pass string
- Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.
- SettingName string
- Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommandsandAutoLogon.
- component String
- Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
- content String
- Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
- pass String
- Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.
- settingName String
- Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommandsandAutoLogon.
- component string
- Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
- content string
- Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
- pass string
- Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.
- settingName string
- Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommandsandAutoLogon.
- component str
- Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
- content str
- Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
- pass_ str
- Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.
- setting_name str
- Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommandsandAutoLogon.
- component String
- Specifies the name of the component to configure with the added content. The only allowable value is Microsoft-Windows-Shell-Setup.
- content String
- Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.
- pass String
- Specifies the name of the pass that the content applies to. The only allowable value is oobeSystem.
- settingName String
- Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommandsandAutoLogon.
ScaleSetOsProfileWindowsConfigWinrm, ScaleSetOsProfileWindowsConfigWinrmArgs              
- Protocol string
- Specifies the protocol of listener
- CertificateUrl string
- Specifies URL of the certificate with which new Virtual Machines is provisioned.
- Protocol string
- Specifies the protocol of listener
- CertificateUrl string
- Specifies URL of the certificate with which new Virtual Machines is provisioned.
- protocol String
- Specifies the protocol of listener
- certificateUrl String
- Specifies URL of the certificate with which new Virtual Machines is provisioned.
- protocol string
- Specifies the protocol of listener
- certificateUrl string
- Specifies URL of the certificate with which new Virtual Machines is provisioned.
- protocol str
- Specifies the protocol of listener
- certificate_url str
- Specifies URL of the certificate with which new Virtual Machines is provisioned.
- protocol String
- Specifies the protocol of listener
- certificateUrl String
- Specifies URL of the certificate with which new Virtual Machines is provisioned.
ScaleSetPlan, ScaleSetPlanArgs      
ScaleSetRollingUpgradePolicy, ScaleSetRollingUpgradePolicyArgs          
- MaxBatch intInstance Percent 
- The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. Defaults to 20.
- MaxUnhealthy intInstance Percent 
- The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. Defaults to 20.
- MaxUnhealthy intUpgraded Instance Percent 
- The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. Defaults to 20.
- PauseTime stringBetween Batches 
- The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format for duration (https://en.wikipedia.org/wiki/ISO_8601#Durations). Defaults to PT0Sseconds represented asPT0S.
- MaxBatch intInstance Percent 
- The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. Defaults to 20.
- MaxUnhealthy intInstance Percent 
- The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. Defaults to 20.
- MaxUnhealthy intUpgraded Instance Percent 
- The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. Defaults to 20.
- PauseTime stringBetween Batches 
- The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format for duration (https://en.wikipedia.org/wiki/ISO_8601#Durations). Defaults to PT0Sseconds represented asPT0S.
- maxBatch IntegerInstance Percent 
- The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. Defaults to 20.
- maxUnhealthy IntegerInstance Percent 
- The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. Defaults to 20.
- maxUnhealthy IntegerUpgraded Instance Percent 
- The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. Defaults to 20.
- pauseTime StringBetween Batches 
- The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format for duration (https://en.wikipedia.org/wiki/ISO_8601#Durations). Defaults to PT0Sseconds represented asPT0S.
- maxBatch numberInstance Percent 
- The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. Defaults to 20.
- maxUnhealthy numberInstance Percent 
- The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. Defaults to 20.
- maxUnhealthy numberUpgraded Instance Percent 
- The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. Defaults to 20.
- pauseTime stringBetween Batches 
- The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format for duration (https://en.wikipedia.org/wiki/ISO_8601#Durations). Defaults to PT0Sseconds represented asPT0S.
- max_batch_ intinstance_ percent 
- The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. Defaults to 20.
- max_unhealthy_ intinstance_ percent 
- The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. Defaults to 20.
- max_unhealthy_ intupgraded_ instance_ percent 
- The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. Defaults to 20.
- pause_time_ strbetween_ batches 
- The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format for duration (https://en.wikipedia.org/wiki/ISO_8601#Durations). Defaults to PT0Sseconds represented asPT0S.
- maxBatch NumberInstance Percent 
- The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. Defaults to 20.
- maxUnhealthy NumberInstance Percent 
- The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. Defaults to 20.
- maxUnhealthy NumberUpgraded Instance Percent 
- The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. Defaults to 20.
- pauseTime StringBetween Batches 
- The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format for duration (https://en.wikipedia.org/wiki/ISO_8601#Durations). Defaults to PT0Sseconds represented asPT0S.
ScaleSetSku, ScaleSetSkuArgs      
ScaleSetStorageProfileDataDisk, ScaleSetStorageProfileDataDiskArgs            
- CreateOption string
- Specifies how the data disk should be created. The only possible options are FromImageandEmpty.
- Lun int
- Specifies the Logical Unit Number of the disk in each virtual machine in the scale set.
- Caching string
- Specifies the caching requirements. Possible values include: None(default),ReadOnly,ReadWrite.
- DiskSize intGb 
- Specifies the size of the disk in GB. This element is required when creating an empty disk.
- ManagedDisk stringType 
- Specifies the type of managed disk to create. Value must be either Standard_LRS,StandardSSD_LRSorPremium_LRS.
- CreateOption string
- Specifies how the data disk should be created. The only possible options are FromImageandEmpty.
- Lun int
- Specifies the Logical Unit Number of the disk in each virtual machine in the scale set.
- Caching string
- Specifies the caching requirements. Possible values include: None(default),ReadOnly,ReadWrite.
- DiskSize intGb 
- Specifies the size of the disk in GB. This element is required when creating an empty disk.
- ManagedDisk stringType 
- Specifies the type of managed disk to create. Value must be either Standard_LRS,StandardSSD_LRSorPremium_LRS.
- createOption String
- Specifies how the data disk should be created. The only possible options are FromImageandEmpty.
- lun Integer
- Specifies the Logical Unit Number of the disk in each virtual machine in the scale set.
- caching String
- Specifies the caching requirements. Possible values include: None(default),ReadOnly,ReadWrite.
- diskSize IntegerGb 
- Specifies the size of the disk in GB. This element is required when creating an empty disk.
- managedDisk StringType 
- Specifies the type of managed disk to create. Value must be either Standard_LRS,StandardSSD_LRSorPremium_LRS.
- createOption string
- Specifies how the data disk should be created. The only possible options are FromImageandEmpty.
- lun number
- Specifies the Logical Unit Number of the disk in each virtual machine in the scale set.
- caching string
- Specifies the caching requirements. Possible values include: None(default),ReadOnly,ReadWrite.
- diskSize numberGb 
- Specifies the size of the disk in GB. This element is required when creating an empty disk.
- managedDisk stringType 
- Specifies the type of managed disk to create. Value must be either Standard_LRS,StandardSSD_LRSorPremium_LRS.
- create_option str
- Specifies how the data disk should be created. The only possible options are FromImageandEmpty.
- lun int
- Specifies the Logical Unit Number of the disk in each virtual machine in the scale set.
- caching str
- Specifies the caching requirements. Possible values include: None(default),ReadOnly,ReadWrite.
- disk_size_ intgb 
- Specifies the size of the disk in GB. This element is required when creating an empty disk.
- managed_disk_ strtype 
- Specifies the type of managed disk to create. Value must be either Standard_LRS,StandardSSD_LRSorPremium_LRS.
- createOption String
- Specifies how the data disk should be created. The only possible options are FromImageandEmpty.
- lun Number
- Specifies the Logical Unit Number of the disk in each virtual machine in the scale set.
- caching String
- Specifies the caching requirements. Possible values include: None(default),ReadOnly,ReadWrite.
- diskSize NumberGb 
- Specifies the size of the disk in GB. This element is required when creating an empty disk.
- managedDisk StringType 
- Specifies the type of managed disk to create. Value must be either Standard_LRS,StandardSSD_LRSorPremium_LRS.
ScaleSetStorageProfileImageReference, ScaleSetStorageProfileImageReferenceArgs            
- Id string
- Specifies the ID of the (custom) image to use to create the virtual machine scale set, as in the example below.
- Offer string
- Specifies the offer of the image used to create the virtual machines.
- Publisher string
- Specifies the publisher of the image used to create the virtual machines.
- Sku string
- Specifies the SKU of the image used to create the virtual machines.
- Version string
- Specifies the version of the image used to create the virtual machines.
- Id string
- Specifies the ID of the (custom) image to use to create the virtual machine scale set, as in the example below.
- Offer string
- Specifies the offer of the image used to create the virtual machines.
- Publisher string
- Specifies the publisher of the image used to create the virtual machines.
- Sku string
- Specifies the SKU of the image used to create the virtual machines.
- Version string
- Specifies the version of the image used to create the virtual machines.
- id String
- Specifies the ID of the (custom) image to use to create the virtual machine scale set, as in the example below.
- offer String
- Specifies the offer of the image used to create the virtual machines.
- publisher String
- Specifies the publisher of the image used to create the virtual machines.
- sku String
- Specifies the SKU of the image used to create the virtual machines.
- version String
- Specifies the version of the image used to create the virtual machines.
- id string
- Specifies the ID of the (custom) image to use to create the virtual machine scale set, as in the example below.
- offer string
- Specifies the offer of the image used to create the virtual machines.
- publisher string
- Specifies the publisher of the image used to create the virtual machines.
- sku string
- Specifies the SKU of the image used to create the virtual machines.
- version string
- Specifies the version of the image used to create the virtual machines.
- id str
- Specifies the ID of the (custom) image to use to create the virtual machine scale set, as in the example below.
- offer str
- Specifies the offer of the image used to create the virtual machines.
- publisher str
- Specifies the publisher of the image used to create the virtual machines.
- sku str
- Specifies the SKU of the image used to create the virtual machines.
- version str
- Specifies the version of the image used to create the virtual machines.
- id String
- Specifies the ID of the (custom) image to use to create the virtual machine scale set, as in the example below.
- offer String
- Specifies the offer of the image used to create the virtual machines.
- publisher String
- Specifies the publisher of the image used to create the virtual machines.
- sku String
- Specifies the SKU of the image used to create the virtual machines.
- version String
- Specifies the version of the image used to create the virtual machines.
ScaleSetStorageProfileOsDisk, ScaleSetStorageProfileOsDiskArgs            
- CreateOption string
- Specifies how the virtual machine should be created. The only possible option is FromImage.
- Caching string
- Specifies the caching requirements. Possible values include: None(default),ReadOnly,ReadWrite.
- Image string
- Specifies the blob URI for user image. A virtual machine scale set creates an os disk in the same container as the user image.
Updating the osDisk image causes the existing disk to be deleted and a new one created with the new image. If the VM scale set is in Manual upgrade mode then the virtual machines are not updated until they have manualUpgrade applied to them.
When setting this field os_typeneeds to be specified. Cannot be used whenvhd_containers,managed_disk_typeorstorage_profile_image_referenceare specified.
- ManagedDisk stringType 
- Specifies the type of managed disk to create. Value you must be either Standard_LRS,StandardSSD_LRSorPremium_LRS. Cannot be used whenvhd_containersorimageis specified.
- Name string
- Specifies the disk name. Must be specified when using unmanaged disk ('managed_disk_type' property not set).
- OsType string
- Specifies the operating system Type, valid values are windows, Linux.
- VhdContainers List<string>
- Specifies the VHD URI. Cannot be used when imageormanaged_disk_typeis specified.
- CreateOption string
- Specifies how the virtual machine should be created. The only possible option is FromImage.
- Caching string
- Specifies the caching requirements. Possible values include: None(default),ReadOnly,ReadWrite.
- Image string
- Specifies the blob URI for user image. A virtual machine scale set creates an os disk in the same container as the user image.
Updating the osDisk image causes the existing disk to be deleted and a new one created with the new image. If the VM scale set is in Manual upgrade mode then the virtual machines are not updated until they have manualUpgrade applied to them.
When setting this field os_typeneeds to be specified. Cannot be used whenvhd_containers,managed_disk_typeorstorage_profile_image_referenceare specified.
- ManagedDisk stringType 
- Specifies the type of managed disk to create. Value you must be either Standard_LRS,StandardSSD_LRSorPremium_LRS. Cannot be used whenvhd_containersorimageis specified.
- Name string
- Specifies the disk name. Must be specified when using unmanaged disk ('managed_disk_type' property not set).
- OsType string
- Specifies the operating system Type, valid values are windows, Linux.
- VhdContainers []string
- Specifies the VHD URI. Cannot be used when imageormanaged_disk_typeis specified.
- createOption String
- Specifies how the virtual machine should be created. The only possible option is FromImage.
- caching String
- Specifies the caching requirements. Possible values include: None(default),ReadOnly,ReadWrite.
- image String
- Specifies the blob URI for user image. A virtual machine scale set creates an os disk in the same container as the user image.
Updating the osDisk image causes the existing disk to be deleted and a new one created with the new image. If the VM scale set is in Manual upgrade mode then the virtual machines are not updated until they have manualUpgrade applied to them.
When setting this field os_typeneeds to be specified. Cannot be used whenvhd_containers,managed_disk_typeorstorage_profile_image_referenceare specified.
- managedDisk StringType 
- Specifies the type of managed disk to create. Value you must be either Standard_LRS,StandardSSD_LRSorPremium_LRS. Cannot be used whenvhd_containersorimageis specified.
- name String
- Specifies the disk name. Must be specified when using unmanaged disk ('managed_disk_type' property not set).
- osType String
- Specifies the operating system Type, valid values are windows, Linux.
- vhdContainers List<String>
- Specifies the VHD URI. Cannot be used when imageormanaged_disk_typeis specified.
- createOption string
- Specifies how the virtual machine should be created. The only possible option is FromImage.
- caching string
- Specifies the caching requirements. Possible values include: None(default),ReadOnly,ReadWrite.
- image string
- Specifies the blob URI for user image. A virtual machine scale set creates an os disk in the same container as the user image.
Updating the osDisk image causes the existing disk to be deleted and a new one created with the new image. If the VM scale set is in Manual upgrade mode then the virtual machines are not updated until they have manualUpgrade applied to them.
When setting this field os_typeneeds to be specified. Cannot be used whenvhd_containers,managed_disk_typeorstorage_profile_image_referenceare specified.
- managedDisk stringType 
- Specifies the type of managed disk to create. Value you must be either Standard_LRS,StandardSSD_LRSorPremium_LRS. Cannot be used whenvhd_containersorimageis specified.
- name string
- Specifies the disk name. Must be specified when using unmanaged disk ('managed_disk_type' property not set).
- osType string
- Specifies the operating system Type, valid values are windows, Linux.
- vhdContainers string[]
- Specifies the VHD URI. Cannot be used when imageormanaged_disk_typeis specified.
- create_option str
- Specifies how the virtual machine should be created. The only possible option is FromImage.
- caching str
- Specifies the caching requirements. Possible values include: None(default),ReadOnly,ReadWrite.
- image str
- Specifies the blob URI for user image. A virtual machine scale set creates an os disk in the same container as the user image.
Updating the osDisk image causes the existing disk to be deleted and a new one created with the new image. If the VM scale set is in Manual upgrade mode then the virtual machines are not updated until they have manualUpgrade applied to them.
When setting this field os_typeneeds to be specified. Cannot be used whenvhd_containers,managed_disk_typeorstorage_profile_image_referenceare specified.
- managed_disk_ strtype 
- Specifies the type of managed disk to create. Value you must be either Standard_LRS,StandardSSD_LRSorPremium_LRS. Cannot be used whenvhd_containersorimageis specified.
- name str
- Specifies the disk name. Must be specified when using unmanaged disk ('managed_disk_type' property not set).
- os_type str
- Specifies the operating system Type, valid values are windows, Linux.
- vhd_containers Sequence[str]
- Specifies the VHD URI. Cannot be used when imageormanaged_disk_typeis specified.
- createOption String
- Specifies how the virtual machine should be created. The only possible option is FromImage.
- caching String
- Specifies the caching requirements. Possible values include: None(default),ReadOnly,ReadWrite.
- image String
- Specifies the blob URI for user image. A virtual machine scale set creates an os disk in the same container as the user image.
Updating the osDisk image causes the existing disk to be deleted and a new one created with the new image. If the VM scale set is in Manual upgrade mode then the virtual machines are not updated until they have manualUpgrade applied to them.
When setting this field os_typeneeds to be specified. Cannot be used whenvhd_containers,managed_disk_typeorstorage_profile_image_referenceare specified.
- managedDisk StringType 
- Specifies the type of managed disk to create. Value you must be either Standard_LRS,StandardSSD_LRSorPremium_LRS. Cannot be used whenvhd_containersorimageis specified.
- name String
- Specifies the disk name. Must be specified when using unmanaged disk ('managed_disk_type' property not set).
- osType String
- Specifies the operating system Type, valid values are windows, Linux.
- vhdContainers List<String>
- Specifies the VHD URI. Cannot be used when imageormanaged_disk_typeis specified.
Import
Virtual Machine Scale Sets can be imported using the resource id, e.g.
$ pulumi import azure:compute/scaleSet:ScaleSet scaleset1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/virtualMachineScaleSets/scaleset1
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 azurermTerraform Provider.