Virtual Machine Scale Set Args
    Describes a Virtual Machine Scale Set. Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01. Other available API versions: 2015-06-15, 2016-04-30-preview, 2023-07-01, 2023-09-01.
Example Usage
Create a VMSS with an extension that has suppressFailures enabled
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                    StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            ExtensionProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionProfileArgs
            {
                Extensions = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionArgs
                    {
                        AutoUpgradeMinorVersion = false,
                        Name = "{extension-name}",
                        Publisher = "{extension-Publisher}",
                        Settings = null,
                        SuppressFailures = true,
                        Type = "{extension-Type}",
                        TypeHandlerVersion = "{handler-version}",
                    },
                },
            },
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
DiagnosticsProfile: interface{}{
BootDiagnostics: &compute.BootDiagnosticsArgs{
Enabled: pulumi.Bool(true),
StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
},
},
ExtensionProfile: interface{}{
Extensions: compute.VirtualMachineScaleSetExtensionTypeArray{
&compute.VirtualMachineScaleSetExtensionTypeArgs{
AutoUpgradeMinorVersion: pulumi.Bool(false),
Name: pulumi.String("{extension-name}"),
Publisher: pulumi.String("{extension-Publisher}"),
Settings: nil,
SuppressFailures: pulumi.Bool(true),
Type: pulumi.String("{extension-Type}"),
TypeHandlerVersion: pulumi.String("{handler-version}"),
},
},
},
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("diagnosticsProfile", Map.of("bootDiagnostics", Map.ofEntries(
                    Map.entry("enabled", true),
                    Map.entry("storageUri", "http://{existing-storage-account-name}.blob.core.windows.net")
                ))),
                Map.entry("extensionProfile", Map.of("extensions", Map.ofEntries(
                    Map.entry("autoUpgradeMinorVersion", false),
                    Map.entry("name", "{extension-name}"),
                    Map.entry("publisher", "{extension-Publisher}"),
                    Map.entry("settings", ),
                    Map.entry("suppressFailures", true),
                    Map.entry("type", "{extension-Type}"),
                    Map.entry("typeHandlerVersion", "{handler-version}")
                ))),
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a VMSS with an extension with protectedSettingsFromKeyVault
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                    StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            ExtensionProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionProfileArgs
            {
                Extensions = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionArgs
                    {
                        AutoUpgradeMinorVersion = false,
                        Name = "{extension-name}",
                        ProtectedSettingsFromKeyVault = new AzureNative.Compute.Inputs.KeyVaultSecretReferenceArgs
                        {
                            SecretUrl = "https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e",
                            SourceVault = new AzureNative.Compute.Inputs.SubResourceArgs
                            {
                                Id = "/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName",
                            },
                        },
                        Publisher = "{extension-Publisher}",
                        Settings = null,
                        Type = "{extension-Type}",
                        TypeHandlerVersion = "{handler-version}",
                    },
                },
            },
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
DiagnosticsProfile: interface{}{
BootDiagnostics: &compute.BootDiagnosticsArgs{
Enabled: pulumi.Bool(true),
StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
},
},
ExtensionProfile: interface{}{
Extensions: compute.VirtualMachineScaleSetExtensionTypeArray{
interface{}{
AutoUpgradeMinorVersion: pulumi.Bool(false),
Name: pulumi.String("{extension-name}"),
ProtectedSettingsFromKeyVault: interface{}{
SecretUrl: pulumi.String("https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e"),
SourceVault: &compute.SubResourceArgs{
Id: pulumi.String("/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName"),
},
},
Publisher: pulumi.String("{extension-Publisher}"),
Settings: nil,
Type: pulumi.String("{extension-Type}"),
TypeHandlerVersion: pulumi.String("{handler-version}"),
},
},
},
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("diagnosticsProfile", Map.of("bootDiagnostics", Map.ofEntries(
                    Map.entry("enabled", true),
                    Map.entry("storageUri", "http://{existing-storage-account-name}.blob.core.windows.net")
                ))),
                Map.entry("extensionProfile", Map.of("extensions", Map.ofEntries(
                    Map.entry("autoUpgradeMinorVersion", false),
                    Map.entry("name", "{extension-name}"),
                    Map.entry("protectedSettingsFromKeyVault", Map.ofEntries(
                        Map.entry("secretUrl", "https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e"),
                        Map.entry("sourceVault", Map.of("id", "/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName"))
                    )),
                    Map.entry("publisher", "{extension-Publisher}"),
                    Map.entry("settings", ),
                    Map.entry("type", "{extension-Type}"),
                    Map.entry("typeHandlerVersion", "{handler-version}")
                ))),
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a custom-image scale set from an unmanaged generalized os image.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    Image = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
                    {
                        Uri = "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd",
                    },
                    Name = "osDisk",
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
Image: &compute.VirtualHardDiskArgs{
Uri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd"),
},
Name: pulumi.String("osDisk"),
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.of("osDisk", Map.ofEntries(
                    Map.entry("caching", "ReadWrite"),
                    Map.entry("createOption", "FromImage"),
                    Map.entry("image", Map.of("uri", "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd")),
                    Map.entry("name", "osDisk")
                )))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a platform-image scale set with unmanaged os disks.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    Name = "osDisk",
                    VhdContainers = new[]
                    {
                        "http://{existing-storage-account-name-0}.blob.core.windows.net/vhdContainer",
                        "http://{existing-storage-account-name-1}.blob.core.windows.net/vhdContainer",
                        "http://{existing-storage-account-name-2}.blob.core.windows.net/vhdContainer",
                        "http://{existing-storage-account-name-3}.blob.core.windows.net/vhdContainer",
                        "http://{existing-storage-account-name-4}.blob.core.windows.net/vhdContainer",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
Name: pulumi.String("osDisk"),
VhdContainers: pulumi.StringArray{
pulumi.String("http://{existing-storage-account-name-0}.blob.core.windows.net/vhdContainer"),
pulumi.String("http://{existing-storage-account-name-1}.blob.core.windows.net/vhdContainer"),
pulumi.String("http://{existing-storage-account-name-2}.blob.core.windows.net/vhdContainer"),
pulumi.String("http://{existing-storage-account-name-3}.blob.core.windows.net/vhdContainer"),
pulumi.String("http://{existing-storage-account-name-4}.blob.core.windows.net/vhdContainer"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("name", "osDisk"),
                        Map.entry("vhdContainers",
                            "http://{existing-storage-account-name-0}.blob.core.windows.net/vhdContainer",
                            "http://{existing-storage-account-name-1}.blob.core.windows.net/vhdContainer",
                            "http://{existing-storage-account-name-2}.blob.core.windows.net/vhdContainer",
                            "http://{existing-storage-account-name-3}.blob.core.windows.net/vhdContainer",
                            "http://{existing-storage-account-name-4}.blob.core.windows.net/vhdContainer")
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set from a custom image.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set from a generalized shared image.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage")),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set from a specialized shared image.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage")),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set where nic config has DisableTcpStateTracking property
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        DisableTcpStateTracking = true,
                        EnableAcceleratedNetworking = true,
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{nicConfig1-name}",
                        Primary = true,
                    },
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        DisableTcpStateTracking = false,
                        EnableAcceleratedNetworking = false,
                        EnableIPForwarding = false,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{nicConfig2-name}",
                                Primary = true,
                                PrivateIPAddressVersion = "IPv4",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name2}",
                                },
                            },
                        },
                        Name = "{nicConfig2-name}",
                        Primary = false,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
DisableTcpStateTracking: pulumi.Bool(true),
EnableAcceleratedNetworking: pulumi.Bool(true),
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{nicConfig1-name}"),
Primary: pulumi.Bool(true),
},
interface{}{
DisableTcpStateTracking: pulumi.Bool(false),
EnableAcceleratedNetworking: pulumi.Bool(false),
EnableIPForwarding: pulumi.Bool(false),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{nicConfig2-name}"),
Primary: pulumi.Bool(true),
PrivateIPAddressVersion: pulumi.String("IPv4"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name2}"),
},
},
},
Name: pulumi.String("{nicConfig2-name}"),
Primary: pulumi.Bool(false),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations",
                    Map.ofEntries(
                        Map.entry("disableTcpStateTracking", true),
                        Map.entry("enableAcceleratedNetworking", true),
                        Map.entry("enableIPForwarding", true),
                        Map.entry("ipConfigurations", Map.ofEntries(
                            Map.entry("name", "{vmss-name}"),
                            Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                        )),
                        Map.entry("name", "{nicConfig1-name}"),
                        Map.entry("primary", true)
                    ),
                    Map.ofEntries(
                        Map.entry("disableTcpStateTracking", false),
                        Map.entry("enableAcceleratedNetworking", false),
                        Map.entry("enableIPForwarding", false),
                        Map.entry("ipConfigurations", Map.ofEntries(
                            Map.entry("name", "{nicConfig2-name}"),
                            Map.entry("primary", true),
                            Map.entry("privateIPAddressVersion", "IPv4"),
                            Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name2}"))
                        )),
                        Map.entry("name", "{nicConfig2-name}"),
                        Map.entry("primary", false)
                    ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with Application Profile
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            ApplicationProfile = new AzureNative.Compute.Inputs.ApplicationProfileArgs
            {
                GalleryApplications = new[]
                {
                    new AzureNative.Compute.Inputs.VMGalleryApplicationArgs
                    {
                        ConfigurationReference = "https://mystorageaccount.blob.core.windows.net/configurations/settings.config",
                        EnableAutomaticUpgrade = false,
                        Order = 1,
                        PackageReferenceId = "/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdb/resourceGroups/myresourceGroupName2/providers/Microsoft.Compute/galleries/myGallery1/applications/MyApplication1/versions/1.0",
                        Tags = "myTag1",
                        TreatFailureAsDeploymentFailure = true,
                    },
                    new AzureNative.Compute.Inputs.VMGalleryApplicationArgs
                    {
                        PackageReferenceId = "/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1",
                    },
                },
            },
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
ApplicationProfile: interface{}{
GalleryApplications: compute.VMGalleryApplicationArray{
&compute.VMGalleryApplicationArgs{
ConfigurationReference: pulumi.String("https://mystorageaccount.blob.core.windows.net/configurations/settings.config"),
EnableAutomaticUpgrade: pulumi.Bool(false),
Order: pulumi.Int(1),
PackageReferenceId: pulumi.String("/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdb/resourceGroups/myresourceGroupName2/providers/Microsoft.Compute/galleries/myGallery1/applications/MyApplication1/versions/1.0"),
Tags: pulumi.String("myTag1"),
TreatFailureAsDeploymentFailure: pulumi.Bool(true),
},
&compute.VMGalleryApplicationArgs{
PackageReferenceId: pulumi.String("/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1"),
},
},
},
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("applicationProfile", Map.of("galleryApplications",
                    Map.ofEntries(
                        Map.entry("configurationReference", "https://mystorageaccount.blob.core.windows.net/configurations/settings.config"),
                        Map.entry("enableAutomaticUpgrade", false),
                        Map.entry("order", 1),
                        Map.entry("packageReferenceId", "/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdb/resourceGroups/myresourceGroupName2/providers/Microsoft.Compute/galleries/myGallery1/applications/MyApplication1/versions/1.0"),
                        Map.entry("tags", "myTag1"),
                        Map.entry("treatFailureAsDeploymentFailure", true)
                    ),
                    Map.of("packageReferenceId", "/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1"))),
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with DiskEncryptionSet resource in os disk and data disk.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_DS1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                DataDisks = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "Empty",
                        DiskSizeGB = 1023,
                        Lun = 0,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
                            {
                                Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                            },
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
                        {
                            Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        },
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_DS1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
DataDisks: compute.VirtualMachineScaleSetDataDiskArray{
interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("Empty"),
DiskSizeGB: pulumi.Int(1023),
Lun: pulumi.Int(0),
ManagedDisk: interface{}{
DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"),
},
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
ImageReference: &compute.ImageReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: interface{}{
DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"),
},
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_DS1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("dataDisks", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "Empty"),
                        Map.entry("diskSizeGB", 1023),
                        Map.entry("lun", 0),
                        Map.entry("managedDisk", Map.ofEntries(
                            Map.entry("diskEncryptionSet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")),
                            Map.entry("storageAccountType", "Standard_LRS")
                        ))
                    )),
                    Map.entry("imageReference", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.ofEntries(
                            Map.entry("diskEncryptionSet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")),
                            Map.entry("storageAccountType", "Standard_LRS")
                        ))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with Fpga Network Interfaces.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableAcceleratedNetworking = false,
                        EnableFpga = true,
                        EnableIPForwarding = false,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{fpgaNic-Name}",
                                Primary = true,
                                PrivateIPAddressVersion = "IPv4",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name}",
                                },
                            },
                        },
                        Name = "{fpgaNic-Name}",
                        Primary = false,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
interface{}{
EnableAcceleratedNetworking: pulumi.Bool(false),
EnableFpga: pulumi.Bool(true),
EnableIPForwarding: pulumi.Bool(false),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{fpgaNic-Name}"),
Primary: pulumi.Bool(true),
PrivateIPAddressVersion: pulumi.String("IPv4"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name}"),
},
},
},
Name: pulumi.String("{fpgaNic-Name}"),
Primary: pulumi.Bool(false),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations",
                    Map.ofEntries(
                        Map.entry("enableIPForwarding", true),
                        Map.entry("ipConfigurations", Map.ofEntries(
                            Map.entry("name", "{vmss-name}"),
                            Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                        )),
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("primary", true)
                    ),
                    Map.ofEntries(
                        Map.entry("enableAcceleratedNetworking", false),
                        Map.entry("enableFpga", true),
                        Map.entry("enableIPForwarding", false),
                        Map.entry("ipConfigurations", Map.ofEntries(
                            Map.entry("name", "{fpgaNic-Name}"),
                            Map.entry("primary", true),
                            Map.entry("privateIPAddressVersion", "IPv4"),
                            Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name}"))
                        )),
                        Map.entry("name", "{fpgaNic-Name}"),
                        Map.entry("primary", false)
                    ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with Host Encryption using encryptionAtHost property.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        Plan = new AzureNative.Compute.Inputs.PlanArgs
        {
            Name = "windows2016",
            Product = "windows-data-science-vm",
            Publisher = "microsoft-ads",
        },
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_DS1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            SecurityProfile = new AzureNative.Compute.Inputs.SecurityProfileArgs
            {
                EncryptionAtHost = true,
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "windows-data-science-vm",
                    Publisher = "microsoft-ads",
                    Sku = "windows2016",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
Plan: &compute.PlanArgs{
Name: pulumi.String("windows2016"),
Product: pulumi.String("windows-data-science-vm"),
Publisher: pulumi.String("microsoft-ads"),
},
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_DS1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
SecurityProfile: &compute.SecurityProfileArgs{
EncryptionAtHost: pulumi.Bool(true),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("windows-data-science-vm"),
Publisher: pulumi.String("microsoft-ads"),
Sku: pulumi.String("windows2016"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadOnly,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .plan(Map.ofEntries(
                Map.entry("name", "windows2016"),
                Map.entry("product", "windows-data-science-vm"),
                Map.entry("publisher", "microsoft-ads")
            ))
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_DS1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("securityProfile", Map.of("encryptionAtHost", true)),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "windows-data-science-vm"),
                        Map.entry("publisher", "microsoft-ads"),
                        Map.entry("sku", "windows2016"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadOnly"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with OS image scheduled events enabled.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            ScheduledEventsProfile = new AzureNative.Compute.Inputs.ScheduledEventsProfileArgs
            {
                OsImageNotificationProfile = new AzureNative.Compute.Inputs.OSImageNotificationProfileArgs
                {
                    Enable = true,
                    NotBeforeTimeout = "PT15M",
                },
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
ScheduledEventsProfile: interface{}{
OsImageNotificationProfile: &compute.OSImageNotificationProfileArgs{
Enable: pulumi.Bool(true),
NotBeforeTimeout: pulumi.String("PT15M"),
},
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("scheduledEventsProfile", Map.of("osImageNotificationProfile", Map.ofEntries(
                    Map.entry("enable", true),
                    Map.entry("notBeforeTimeout", "PT15M")
                ))),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with Security Posture Reference
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "eastus2euap",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_A1",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            AutomaticOSUpgradePolicy = new AzureNative.Compute.Inputs.AutomaticOSUpgradePolicyArgs
            {
                EnableAutomaticOSUpgrade = true,
            },
            Mode = AzureNative.Compute.UpgradeMode.Automatic,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            SecurityPostureReference = new AzureNative.Compute.Inputs.SecurityPostureReferenceArgs
            {
                Id = "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2022-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    Name = "osDisk",
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("eastus2euap"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_A1"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: compute.UpgradePolicyResponse{
AutomaticOSUpgradePolicy: &compute.AutomaticOSUpgradePolicyArgs{
EnableAutomaticOSUpgrade: pulumi.Bool(true),
},
Mode: compute.UpgradeModeAutomatic,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
SecurityPostureReference: &compute.SecurityPostureReferenceArgs{
Id: pulumi.String("/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2022-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
Name: pulumi.String("osDisk"),
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("eastus2euap")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_A1"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.ofEntries(
                Map.entry("automaticOSUpgradePolicy", Map.of("enableAutomaticOSUpgrade", true)),
                Map.entry("mode", "Automatic")
            ))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("securityPostureReference", Map.of("id", "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest")),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2022-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("name", "osDisk")
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with SecurityType as ConfidentialVM
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_DC2as_v5",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            SecurityProfile = new AzureNative.Compute.Inputs.SecurityProfileArgs
            {
                SecurityType = "ConfidentialVM",
                UefiSettings = new AzureNative.Compute.Inputs.UefiSettingsArgs
                {
                    SecureBootEnabled = true,
                    VTpmEnabled = true,
                },
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "2019-datacenter-cvm",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "windows-cvm",
                    Version = "17763.2183.2109130127",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        SecurityProfile = new AzureNative.Compute.Inputs.VMDiskSecurityProfileArgs
                        {
                            SecurityEncryptionType = "VMGuestStateOnly",
                        },
                        StorageAccountType = "StandardSSD_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_DC2as_v5"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
SecurityProfile: interface{}{
SecurityType: pulumi.String("ConfidentialVM"),
UefiSettings: &compute.UefiSettingsArgs{
SecureBootEnabled: pulumi.Bool(true),
VTpmEnabled: pulumi.Bool(true),
},
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("2019-datacenter-cvm"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("windows-cvm"),
Version: pulumi.String("17763.2183.2109130127"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadOnly,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: interface{}{
SecurityProfile: &compute.VMDiskSecurityProfileArgs{
SecurityEncryptionType: pulumi.String("VMGuestStateOnly"),
},
StorageAccountType: pulumi.String("StandardSSD_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_DC2as_v5"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("securityProfile", Map.ofEntries(
                    Map.entry("securityType", "ConfidentialVM"),
                    Map.entry("uefiSettings", Map.ofEntries(
                        Map.entry("secureBootEnabled", true),
                        Map.entry("vTpmEnabled", true)
                    ))
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "2019-datacenter-cvm"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "windows-cvm"),
                        Map.entry("version", "17763.2183.2109130127")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadOnly"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.ofEntries(
                            Map.entry("securityProfile", Map.of("securityEncryptionType", "VMGuestStateOnly")),
                            Map.entry("storageAccountType", "StandardSSD_LRS")
                        ))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with Service Artifact Reference
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "eastus2euap",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_A1",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            AutomaticOSUpgradePolicy = new AzureNative.Compute.Inputs.AutomaticOSUpgradePolicyArgs
            {
                EnableAutomaticOSUpgrade = true,
            },
            Mode = AzureNative.Compute.UpgradeMode.Automatic,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            ServiceArtifactReference = new AzureNative.Compute.Inputs.ServiceArtifactReferenceArgs
            {
                Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/serviceArtifacts/serviceArtifactName/vmArtifactsProfiles/vmArtifactsProfilesName",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2022-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    Name = "osDisk",
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("eastus2euap"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_A1"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: compute.UpgradePolicyResponse{
AutomaticOSUpgradePolicy: &compute.AutomaticOSUpgradePolicyArgs{
EnableAutomaticOSUpgrade: pulumi.Bool(true),
},
Mode: compute.UpgradeModeAutomatic,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
ServiceArtifactReference: &compute.ServiceArtifactReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/serviceArtifacts/serviceArtifactName/vmArtifactsProfiles/vmArtifactsProfilesName"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2022-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
Name: pulumi.String("osDisk"),
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("eastus2euap")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_A1"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.ofEntries(
                Map.entry("automaticOSUpgradePolicy", Map.of("enableAutomaticOSUpgrade", true)),
                Map.entry("mode", "Automatic")
            ))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("serviceArtifactReference", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/serviceArtifacts/serviceArtifactName/vmArtifactsProfiles/vmArtifactsProfilesName")),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2022-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("name", "osDisk")
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with Uefi Settings of secureBoot and vTPM.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D2s_v3",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            SecurityProfile = new AzureNative.Compute.Inputs.SecurityProfileArgs
            {
                SecurityType = "TrustedLaunch",
                UefiSettings = new AzureNative.Compute.Inputs.UefiSettingsArgs
                {
                    SecureBootEnabled = true,
                    VTpmEnabled = true,
                },
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "windowsserver-gen2preview-preview",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "windows10-tvm",
                    Version = "18363.592.2001092016",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "StandardSSD_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D2s_v3"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
SecurityProfile: interface{}{
SecurityType: pulumi.String("TrustedLaunch"),
UefiSettings: &compute.UefiSettingsArgs{
SecureBootEnabled: pulumi.Bool(true),
VTpmEnabled: pulumi.Bool(true),
},
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("windowsserver-gen2preview-preview"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("windows10-tvm"),
Version: pulumi.String("18363.592.2001092016"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadOnly,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("StandardSSD_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D2s_v3"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("securityProfile", Map.ofEntries(
                    Map.entry("securityType", "TrustedLaunch"),
                    Map.entry("uefiSettings", Map.ofEntries(
                        Map.entry("secureBootEnabled", true),
                        Map.entry("vTpmEnabled", true)
                    ))
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "windowsserver-gen2preview-preview"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "windows10-tvm"),
                        Map.entry("version", "18363.592.2001092016")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadOnly"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "StandardSSD_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with a marketplace image plan.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        Plan = new AzureNative.Compute.Inputs.PlanArgs
        {
            Name = "windows2016",
            Product = "windows-data-science-vm",
            Publisher = "microsoft-ads",
        },
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "windows-data-science-vm",
                    Publisher = "microsoft-ads",
                    Sku = "windows2016",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
Plan: &compute.PlanArgs{
Name: pulumi.String("windows2016"),
Product: pulumi.String("windows-data-science-vm"),
Publisher: pulumi.String("microsoft-ads"),
},
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("windows-data-science-vm"),
Publisher: pulumi.String("microsoft-ads"),
Sku: pulumi.String("windows2016"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .plan(Map.ofEntries(
                Map.entry("name", "windows2016"),
                Map.entry("product", "windows-data-science-vm"),
                Map.entry("publisher", "microsoft-ads")
            ))
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "windows-data-science-vm"),
                        Map.entry("publisher", "microsoft-ads"),
                        Map.entry("sku", "windows2016"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with an azure application gateway.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                ApplicationGatewayBackendAddressPools = new[]
                                {
                                    new AzureNative.Compute.Inputs.SubResourceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/{existing-application-gateway-name}/backendAddressPools/{existing-backend-address-pool-name}",
                                    },
                                },
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
ApplicationGatewayBackendAddressPools: compute.SubResourceArray{
&compute.SubResourceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/{existing-application-gateway-name}/backendAddressPools/{existing-backend-address-pool-name}"),
},
},
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("applicationGatewayBackendAddressPools", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/{existing-application-gateway-name}/backendAddressPools/{existing-backend-address-pool-name}")),
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with an azure load balancer.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                LoadBalancerBackendAddressPools = new[]
                                {
                                    new AzureNative.Compute.Inputs.SubResourceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/backendAddressPools/{existing-backend-address-pool-name}",
                                    },
                                },
                                LoadBalancerInboundNatPools = new[]
                                {
                                    new AzureNative.Compute.Inputs.SubResourceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/inboundNatPools/{existing-nat-pool-name}",
                                    },
                                },
                                Name = "{vmss-name}",
                                PublicIPAddressConfiguration = new AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    PublicIPAddressVersion = "IPv4",
                                },
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
LoadBalancerBackendAddressPools: compute.SubResourceArray{
&compute.SubResourceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/backendAddressPools/{existing-backend-address-pool-name}"),
},
},
LoadBalancerInboundNatPools: compute.SubResourceArray{
&compute.SubResourceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/inboundNatPools/{existing-nat-pool-name}"),
},
},
Name: pulumi.String("{vmss-name}"),
PublicIPAddressConfiguration: &compute.VirtualMachineScaleSetPublicIPAddressConfigurationArgs{
Name: pulumi.String("{vmss-name}"),
PublicIPAddressVersion: pulumi.String("IPv4"),
},
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("loadBalancerBackendAddressPools", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/backendAddressPools/{existing-backend-address-pool-name}")),
                        Map.entry("loadBalancerInboundNatPools", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/inboundNatPools/{existing-nat-pool-name}")),
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("publicIPAddressConfiguration", Map.ofEntries(
                            Map.entry("name", "{vmss-name}"),
                            Map.entry("publicIPAddressVersion", "IPv4")
                        )),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with automatic repairs enabled
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        AutomaticRepairsPolicy = new AzureNative.Compute.Inputs.AutomaticRepairsPolicyArgs
        {
            Enabled = true,
            GracePeriod = "PT10M",
        },
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
AutomaticRepairsPolicy: &compute.AutomaticRepairsPolicyArgs{
Enabled: pulumi.Bool(true),
GracePeriod: pulumi.String("PT10M"),
},
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .automaticRepairsPolicy(Map.ofEntries(
                Map.entry("enabled", true),
                Map.entry("gracePeriod", "PT10M")
            ))
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with boot diagnostics.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                    StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
DiagnosticsProfile: interface{}{
BootDiagnostics: &compute.BootDiagnosticsArgs{
Enabled: pulumi.Bool(true),
StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
},
},
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("diagnosticsProfile", Map.of("bootDiagnostics", Map.ofEntries(
                    Map.entry("enabled", true),
                    Map.entry("storageUri", "http://{existing-storage-account-name}.blob.core.windows.net")
                ))),
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with empty data disks on each vm.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D2_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                DataDisks = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
                    {
                        CreateOption = "Empty",
                        DiskSizeGB = 1023,
                        Lun = 0,
                    },
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
                    {
                        CreateOption = "Empty",
                        DiskSizeGB = 1023,
                        Lun = 1,
                    },
                },
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    DiskSizeGB = 512,
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D2_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
DataDisks: compute.VirtualMachineScaleSetDataDiskArray{
&compute.VirtualMachineScaleSetDataDiskArgs{
CreateOption: pulumi.String("Empty"),
DiskSizeGB: pulumi.Int(1023),
Lun: pulumi.Int(0),
},
&compute.VirtualMachineScaleSetDataDiskArgs{
CreateOption: pulumi.String("Empty"),
DiskSizeGB: pulumi.Int(1023),
Lun: pulumi.Int(1),
},
},
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
DiskSizeGB: pulumi.Int(512),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D2_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("dataDisks",
                        Map.ofEntries(
                            Map.entry("createOption", "Empty"),
                            Map.entry("diskSizeGB", 1023),
                            Map.entry("lun", 0)
                        ),
                        Map.ofEntries(
                            Map.entry("createOption", "Empty"),
                            Map.entry("diskSizeGB", 1023),
                            Map.entry("lun", 1)
                        )),
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("diskSizeGB", 512),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with ephemeral os disks using placement property.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        Plan = new AzureNative.Compute.Inputs.PlanArgs
        {
            Name = "windows2016",
            Product = "windows-data-science-vm",
            Publisher = "microsoft-ads",
        },
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_DS1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "windows-data-science-vm",
                    Publisher = "microsoft-ads",
                    Sku = "windows2016",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = "FromImage",
                    DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
                    {
                        Option = "Local",
                        Placement = "ResourceDisk",
                    },
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
Plan: &compute.PlanArgs{
Name: pulumi.String("windows2016"),
Product: pulumi.String("windows-data-science-vm"),
Publisher: pulumi.String("microsoft-ads"),
},
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_DS1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("windows-data-science-vm"),
Publisher: pulumi.String("microsoft-ads"),
Sku: pulumi.String("windows2016"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadOnly,
CreateOption: pulumi.String("FromImage"),
DiffDiskSettings: &compute.DiffDiskSettingsArgs{
Option: pulumi.String("Local"),
Placement: pulumi.String("ResourceDisk"),
},
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .plan(Map.ofEntries(
                Map.entry("name", "windows2016"),
                Map.entry("product", "windows-data-science-vm"),
                Map.entry("publisher", "microsoft-ads")
            ))
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_DS1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "windows-data-science-vm"),
                        Map.entry("publisher", "microsoft-ads"),
                        Map.entry("sku", "windows2016"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadOnly"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("diffDiskSettings", Map.ofEntries(
                            Map.entry("option", "Local"),
                            Map.entry("placement", "ResourceDisk")
                        )),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with ephemeral os disks.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        Plan = new AzureNative.Compute.Inputs.PlanArgs
        {
            Name = "windows2016",
            Product = "windows-data-science-vm",
            Publisher = "microsoft-ads",
        },
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_DS1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "windows-data-science-vm",
                    Publisher = "microsoft-ads",
                    Sku = "windows2016",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                    CreateOption = "FromImage",
                    DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
                    {
                        Option = "Local",
                    },
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
Plan: &compute.PlanArgs{
Name: pulumi.String("windows2016"),
Product: pulumi.String("windows-data-science-vm"),
Publisher: pulumi.String("microsoft-ads"),
},
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_DS1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("windows-data-science-vm"),
Publisher: pulumi.String("microsoft-ads"),
Sku: pulumi.String("windows2016"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadOnly,
CreateOption: pulumi.String("FromImage"),
DiffDiskSettings: &compute.DiffDiskSettingsArgs{
Option: pulumi.String("Local"),
},
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .plan(Map.ofEntries(
                Map.entry("name", "windows2016"),
                Map.entry("product", "windows-data-science-vm"),
                Map.entry("publisher", "microsoft-ads")
            ))
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_DS1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "windows-data-science-vm"),
                        Map.entry("publisher", "microsoft-ads"),
                        Map.entry("sku", "windows2016"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadOnly"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("diffDiskSettings", Map.of("option", "Local")),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with extension time budget.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                    StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            ExtensionProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionProfileArgs
            {
                Extensions = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionArgs
                    {
                        AutoUpgradeMinorVersion = false,
                        Name = "{extension-name}",
                        Publisher = "{extension-Publisher}",
                        Settings = null,
                        Type = "{extension-Type}",
                        TypeHandlerVersion = "{handler-version}",
                    },
                },
                ExtensionsTimeBudget = "PT1H20M",
            },
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
DiagnosticsProfile: interface{}{
BootDiagnostics: &compute.BootDiagnosticsArgs{
Enabled: pulumi.Bool(true),
StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
},
},
ExtensionProfile: interface{}{
Extensions: compute.VirtualMachineScaleSetExtensionTypeArray{
&compute.VirtualMachineScaleSetExtensionTypeArgs{
AutoUpgradeMinorVersion: pulumi.Bool(false),
Name: pulumi.String("{extension-name}"),
Publisher: pulumi.String("{extension-Publisher}"),
Settings: nil,
Type: pulumi.String("{extension-Type}"),
TypeHandlerVersion: pulumi.String("{handler-version}"),
},
},
ExtensionsTimeBudget: pulumi.String("PT1H20M"),
},
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("diagnosticsProfile", Map.of("bootDiagnostics", Map.ofEntries(
                    Map.entry("enabled", true),
                    Map.entry("storageUri", "http://{existing-storage-account-name}.blob.core.windows.net")
                ))),
                Map.entry("extensionProfile", Map.ofEntries(
                    Map.entry("extensions", Map.ofEntries(
                        Map.entry("autoUpgradeMinorVersion", false),
                        Map.entry("name", "{extension-name}"),
                        Map.entry("publisher", "{extension-Publisher}"),
                        Map.entry("settings", ),
                        Map.entry("type", "{extension-Type}"),
                        Map.entry("typeHandlerVersion", "{handler-version}")
                    )),
                    Map.entry("extensionsTimeBudget", "PT1H20M")
                )),
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with managed boot diagnostics.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = true,
                },
            },
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
DiagnosticsProfile: interface{}{
BootDiagnostics: &compute.BootDiagnosticsArgs{
Enabled: pulumi.Bool(true),
},
},
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("diagnosticsProfile", Map.of("bootDiagnostics", Map.of("enabled", true))),
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with password authentication.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with premium storage.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Premium_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Premium_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Premium_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with priority mix policy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        OrchestrationMode = "Flexible",
        PriorityMixPolicy = new AzureNative.Compute.Inputs.PriorityMixPolicyArgs
        {
            BaseRegularPriorityCount = 4,
            RegularPriorityPercentageAboveBase = 50,
        },
        ResourceGroupName = "myResourceGroup",
        SinglePlacementGroup = false,
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 10,
            Name = "Standard_A8m_v2",
            Tier = "Standard",
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            BillingProfile = new AzureNative.Compute.Inputs.BillingProfileArgs
            {
                MaxPrice = -1,
            },
            EvictionPolicy = "Deallocate",
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            Priority = "Spot",
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
OrchestrationMode: pulumi.String("Flexible"),
PriorityMixPolicy: &compute.PriorityMixPolicyArgs{
BaseRegularPriorityCount: pulumi.Int(4),
RegularPriorityPercentageAboveBase: pulumi.Int(50),
},
ResourceGroupName: pulumi.String("myResourceGroup"),
SinglePlacementGroup: pulumi.Bool(false),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(10),
Name: pulumi.String("Standard_A8m_v2"),
Tier: pulumi.String("Standard"),
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
BillingProfile: &compute.BillingProfileArgs{
MaxPrice: -1,
},
EvictionPolicy: pulumi.String("Deallocate"),
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
Priority: pulumi.String("Spot"),
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .orchestrationMode("Flexible")
            .priorityMixPolicy(Map.ofEntries(
                Map.entry("baseRegularPriorityCount", 4),
                Map.entry("regularPriorityPercentageAboveBase", 50)
            ))
            .resourceGroupName("myResourceGroup")
            .singlePlacementGroup(false)
            .sku(Map.ofEntries(
                Map.entry("capacity", 10),
                Map.entry("name", "Standard_A8m_v2"),
                Map.entry("tier", "Standard")
            ))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("billingProfile", Map.of("maxPrice", "TODO: GenUnaryOpExpression")),
                Map.entry("evictionPolicy", "Deallocate"),
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("priority", "Spot"),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with scaleInPolicy.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        ScaleInPolicy = new AzureNative.Compute.Inputs.ScaleInPolicyArgs
        {
            ForceDeletion = true,
            Rules = new[]
            {
                "OldestVM",
            },
        },
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
ScaleInPolicy: &compute.ScaleInPolicyArgs{
ForceDeletion: pulumi.Bool(true),
Rules: pulumi.StringArray{
pulumi.String("OldestVM"),
},
},
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .scaleInPolicy(Map.ofEntries(
                Map.entry("forceDeletion", true),
                Map.entry("rules", "OldestVM")
            ))
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with spot restore policy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 2,
            Name = "Standard_A8m_v2",
            Tier = "Standard",
        },
        SpotRestorePolicy = new AzureNative.Compute.Inputs.SpotRestorePolicyArgs
        {
            Enabled = true,
            RestoreTimeout = "PT1H",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            BillingProfile = new AzureNative.Compute.Inputs.BillingProfileArgs
            {
                MaxPrice = -1,
            },
            EvictionPolicy = "Deallocate",
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            Priority = "Spot",
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(2),
Name: pulumi.String("Standard_A8m_v2"),
Tier: pulumi.String("Standard"),
},
SpotRestorePolicy: &compute.SpotRestorePolicyArgs{
Enabled: pulumi.Bool(true),
RestoreTimeout: pulumi.String("PT1H"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
BillingProfile: &compute.BillingProfileArgs{
MaxPrice: -1,
},
EvictionPolicy: pulumi.String("Deallocate"),
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
Priority: pulumi.String("Spot"),
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 2),
                Map.entry("name", "Standard_A8m_v2"),
                Map.entry("tier", "Standard")
            ))
            .spotRestorePolicy(Map.ofEntries(
                Map.entry("enabled", true),
                Map.entry("restoreTimeout", "PT1H")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("billingProfile", Map.of("maxPrice", "TODO: GenUnaryOpExpression")),
                Map.entry("evictionPolicy", "Deallocate"),
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("priority", "Spot"),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with ssh authentication.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
                LinuxConfiguration = new AzureNative.Compute.Inputs.LinuxConfigurationArgs
                {
                    DisablePasswordAuthentication = true,
                    Ssh = new AzureNative.Compute.Inputs.SshConfigurationArgs
                    {
                        PublicKeys = new[]
                        {
                            new AzureNative.Compute.Inputs.SshPublicKeyArgs
                            {
                                KeyData = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1",
                                Path = "/home/{your-username}/.ssh/authorized_keys",
                            },
                        },
                    },
                },
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: interface{}{
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
LinuxConfiguration: interface{}{
DisablePasswordAuthentication: pulumi.Bool(true),
Ssh: interface{}{
PublicKeys: compute.SshPublicKeyTypeArray{
&compute.SshPublicKeyTypeArgs{
KeyData: pulumi.String("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1"),
Path: pulumi.String("/home/{your-username}/.ssh/authorized_keys"),
},
},
},
},
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}"),
                    Map.entry("linuxConfiguration", Map.ofEntries(
                        Map.entry("disablePasswordAuthentication", true),
                        Map.entry("ssh", Map.of("publicKeys", Map.ofEntries(
                            Map.entry("keyData", "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1"),
                            Map.entry("path", "/home/{your-username}/.ssh/authorized_keys")
                        )))
                    ))
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with terminate scheduled events enabled.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            ScheduledEventsProfile = new AzureNative.Compute.Inputs.ScheduledEventsProfileArgs
            {
                TerminateNotificationProfile = new AzureNative.Compute.Inputs.TerminateNotificationProfileArgs
                {
                    Enable = true,
                    NotBeforeTimeout = "PT5M",
                },
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
ScheduledEventsProfile: interface{}{
TerminateNotificationProfile: &compute.TerminateNotificationProfileArgs{
Enable: pulumi.Bool(true),
NotBeforeTimeout: pulumi.String("PT5M"),
},
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("scheduledEventsProfile", Map.of("terminateNotificationProfile", Map.ofEntries(
                    Map.entry("enable", true),
                    Map.entry("notBeforeTimeout", "PT5M")
                ))),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with userData.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
            UserData = "RXhhbXBsZSBVc2VyRGF0YQ==",
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
UserData: pulumi.String("RXhhbXBsZSBVc2VyRGF0YQ=="),
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                )),
                Map.entry("userData", "RXhhbXBsZSBVc2VyRGF0YQ==")
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create a scale set with virtual machines in different zones.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "centralus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 2,
            Name = "Standard_A1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Automatic,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                DataDisks = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
                    {
                        CreateOption = "Empty",
                        DiskSizeGB = 1023,
                        Lun = 0,
                    },
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
                    {
                        CreateOption = "Empty",
                        DiskSizeGB = 1023,
                        Lun = 1,
                    },
                },
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    DiskSizeGB = 512,
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
        Zones = new[]
        {
            "1",
            "3",
        },
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("centralus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(2),
Name: pulumi.String("Standard_A1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeAutomatic,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
DataDisks: compute.VirtualMachineScaleSetDataDiskArray{
&compute.VirtualMachineScaleSetDataDiskArgs{
CreateOption: pulumi.String("Empty"),
DiskSizeGB: pulumi.Int(1023),
Lun: pulumi.Int(0),
},
&compute.VirtualMachineScaleSetDataDiskArgs{
CreateOption: pulumi.String("Empty"),
DiskSizeGB: pulumi.Int(1023),
Lun: pulumi.Int(1),
},
},
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
DiskSizeGB: pulumi.Int(512),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
Zones: pulumi.StringArray{
pulumi.String("1"),
pulumi.String("3"),
},
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("centralus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 2),
                Map.entry("name", "Standard_A1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Automatic"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("dataDisks",
                        Map.ofEntries(
                            Map.entry("createOption", "Empty"),
                            Map.entry("diskSizeGB", 1023),
                            Map.entry("lun", 0)
                        ),
                        Map.ofEntries(
                            Map.entry("createOption", "Empty"),
                            Map.entry("diskSizeGB", 1023),
                            Map.entry("lun", 1)
                        )),
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("diskSizeGB", 512),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .zones(
                "1",
                "3")
            .build());
    }
}Create a scale set with vm size properties
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_D1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            HardwareProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetHardwareProfileArgs
            {
                VmSizeProperties = new AzureNative.Compute.Inputs.VMSizePropertiesArgs
                {
                    VCPUsAvailable = 1,
                    VCPUsPerCore = 1,
                },
            },
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
            UserData = "RXhhbXBsZSBVc2VyRGF0YQ==",
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_D1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
HardwareProfile: interface{}{
VmSizeProperties: &compute.VMSizePropertiesArgs{
VCPUsAvailable: pulumi.Int(1),
VCPUsPerCore: pulumi.Int(1),
},
},
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
UserData: pulumi.String("RXhhbXBsZSBVc2VyRGF0YQ=="),
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_D1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("hardwareProfile", Map.of("vmSizeProperties", Map.ofEntries(
                    Map.entry("vCPUsAvailable", 1),
                    Map.entry("vCPUsPerCore", 1)
                ))),
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                )),
                Map.entry("userData", "RXhhbXBsZSBVc2VyRGF0YQ==")
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Create or update a scale set with capacity reservation.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
    var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
    {
        Location = "westus",
        Overprovision = true,
        ResourceGroupName = "myResourceGroup",
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 3,
            Name = "Standard_DS1_v2",
            Tier = "Standard",
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            Mode = AzureNative.Compute.UpgradeMode.Manual,
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            CapacityReservation = new AzureNative.Compute.Inputs.CapacityReservationProfileArgs
            {
                CapacityReservationGroup = new AzureNative.Compute.Inputs.SubResourceArgs
                {
                    Id = "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}",
                },
            },
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        EnableIPForwarding = true,
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "{vmss-name}",
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                },
                            },
                        },
                        Name = "{vmss-name}",
                        Primary = true,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "{your-password}",
                AdminUsername = "{your-username}",
                ComputerNamePrefix = "{vmss-name}",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    Offer = "WindowsServer",
                    Publisher = "MicrosoftWindowsServer",
                    Sku = "2016-Datacenter",
                    Version = "latest",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                    CreateOption = "FromImage",
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        StorageAccountType = "Standard_LRS",
                    },
                },
            },
        },
        VmScaleSetName = "{vmss-name}",
    });
});package main
import (
	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
Location: pulumi.String("westus"),
Overprovision: pulumi.Bool(true),
ResourceGroupName: pulumi.String("myResourceGroup"),
Sku: &compute.SkuArgs{
Capacity: pulumi.Float64(3),
Name: pulumi.String("Standard_DS1_v2"),
Tier: pulumi.String("Standard"),
},
UpgradePolicy: &compute.UpgradePolicyArgs{
Mode: compute.UpgradeModeManual,
},
VirtualMachineProfile: compute.VirtualMachineScaleSetVMProfileResponse{
CapacityReservation: interface{}{
CapacityReservationGroup: &compute.SubResourceArgs{
Id: pulumi.String("subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}"),
},
},
NetworkProfile: interface{}{
NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
interface{}{
EnableIPForwarding: pulumi.Bool(true),
IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
interface{}{
Name: pulumi.String("{vmss-name}"),
Subnet: &compute.ApiEntityReferenceArgs{
Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
},
},
},
Name: pulumi.String("{vmss-name}"),
Primary: pulumi.Bool(true),
},
},
},
OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
AdminPassword: pulumi.String("{your-password}"),
AdminUsername: pulumi.String("{your-username}"),
ComputerNamePrefix: pulumi.String("{vmss-name}"),
},
StorageProfile: interface{}{
ImageReference: &compute.ImageReferenceArgs{
Offer: pulumi.String("WindowsServer"),
Publisher: pulumi.String("MicrosoftWindowsServer"),
Sku: pulumi.String("2016-Datacenter"),
Version: pulumi.String("latest"),
},
OsDisk: interface{}{
Caching: compute.CachingTypesReadWrite,
CreateOption: pulumi.String("FromImage"),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
StorageAccountType: pulumi.String("Standard_LRS"),
},
},
},
},
VmScaleSetName: pulumi.String("{vmss-name}"),
})
if err != nil {
return err
}
return nil
})
}package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
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 virtualMachineScaleSet = new VirtualMachineScaleSet("virtualMachineScaleSet", VirtualMachineScaleSetArgs.builder()
            .location("westus")
            .overprovision(true)
            .resourceGroupName("myResourceGroup")
            .sku(Map.ofEntries(
                Map.entry("capacity", 3),
                Map.entry("name", "Standard_DS1_v2"),
                Map.entry("tier", "Standard")
            ))
            .upgradePolicy(Map.of("mode", "Manual"))
            .virtualMachineProfile(Map.ofEntries(
                Map.entry("capacityReservation", Map.of("capacityReservationGroup", Map.of("id", "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}"))),
                Map.entry("networkProfile", Map.of("networkInterfaceConfigurations", Map.ofEntries(
                    Map.entry("enableIPForwarding", true),
                    Map.entry("ipConfigurations", Map.ofEntries(
                        Map.entry("name", "{vmss-name}"),
                        Map.entry("subnet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"))
                    )),
                    Map.entry("name", "{vmss-name}"),
                    Map.entry("primary", true)
                ))),
                Map.entry("osProfile", Map.ofEntries(
                    Map.entry("adminPassword", "{your-password}"),
                    Map.entry("adminUsername", "{your-username}"),
                    Map.entry("computerNamePrefix", "{vmss-name}")
                )),
                Map.entry("storageProfile", Map.ofEntries(
                    Map.entry("imageReference", Map.ofEntries(
                        Map.entry("offer", "WindowsServer"),
                        Map.entry("publisher", "MicrosoftWindowsServer"),
                        Map.entry("sku", "2016-Datacenter"),
                        Map.entry("version", "latest")
                    )),
                    Map.entry("osDisk", Map.ofEntries(
                        Map.entry("caching", "ReadWrite"),
                        Map.entry("createOption", "FromImage"),
                        Map.entry("managedDisk", Map.of("storageAccountType", "Standard_LRS"))
                    ))
                ))
            ))
            .vmScaleSetName("{vmss-name}")
            .build());
    }
}Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:compute:VirtualMachineScaleSet {vmss-name} /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}Constructors
Functions
Properties
Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.
Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. zoneBalance property can only be set if the zones property of the scale set contains more than one zone. If there are no zones or only one zone specified, then zoneBalance property should not be set.