1. Packages
  2. Azure Native
  3. API Docs
  4. compute
  5. VirtualMachineScaleSet
This is the latest version of Azure Native. Use the Azure Native v2 docs if using the v2 version of this package.
Azure Native v3.5.1 published on Friday, Jun 6, 2025 by Pulumi

azure-native.compute.VirtualMachineScaleSet

Explore with Pulumi AI

azure-native logo
This is the latest version of Azure Native. Use the Azure Native v2 docs if using the v2 version of this package.
Azure Native v3.5.1 published on Friday, Jun 6, 2025 by Pulumi

    Describes a Virtual Machine Scale Set.

    Uses Azure REST API version 2024-11-01. In version 2.x of the Azure Native provider, it used API version 2023-03-01.

    Other available API versions: 2022-08-01, 2022-11-01, 2023-03-01, 2023-07-01, 2023-09-01, 2024-03-01, 2024-07-01. These can be accessed by generating a local SDK package using the CLI command pulumi package add azure-native compute [ApiVersion]. See the version guide for details.

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    					BootDiagnostics: &compute.BootDiagnosticsArgs{
    						Enabled:    pulumi.Bool(true),
    						StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
    					},
    				},
    				ExtensionProfile: &compute.VirtualMachineScaleSetExtensionProfileArgs{
    					Extensions: compute.VirtualMachineScaleSetExtensionTypeArray{
    						&compute.VirtualMachineScaleSetExtensionTypeArgs{
    							AutoUpgradeMinorVersion: pulumi.Bool(false),
    							Name:                    pulumi.String("{extension-name}"),
    							Publisher:               pulumi.String("{extension-Publisher}"),
    							Settings:                pulumi.Any(map[string]interface{}{}),
    							SuppressFailures:        pulumi.Bool(true),
    							Type:                    pulumi.String("{extension-Type}"),
    							TypeHandlerVersion:      pulumi.String("{handler-version}"),
    						},
    					},
    				},
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetExtensionProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                        .bootDiagnostics(BootDiagnosticsArgs.builder()
                            .enabled(true)
                            .storageUri("http://{existing-storage-account-name}.blob.core.windows.net")
                            .build())
                        .build())
                    .extensionProfile(VirtualMachineScaleSetExtensionProfileArgs.builder()
                        .extensions(VirtualMachineScaleSetExtensionArgs.builder()
                            .autoUpgradeMinorVersion(false)
                            .name("{extension-name}")
                            .publisher("{extension-Publisher}")
                            .settings(Map.ofEntries(
                            ))
                            .suppressFailures(true)
                            .type("{extension-Type}")
                            .typeHandlerVersion("{handler-version}")
                            .build())
                        .build())
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            diagnosticsProfile: {
                bootDiagnostics: {
                    enabled: true,
                    storageUri: "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            extensionProfile: {
                extensions: [{
                    autoUpgradeMinorVersion: false,
                    name: "{extension-name}",
                    publisher: "{extension-Publisher}",
                    settings: {},
                    suppressFailures: true,
                    type: "{extension-Type}",
                    typeHandlerVersion: "{handler-version}",
                }],
            },
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "diagnostics_profile": {
                "boot_diagnostics": {
                    "enabled": True,
                    "storage_uri": "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            "extension_profile": {
                "extensions": [{
                    "auto_upgrade_minor_version": False,
                    "name": "{extension-name}",
                    "publisher": "{extension-Publisher}",
                    "settings": {},
                    "suppress_failures": True,
                    "type": "{extension-Type}",
                    "type_handler_version": "{handler-version}",
                }],
            },
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            diagnosticsProfile:
              bootDiagnostics:
                enabled: true
                storageUri: http://{existing-storage-account-name}.blob.core.windows.net
            extensionProfile:
              extensions:
                - autoUpgradeMinorVersion: false
                  name: '{extension-name}'
                  publisher: '{extension-Publisher}'
                  settings: {}
                  suppressFailures: true
                  type: '{extension-Type}'
                  typeHandlerVersion: '{handler-version}'
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    					BootDiagnostics: &compute.BootDiagnosticsArgs{
    						Enabled:    pulumi.Bool(true),
    						StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
    					},
    				},
    				ExtensionProfile: &compute.VirtualMachineScaleSetExtensionProfileArgs{
    					Extensions: compute.VirtualMachineScaleSetExtensionTypeArray{
    						&compute.VirtualMachineScaleSetExtensionTypeArgs{
    							AutoUpgradeMinorVersion: pulumi.Bool(false),
    							Name:                    pulumi.String("{extension-name}"),
    							ProtectedSettingsFromKeyVault: &compute.KeyVaultSecretReferenceArgs{
    								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:           pulumi.Any(map[string]interface{}{}),
    							Type:               pulumi.String("{extension-Type}"),
    							TypeHandlerVersion: pulumi.String("{handler-version}"),
    						},
    					},
    				},
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetExtensionProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                        .bootDiagnostics(BootDiagnosticsArgs.builder()
                            .enabled(true)
                            .storageUri("http://{existing-storage-account-name}.blob.core.windows.net")
                            .build())
                        .build())
                    .extensionProfile(VirtualMachineScaleSetExtensionProfileArgs.builder()
                        .extensions(VirtualMachineScaleSetExtensionArgs.builder()
                            .autoUpgradeMinorVersion(false)
                            .name("{extension-name}")
                            .protectedSettingsFromKeyVault(KeyVaultSecretReferenceArgs.builder()
                                .secretUrl("https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e")
                                .sourceVault(SubResourceArgs.builder()
                                    .id("/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName")
                                    .build())
                                .build())
                            .publisher("{extension-Publisher}")
                            .settings(Map.ofEntries(
                            ))
                            .type("{extension-Type}")
                            .typeHandlerVersion("{handler-version}")
                            .build())
                        .build())
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            diagnosticsProfile: {
                bootDiagnostics: {
                    enabled: true,
                    storageUri: "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            extensionProfile: {
                extensions: [{
                    autoUpgradeMinorVersion: false,
                    name: "{extension-name}",
                    protectedSettingsFromKeyVault: {
                        secretUrl: "https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e",
                        sourceVault: {
                            id: "/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName",
                        },
                    },
                    publisher: "{extension-Publisher}",
                    settings: {},
                    type: "{extension-Type}",
                    typeHandlerVersion: "{handler-version}",
                }],
            },
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "diagnostics_profile": {
                "boot_diagnostics": {
                    "enabled": True,
                    "storage_uri": "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            "extension_profile": {
                "extensions": [{
                    "auto_upgrade_minor_version": False,
                    "name": "{extension-name}",
                    "protected_settings_from_key_vault": {
                        "secret_url": "https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e",
                        "source_vault": {
                            "id": "/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName",
                        },
                    },
                    "publisher": "{extension-Publisher}",
                    "settings": {},
                    "type": "{extension-Type}",
                    "type_handler_version": "{handler-version}",
                }],
            },
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            diagnosticsProfile:
              bootDiagnostics:
                enabled: true
                storageUri: http://{existing-storage-account-name}.blob.core.windows.net
            extensionProfile:
              extensions:
                - autoUpgradeMinorVersion: false
                  name: '{extension-name}'
                  protectedSettingsFromKeyVault:
                    secretUrl: https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e
                    sourceVault:
                      id: /subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName
                  publisher: '{extension-Publisher}'
                  settings: {}
                  type: '{extension-Type}'
                  typeHandlerVersion: '{handler-version}'
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.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 (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualHardDiskArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .image(VirtualHardDiskArgs.builder()
                                .uri("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd")
                                .build())
                            .name("osDisk")
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    image: {
                        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}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "image": {
                        "uri": "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd",
                    },
                    "name": "osDisk",
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                image:
                  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}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.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 (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .name("osDisk")
                            .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")
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    name: "osDisk",
                    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}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "name": "osDisk",
                    "vhd_containers": [
                        "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",
                    ],
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                name: osDisk
                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}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            storageProfile: {
                imageReference: {
                    id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "storage_profile": {
                "image_reference": {
                    "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            storageProfile:
              imageReference:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.IPVersion.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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							DisableTcpStateTracking:     pulumi.Bool(true),
    							EnableAcceleratedNetworking: pulumi.Bool(true),
    							EnableIPForwarding:          pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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),
    						},
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							DisableTcpStateTracking:     pulumi.Bool(false),
    							EnableAcceleratedNetworking: pulumi.Bool(false),
    							EnableIPForwarding:          pulumi.Bool(false),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									Name:                    pulumi.String("{nicConfig2-name}"),
    									Primary:                 pulumi.Bool(true),
    									PrivateIPAddressVersion: pulumi.String(compute.IPVersionIPv4),
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(                    
                            VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                                .disableTcpStateTracking(true)
                                .enableAcceleratedNetworking(true)
                                .enableIPForwarding(true)
                                .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                    .name("{vmss-name}")
                                    .subnet(ApiEntityReferenceArgs.builder()
                                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                        .build())
                                    .build())
                                .name("{nicConfig1-name}")
                                .primary(true)
                                .build(),
                            VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                                .disableTcpStateTracking(false)
                                .enableAcceleratedNetworking(false)
                                .enableIPForwarding(false)
                                .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                    .name("{nicConfig2-name}")
                                    .primary(true)
                                    .privateIPAddressVersion("IPv4")
                                    .subnet(ApiEntityReferenceArgs.builder()
                                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name2}")
                                        .build())
                                    .build())
                                .name("{nicConfig2-name}")
                                .primary(false)
                                .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [
                    {
                        disableTcpStateTracking: true,
                        enableAcceleratedNetworking: true,
                        enableIPForwarding: true,
                        ipConfigurations: [{
                            name: "{vmss-name}",
                            subnet: {
                                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                            },
                        }],
                        name: "{nicConfig1-name}",
                        primary: true,
                    },
                    {
                        disableTcpStateTracking: false,
                        enableAcceleratedNetworking: false,
                        enableIPForwarding: false,
                        ipConfigurations: [{
                            name: "{nicConfig2-name}",
                            primary: true,
                            privateIPAddressVersion: azure_native.compute.IPVersion.IPv4,
                            subnet: {
                                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: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [
                    {
                        "disable_tcp_state_tracking": True,
                        "enable_accelerated_networking": True,
                        "enable_ip_forwarding": True,
                        "ip_configurations": [{
                            "name": "{vmss-name}",
                            "subnet": {
                                "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                            },
                        }],
                        "name": "{nicConfig1-name}",
                        "primary": True,
                    },
                    {
                        "disable_tcp_state_tracking": False,
                        "enable_accelerated_networking": False,
                        "enable_ip_forwarding": False,
                        "ip_configurations": [{
                            "name": "{nicConfig2-name}",
                            "primary": True,
                            "private_ip_address_version": azure_native.compute.IPVersion.I_PV4,
                            "subnet": {
                                "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name2}",
                            },
                        }],
                        "name": "{nicConfig2-name}",
                        "primary": False,
                    },
                ],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - disableTcpStateTracking: true
                  enableAcceleratedNetworking: true
                  enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{nicConfig1-name}'
                  primary: true
                - disableTcpStateTracking: false
                  enableAcceleratedNetworking: false
                  enableIPForwarding: false
                  ipConfigurations:
                    - name: '{nicConfig2-name}'
                      primary: true
                      privateIPAddressVersion: IPv4
                      subnet:
                        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:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				ApplicationProfile: &compute.ApplicationProfileArgs{
    					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: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ApplicationProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .applicationProfile(ApplicationProfileArgs.builder()
                        .galleryApplications(                    
                            VMGalleryApplicationArgs.builder()
                                .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)
                                .build(),
                            VMGalleryApplicationArgs.builder()
                                .packageReferenceId("/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1")
                                .build())
                        .build())
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            applicationProfile: {
                galleryApplications: [
                    {
                        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,
                    },
                    {
                        packageReferenceId: "/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1",
                    },
                ],
            },
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "application_profile": {
                "gallery_applications": [
                    {
                        "configuration_reference": "https://mystorageaccount.blob.core.windows.net/configurations/settings.config",
                        "enable_automatic_upgrade": False,
                        "order": 1,
                        "package_reference_id": "/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdb/resourceGroups/myresourceGroupName2/providers/Microsoft.Compute/galleries/myGallery1/applications/MyApplication1/versions/1.0",
                        "tags": "myTag1",
                        "treat_failure_as_deployment_failure": True,
                    },
                    {
                        "package_reference_id": "/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1",
                    },
                ],
            },
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            applicationProfile:
              galleryApplications:
                - 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
                - packageReferenceId: /subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    Create a scale set with Automatic Zone Rebalancing 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 = false,
            ResiliencyPolicy = new AzureNative.Compute.Inputs.ResiliencyPolicyArgs
            {
                AutomaticZoneRebalancingPolicy = new AzureNative.Compute.Inputs.AutomaticZoneRebalancingPolicyArgs
                {
                    Enabled = true,
                    RebalanceBehavior = AzureNative.Compute.RebalanceBehavior.CreateBeforeDelete,
                    RebalanceStrategy = AzureNative.Compute.RebalanceStrategy.Recreate,
                },
            },
            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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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(false),
    			ResiliencyPolicy: &compute.ResiliencyPolicyArgs{
    				AutomaticZoneRebalancingPolicy: &compute.AutomaticZoneRebalancingPolicyArgs{
    					Enabled:           pulumi.Bool(true),
    					RebalanceBehavior: pulumi.String(compute.RebalanceBehaviorCreateBeforeDelete),
    					RebalanceStrategy: pulumi.String(compute.RebalanceStrategyRecreate),
    				},
    			},
    			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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.ResiliencyPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.AutomaticZoneRebalancingPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(false)
                .resiliencyPolicy(ResiliencyPolicyArgs.builder()
                    .automaticZoneRebalancingPolicy(AutomaticZoneRebalancingPolicyArgs.builder()
                        .enabled(true)
                        .rebalanceBehavior("CreateBeforeDelete")
                        .rebalanceStrategy("Recreate")
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .sku(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: false,
        resiliencyPolicy: {
            automaticZoneRebalancingPolicy: {
                enabled: true,
                rebalanceBehavior: azure_native.compute.RebalanceBehavior.CreateBeforeDelete,
                rebalanceStrategy: azure_native.compute.RebalanceStrategy.Recreate,
            },
        },
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=False,
        resiliency_policy={
            "automatic_zone_rebalancing_policy": {
                "enabled": True,
                "rebalance_behavior": azure_native.compute.RebalanceBehavior.CREATE_BEFORE_DELETE,
                "rebalance_strategy": azure_native.compute.RebalanceStrategy.RECREATE,
            },
        },
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: false
          resiliencyPolicy:
            automaticZoneRebalancingPolicy:
              enabled: true
              rebalanceBehavior: CreateBeforeDelete
              rebalanceStrategy: Recreate
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    Create a scale set with Disk Controller Type

    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",
            ScheduledEventsPolicy = new AzureNative.Compute.Inputs.ScheduledEventsPolicyArgs
            {
                ScheduledEventsAdditionalPublishingTargets = new AzureNative.Compute.Inputs.ScheduledEventsAdditionalPublishingTargetsArgs
                {
                    EventGridAndResourceGraph = new AzureNative.Compute.Inputs.EventGridAndResourceGraphArgs
                    {
                        Enable = true,
                    },
                },
                UserInitiatedReboot = new AzureNative.Compute.Inputs.UserInitiatedRebootArgs
                {
                    AutomaticallyApprove = true,
                },
                UserInitiatedRedeploy = new AzureNative.Compute.Inputs.UserInitiatedRedeployArgs
                {
                    AutomaticallyApprove = true,
                },
            },
            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
                {
                    DiskControllerType = "NVMe",
                    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
                UserData = "RXhhbXBsZSBVc2VyRGF0YQ==",
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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"),
    			ScheduledEventsPolicy: &compute.ScheduledEventsPolicyArgs{
    				ScheduledEventsAdditionalPublishingTargets: &compute.ScheduledEventsAdditionalPublishingTargetsArgs{
    					EventGridAndResourceGraph: &compute.EventGridAndResourceGraphArgs{
    						Enable: pulumi.Bool(true),
    					},
    				},
    				UserInitiatedReboot: &compute.UserInitiatedRebootArgs{
    					AutomaticallyApprove: pulumi.Bool(true),
    				},
    				UserInitiatedRedeploy: &compute.UserInitiatedRedeployArgs{
    					AutomaticallyApprove: pulumi.Bool(true),
    				},
    			},
    			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.VirtualMachineScaleSetVMProfileArgs{
    				HardwareProfile: &compute.VirtualMachineScaleSetHardwareProfileArgs{
    					VmSizeProperties: &compute.VMSizePropertiesArgs{
    						VCPUsAvailable: pulumi.Int(1),
    						VCPUsPerCore:   pulumi.Int(1),
    					},
    				},
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					DiskControllerType: pulumi.String("NVMe"),
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.ScheduledEventsPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.ScheduledEventsAdditionalPublishingTargetsArgs;
    import com.pulumi.azurenative.compute.inputs.EventGridAndResourceGraphArgs;
    import com.pulumi.azurenative.compute.inputs.UserInitiatedRebootArgs;
    import com.pulumi.azurenative.compute.inputs.UserInitiatedRedeployArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetHardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VMSizePropertiesArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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")
                .scheduledEventsPolicy(ScheduledEventsPolicyArgs.builder()
                    .scheduledEventsAdditionalPublishingTargets(ScheduledEventsAdditionalPublishingTargetsArgs.builder()
                        .eventGridAndResourceGraph(EventGridAndResourceGraphArgs.builder()
                            .enable(true)
                            .build())
                        .build())
                    .userInitiatedReboot(UserInitiatedRebootArgs.builder()
                        .automaticallyApprove(true)
                        .build())
                    .userInitiatedRedeploy(UserInitiatedRedeployArgs.builder()
                        .automaticallyApprove(true)
                        .build())
                    .build())
                .sku(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .hardwareProfile(VirtualMachineScaleSetHardwareProfileArgs.builder()
                        .vmSizeProperties(VMSizePropertiesArgs.builder()
                            .vCPUsAvailable(1)
                            .vCPUsPerCore(1)
                            .build())
                        .build())
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .diskControllerType("NVMe")
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .userData("RXhhbXBsZSBVc2VyRGF0YQ==")
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        scheduledEventsPolicy: {
            scheduledEventsAdditionalPublishingTargets: {
                eventGridAndResourceGraph: {
                    enable: true,
                },
            },
            userInitiatedReboot: {
                automaticallyApprove: true,
            },
            userInitiatedRedeploy: {
                automaticallyApprove: true,
            },
        },
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            hardwareProfile: {
                vmSizeProperties: {
                    vCPUsAvailable: 1,
                    vCPUsPerCore: 1,
                },
            },
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                diskControllerType: "NVMe",
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
            userData: "RXhhbXBsZSBVc2VyRGF0YQ==",
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        scheduled_events_policy={
            "scheduled_events_additional_publishing_targets": {
                "event_grid_and_resource_graph": {
                    "enable": True,
                },
            },
            "user_initiated_reboot": {
                "automatically_approve": True,
            },
            "user_initiated_redeploy": {
                "automatically_approve": True,
            },
        },
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "hardware_profile": {
                "vm_size_properties": {
                    "v_cpus_available": 1,
                    "v_cpus_per_core": 1,
                },
            },
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "disk_controller_type": "NVMe",
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
            "user_data": "RXhhbXBsZSBVc2VyRGF0YQ==",
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          scheduledEventsPolicy:
            scheduledEventsAdditionalPublishingTargets:
              eventGridAndResourceGraph:
                enable: true
            userInitiatedReboot:
              automaticallyApprove: true
            userInitiatedRedeploy:
              automaticallyApprove: true
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            hardwareProfile:
              vmSizeProperties:
                vCPUsAvailable: 1
                vCPUsPerCore: 1
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              diskControllerType: NVMe
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
            userData: RXhhbXBsZSBVc2VyRGF0YQ==
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.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 = AzureNative.Compute.StorageAccountTypes.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 = AzureNative.Compute.DiskCreateOptionTypes.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 = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					DataDisks: compute.VirtualMachineScaleSetDataDiskArray{
    						&compute.VirtualMachineScaleSetDataDiskArgs{
    							Caching:      compute.CachingTypesReadWrite,
    							CreateOption: pulumi.String(compute.DiskCreateOptionTypesEmpty),
    							DiskSizeGB:   pulumi.Int(1023),
    							Lun:          pulumi.Int(0),
    							ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    								DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
    									Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"),
    								},
    								StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    							},
    						},
    					},
    					ImageReference: &compute.ImageReferenceArgs{
    						Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
    								Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"),
    							},
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    import com.pulumi.azurenative.compute.inputs.DiskEncryptionSetParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_DS1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .dataDisks(VirtualMachineScaleSetDataDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("Empty")
                            .diskSizeGB(1023)
                            .lun(0)
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .diskEncryptionSet(DiskEncryptionSetParametersArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")
                                    .build())
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .imageReference(ImageReferenceArgs.builder()
                            .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .diskEncryptionSet(DiskEncryptionSetParametersArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")
                                    .build())
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_DS1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                dataDisks: [{
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.Empty,
                    diskSizeGB: 1023,
                    lun: 0,
                    managedDisk: {
                        diskEncryptionSet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        },
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                }],
                imageReference: {
                    id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        diskEncryptionSet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        },
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_DS1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "data_disks": [{
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.EMPTY,
                    "disk_size_gb": 1023,
                    "lun": 0,
                    "managed_disk": {
                        "disk_encryption_set": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        },
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                }],
                "image_reference": {
                    "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "disk_encryption_set": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        },
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_DS1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              dataDisks:
                - caching: ReadWrite
                  createOption: Empty
                  diskSizeGB: 1023
                  lun: 0
                  managedDisk:
                    diskEncryptionSet:
                      id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}
                    storageAccountType: Standard_LRS
              imageReference:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  diskEncryptionSet:
                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.IPVersion.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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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),
    						},
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableAcceleratedNetworking: pulumi.Bool(false),
    							EnableFpga:                  pulumi.Bool(true),
    							EnableIPForwarding:          pulumi.Bool(false),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									Name:                    pulumi.String("{fpgaNic-Name}"),
    									Primary:                 pulumi.Bool(true),
    									PrivateIPAddressVersion: pulumi.String(compute.IPVersionIPv4),
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(                    
                            VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                                .enableIPForwarding(true)
                                .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                    .name("{vmss-name}")
                                    .subnet(ApiEntityReferenceArgs.builder()
                                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                        .build())
                                    .build())
                                .name("{vmss-name}")
                                .primary(true)
                                .build(),
                            VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                                .enableAcceleratedNetworking(false)
                                .enableFpga(true)
                                .enableIPForwarding(false)
                                .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                    .name("{fpgaNic-Name}")
                                    .primary(true)
                                    .privateIPAddressVersion("IPv4")
                                    .subnet(ApiEntityReferenceArgs.builder()
                                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name}")
                                        .build())
                                    .build())
                                .name("{fpgaNic-Name}")
                                .primary(false)
                                .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [
                    {
                        enableIPForwarding: true,
                        ipConfigurations: [{
                            name: "{vmss-name}",
                            subnet: {
                                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                            },
                        }],
                        name: "{vmss-name}",
                        primary: true,
                    },
                    {
                        enableAcceleratedNetworking: false,
                        enableFpga: true,
                        enableIPForwarding: false,
                        ipConfigurations: [{
                            name: "{fpgaNic-Name}",
                            primary: true,
                            privateIPAddressVersion: azure_native.compute.IPVersion.IPv4,
                            subnet: {
                                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: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [
                    {
                        "enable_ip_forwarding": True,
                        "ip_configurations": [{
                            "name": "{vmss-name}",
                            "subnet": {
                                "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                            },
                        }],
                        "name": "{vmss-name}",
                        "primary": True,
                    },
                    {
                        "enable_accelerated_networking": False,
                        "enable_fpga": True,
                        "enable_ip_forwarding": False,
                        "ip_configurations": [{
                            "name": "{fpgaNic-Name}",
                            "primary": True,
                            "private_ip_address_version": azure_native.compute.IPVersion.I_PV4,
                            "subnet": {
                                "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name}",
                            },
                        }],
                        "name": "{fpgaNic-Name}",
                        "primary": False,
                    },
                ],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
                - enableAcceleratedNetworking: false
                  enableFpga: true
                  enableIPForwarding: false
                  ipConfigurations:
                    - name: '{fpgaNic-Name}'
                      primary: true
                      privateIPAddressVersion: IPv4
                      subnet:
                        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:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Offer:     pulumi.String("windows-data-science-vm"),
    						Publisher: pulumi.String("microsoft-ads"),
    						Sku:       pulumi.String("windows2016"),
    						Version:   pulumi.String("latest"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadOnly,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.PlanArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.SecurityProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(PlanArgs.builder()
                    .name("windows2016")
                    .product("windows-data-science-vm")
                    .publisher("microsoft-ads")
                    .build())
                .resourceGroupName("myResourceGroup")
                .sku(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_DS1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .securityProfile(SecurityProfileArgs.builder()
                        .encryptionAtHost(true)
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("windows-data-science-vm")
                            .publisher("microsoft-ads")
                            .sku("windows2016")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadOnly")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        plan: {
            name: "windows2016",
            product: "windows-data-science-vm",
            publisher: "microsoft-ads",
        },
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_DS1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            securityProfile: {
                encryptionAtHost: true,
            },
            storageProfile: {
                imageReference: {
                    offer: "windows-data-science-vm",
                    publisher: "microsoft-ads",
                    sku: "windows2016",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadOnly,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        plan={
            "name": "windows2016",
            "product": "windows-data-science-vm",
            "publisher": "microsoft-ads",
        },
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_DS1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "security_profile": {
                "encryption_at_host": True,
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "windows-data-science-vm",
                    "publisher": "microsoft-ads",
                    "sku": "windows2016",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_ONLY,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          plan:
            name: windows2016
            product: windows-data-science-vm
            publisher: microsoft-ads
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_DS1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            securityProfile:
              encryptionAtHost: true
            storageProfile:
              imageReference:
                offer: windows-data-science-vm
                publisher: microsoft-ads
                sku: windows2016
                version: latest
              osDisk:
                caching: ReadOnly
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    Create a scale set with Network Interfaces with public ip address dns settings.

    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
                        {
                            AuxiliaryMode = AzureNative.Compute.NetworkInterfaceAuxiliaryMode.AcceleratedConnections,
                            AuxiliarySku = AzureNative.Compute.NetworkInterfaceAuxiliarySku.A1,
                            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 = AzureNative.Compute.IPVersion.IPv4,
                                    PublicIPAddressConfiguration = new AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfigurationArgs
                                    {
                                        DnsSettings = new AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsArgs
                                        {
                                            DomainNameLabel = "vmsstestlabel01",
                                            DomainNameLabelScope = AzureNative.Compute.DomainNameLabelScopeTypes.NoReuse,
                                        },
                                        IdleTimeoutInMinutes = 10,
                                        Name = "publicip",
                                    },
                                    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							AuxiliaryMode:               pulumi.String(compute.NetworkInterfaceAuxiliaryModeAcceleratedConnections),
    							AuxiliarySku:                pulumi.String(compute.NetworkInterfaceAuxiliarySkuA1),
    							DisableTcpStateTracking:     pulumi.Bool(true),
    							EnableAcceleratedNetworking: pulumi.Bool(true),
    							EnableIPForwarding:          pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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),
    						},
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							DisableTcpStateTracking:     pulumi.Bool(false),
    							EnableAcceleratedNetworking: pulumi.Bool(false),
    							EnableIPForwarding:          pulumi.Bool(false),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									Name:                    pulumi.String("{nicConfig2-name}"),
    									Primary:                 pulumi.Bool(true),
    									PrivateIPAddressVersion: pulumi.String(compute.IPVersionIPv4),
    									PublicIPAddressConfiguration: &compute.VirtualMachineScaleSetPublicIPAddressConfigurationArgs{
    										DnsSettings: &compute.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsArgs{
    											DomainNameLabel:      pulumi.String("vmsstestlabel01"),
    											DomainNameLabelScope: pulumi.String(compute.DomainNameLabelScopeTypesNoReuse),
    										},
    										IdleTimeoutInMinutes: pulumi.Int(10),
    										Name:                 pulumi.String("publicip"),
    									},
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(                    
                            VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                                .auxiliaryMode("AcceleratedConnections")
                                .auxiliarySku("A1")
                                .disableTcpStateTracking(true)
                                .enableAcceleratedNetworking(true)
                                .enableIPForwarding(true)
                                .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                    .name("{vmss-name}")
                                    .subnet(ApiEntityReferenceArgs.builder()
                                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                        .build())
                                    .build())
                                .name("{nicConfig1-name}")
                                .primary(true)
                                .build(),
                            VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                                .disableTcpStateTracking(false)
                                .enableAcceleratedNetworking(false)
                                .enableIPForwarding(false)
                                .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                    .name("{nicConfig2-name}")
                                    .primary(true)
                                    .privateIPAddressVersion("IPv4")
                                    .publicIPAddressConfiguration(VirtualMachineScaleSetPublicIPAddressConfigurationArgs.builder()
                                        .dnsSettings(VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsArgs.builder()
                                            .domainNameLabel("vmsstestlabel01")
                                            .domainNameLabelScope("NoReuse")
                                            .build())
                                        .idleTimeoutInMinutes(10)
                                        .name("publicip")
                                        .build())
                                    .subnet(ApiEntityReferenceArgs.builder()
                                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name2}")
                                        .build())
                                    .build())
                                .name("{nicConfig2-name}")
                                .primary(false)
                                .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [
                    {
                        auxiliaryMode: azure_native.compute.NetworkInterfaceAuxiliaryMode.AcceleratedConnections,
                        auxiliarySku: azure_native.compute.NetworkInterfaceAuxiliarySku.A1,
                        disableTcpStateTracking: true,
                        enableAcceleratedNetworking: true,
                        enableIPForwarding: true,
                        ipConfigurations: [{
                            name: "{vmss-name}",
                            subnet: {
                                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                            },
                        }],
                        name: "{nicConfig1-name}",
                        primary: true,
                    },
                    {
                        disableTcpStateTracking: false,
                        enableAcceleratedNetworking: false,
                        enableIPForwarding: false,
                        ipConfigurations: [{
                            name: "{nicConfig2-name}",
                            primary: true,
                            privateIPAddressVersion: azure_native.compute.IPVersion.IPv4,
                            publicIPAddressConfiguration: {
                                dnsSettings: {
                                    domainNameLabel: "vmsstestlabel01",
                                    domainNameLabelScope: azure_native.compute.DomainNameLabelScopeTypes.NoReuse,
                                },
                                idleTimeoutInMinutes: 10,
                                name: "publicip",
                            },
                            subnet: {
                                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: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [
                    {
                        "auxiliary_mode": azure_native.compute.NetworkInterfaceAuxiliaryMode.ACCELERATED_CONNECTIONS,
                        "auxiliary_sku": azure_native.compute.NetworkInterfaceAuxiliarySku.A1,
                        "disable_tcp_state_tracking": True,
                        "enable_accelerated_networking": True,
                        "enable_ip_forwarding": True,
                        "ip_configurations": [{
                            "name": "{vmss-name}",
                            "subnet": {
                                "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                            },
                        }],
                        "name": "{nicConfig1-name}",
                        "primary": True,
                    },
                    {
                        "disable_tcp_state_tracking": False,
                        "enable_accelerated_networking": False,
                        "enable_ip_forwarding": False,
                        "ip_configurations": [{
                            "name": "{nicConfig2-name}",
                            "primary": True,
                            "private_ip_address_version": azure_native.compute.IPVersion.I_PV4,
                            "public_ip_address_configuration": {
                                "dns_settings": {
                                    "domain_name_label": "vmsstestlabel01",
                                    "domain_name_label_scope": azure_native.compute.DomainNameLabelScopeTypes.NO_REUSE,
                                },
                                "idle_timeout_in_minutes": 10,
                                "name": "publicip",
                            },
                            "subnet": {
                                "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name2}",
                            },
                        }],
                        "name": "{nicConfig2-name}",
                        "primary": False,
                    },
                ],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - auxiliaryMode: AcceleratedConnections
                  auxiliarySku: A1
                  disableTcpStateTracking: true
                  enableAcceleratedNetworking: true
                  enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{nicConfig1-name}'
                  primary: true
                - disableTcpStateTracking: false
                  enableAcceleratedNetworking: false
                  enableIPForwarding: false
                  ipConfigurations:
                    - name: '{nicConfig2-name}'
                      primary: true
                      privateIPAddressVersion: IPv4
                      publicIPAddressConfiguration:
                        dnsSettings:
                          domainNameLabel: vmsstestlabel01
                          domainNameLabelScope: NoReuse
                        idleTimeoutInMinutes: 10
                        name: publicip
                      subnet:
                        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:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.ScheduledEventsProfileArgs{
    					OsImageNotificationProfile: &compute.OSImageNotificationProfileArgs{
    						Enable:           pulumi.Bool(true),
    						NotBeforeTimeout: pulumi.String("PT15M"),
    					},
    				},
    				StorageProfile: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ScheduledEventsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.OSImageNotificationProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .scheduledEventsProfile(ScheduledEventsProfileArgs.builder()
                        .osImageNotificationProfile(OSImageNotificationProfileArgs.builder()
                            .enable(true)
                            .notBeforeTimeout("PT15M")
                            .build())
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            scheduledEventsProfile: {
                osImageNotificationProfile: {
                    enable: true,
                    notBeforeTimeout: "PT15M",
                },
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "scheduled_events_profile": {
                "os_image_notification_profile": {
                    "enable": True,
                    "not_before_timeout": "PT15M",
                },
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            scheduledEventsProfile:
              osImageNotificationProfile:
                enable: true
                notBeforeTimeout: PT15M
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    Create a scale set with ProxyAgent Settings of enabled and mode.

    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
                {
                    ProxyAgentSettings = new AzureNative.Compute.Inputs.ProxyAgentSettingsArgs
                    {
                        Enabled = true,
                    },
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2019-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                        CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.StandardSSD_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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{
    					ProxyAgentSettings: &compute.ProxyAgentSettingsArgs{
    						Enabled: pulumi.Bool(true),
    					},
    				},
    				StorageProfile: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Offer:     pulumi.String("WindowsServer"),
    						Publisher: pulumi.String("MicrosoftWindowsServer"),
    						Sku:       pulumi.String("2019-Datacenter"),
    						Version:   pulumi.String("latest"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadOnly,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.SecurityProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ProxyAgentSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D2s_v3")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .securityProfile(SecurityProfileArgs.builder()
                        .proxyAgentSettings(ProxyAgentSettingsArgs.builder()
                            .enabled(true)
                            .build())
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2019-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadOnly")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("StandardSSD_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D2s_v3",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            securityProfile: {
                proxyAgentSettings: {
                    enabled: true,
                },
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2019-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadOnly,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.StandardSSD_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D2s_v3",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "security_profile": {
                "proxy_agent_settings": {
                    "enabled": True,
                },
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2019-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_ONLY,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_SS_D_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D2s_v3
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            securityProfile:
              proxyAgentSettings:
                enabled: true
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2019-Datacenter
                version: latest
              osDisk:
                caching: ReadOnly
                createOption: FromImage
                managedDisk:
                  storageAccountType: StandardSSD_LRS
          vmScaleSetName: '{vmss-name}'
    

    Create a scale set with Resilient VM Creation 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 = false,
            ResiliencyPolicy = new AzureNative.Compute.Inputs.ResiliencyPolicyArgs
            {
                ResilientVMCreationPolicy = new AzureNative.Compute.Inputs.ResilientVMCreationPolicyArgs
                {
                    Enabled = 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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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(false),
    			ResiliencyPolicy: &compute.ResiliencyPolicyArgs{
    				ResilientVMCreationPolicy: &compute.ResilientVMCreationPolicyArgs{
    					Enabled: 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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.ResiliencyPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.ResilientVMCreationPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(false)
                .resiliencyPolicy(ResiliencyPolicyArgs.builder()
                    .resilientVMCreationPolicy(ResilientVMCreationPolicyArgs.builder()
                        .enabled(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .sku(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: false,
        resiliencyPolicy: {
            resilientVMCreationPolicy: {
                enabled: true,
            },
        },
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=False,
        resiliency_policy={
            "resilient_vm_creation_policy": {
                "enabled": True,
            },
        },
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: false
          resiliencyPolicy:
            resilientVMCreationPolicy:
              enabled: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    Create a scale set with Resilient VM Deletion 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 = false,
            ResiliencyPolicy = new AzureNative.Compute.Inputs.ResiliencyPolicyArgs
            {
                ResilientVMDeletionPolicy = new AzureNative.Compute.Inputs.ResilientVMDeletionPolicyArgs
                {
                    Enabled = 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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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(false),
    			ResiliencyPolicy: &compute.ResiliencyPolicyArgs{
    				ResilientVMDeletionPolicy: &compute.ResilientVMDeletionPolicyArgs{
    					Enabled: 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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.ResiliencyPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.ResilientVMDeletionPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(false)
                .resiliencyPolicy(ResiliencyPolicyArgs.builder()
                    .resilientVMDeletionPolicy(ResilientVMDeletionPolicyArgs.builder()
                        .enabled(true)
                        .build())
                    .build())
                .resourceGroupName("myResourceGroup")
                .sku(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: false,
        resiliencyPolicy: {
            resilientVMDeletionPolicy: {
                enabled: true,
            },
        },
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=False,
        resiliency_policy={
            "resilient_vm_deletion_policy": {
                "enabled": True,
            },
        },
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: false
          resiliencyPolicy:
            resilientVMDeletionPolicy:
              enabled: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        Name = "osDisk",
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.UpgradePolicyArgs{
    				AutomaticOSUpgradePolicy: &compute.AutomaticOSUpgradePolicyArgs{
    					EnableAutomaticOSUpgrade: pulumi.Bool(true),
    				},
    				Mode: compute.UpgradeModeAutomatic,
    			},
    			VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.AutomaticOSUpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.SecurityPostureReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_A1")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .automaticOSUpgradePolicy(AutomaticOSUpgradePolicyArgs.builder()
                        .enableAutomaticOSUpgrade(true)
                        .build())
                    .mode("Automatic")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .securityPostureReference(SecurityPostureReferenceArgs.builder()
                        .id("/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2022-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .name("osDisk")
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "eastus2euap",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_A1",
            tier: "Standard",
        },
        upgradePolicy: {
            automaticOSUpgradePolicy: {
                enableAutomaticOSUpgrade: true,
            },
            mode: azure_native.compute.UpgradeMode.Automatic,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            securityPostureReference: {
                id: "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2022-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    name: "osDisk",
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="eastus2euap",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_A1",
            "tier": "Standard",
        },
        upgrade_policy={
            "automatic_os_upgrade_policy": {
                "enable_automatic_os_upgrade": True,
            },
            "mode": azure_native.compute.UpgradeMode.AUTOMATIC,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "security_posture_reference": {
                "id": "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2022-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "name": "osDisk",
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: eastus2euap
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_A1
            tier: Standard
          upgradePolicy:
            automaticOSUpgradePolicy:
              enableAutomaticOSUpgrade: true
            mode: Automatic
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            securityPostureReference:
              id: /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2022-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                name: osDisk
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.SecurityTypes.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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            SecurityProfile = new AzureNative.Compute.Inputs.VMDiskSecurityProfileArgs
                            {
                                SecurityEncryptionType = AzureNative.Compute.SecurityEncryptionTypes.VMGuestStateOnly,
                            },
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.StandardSSD_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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{
    					SecurityType: pulumi.String(compute.SecurityTypesConfidentialVM),
    					UefiSettings: &compute.UefiSettingsArgs{
    						SecureBootEnabled: pulumi.Bool(true),
    						VTpmEnabled:       pulumi.Bool(true),
    					},
    				},
    				StorageProfile: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadOnly,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							SecurityProfile: &compute.VMDiskSecurityProfileArgs{
    								SecurityEncryptionType: pulumi.String(compute.SecurityEncryptionTypesVMGuestStateOnly),
    							},
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.SecurityProfileArgs;
    import com.pulumi.azurenative.compute.inputs.UefiSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    import com.pulumi.azurenative.compute.inputs.VMDiskSecurityProfileArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_DC2as_v5")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .securityProfile(SecurityProfileArgs.builder()
                        .securityType("ConfidentialVM")
                        .uefiSettings(UefiSettingsArgs.builder()
                            .secureBootEnabled(true)
                            .vTpmEnabled(true)
                            .build())
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("2019-datacenter-cvm")
                            .publisher("MicrosoftWindowsServer")
                            .sku("windows-cvm")
                            .version("17763.2183.2109130127")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadOnly")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .securityProfile(VMDiskSecurityProfileArgs.builder()
                                    .securityEncryptionType("VMGuestStateOnly")
                                    .build())
                                .storageAccountType("StandardSSD_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_DC2as_v5",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            securityProfile: {
                securityType: azure_native.compute.SecurityTypes.ConfidentialVM,
                uefiSettings: {
                    secureBootEnabled: true,
                    vTpmEnabled: true,
                },
            },
            storageProfile: {
                imageReference: {
                    offer: "2019-datacenter-cvm",
                    publisher: "MicrosoftWindowsServer",
                    sku: "windows-cvm",
                    version: "17763.2183.2109130127",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadOnly,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        securityProfile: {
                            securityEncryptionType: azure_native.compute.SecurityEncryptionTypes.VMGuestStateOnly,
                        },
                        storageAccountType: azure_native.compute.StorageAccountTypes.StandardSSD_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_DC2as_v5",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "security_profile": {
                "security_type": azure_native.compute.SecurityTypes.CONFIDENTIAL_VM,
                "uefi_settings": {
                    "secure_boot_enabled": True,
                    "v_tpm_enabled": True,
                },
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "2019-datacenter-cvm",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "windows-cvm",
                    "version": "17763.2183.2109130127",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_ONLY,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "security_profile": {
                            "security_encryption_type": azure_native.compute.SecurityEncryptionTypes.VM_GUEST_STATE_ONLY,
                        },
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_SS_D_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_DC2as_v5
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            securityProfile:
              securityType: ConfidentialVM
              uefiSettings:
                secureBootEnabled: true
                vTpmEnabled: true
            storageProfile:
              imageReference:
                offer: 2019-datacenter-cvm
                publisher: MicrosoftWindowsServer
                sku: windows-cvm
                version: 17763.2183.2109130127
              osDisk:
                caching: ReadOnly
                createOption: FromImage
                managedDisk:
                  securityProfile:
                    securityEncryptionType: VMGuestStateOnly
                  storageAccountType: StandardSSD_LRS
          vmScaleSetName: '{vmss-name}'
    

    Create a scale set with SecurityType as ConfidentialVM and NonPersistedTPM securityEncryptionType

    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_DC2es_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 = AzureNative.Compute.SecurityTypes.ConfidentialVM,
                    UefiSettings = new AzureNative.Compute.Inputs.UefiSettingsArgs
                    {
                        SecureBootEnabled = false,
                        VTpmEnabled = true,
                    },
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "2022-datacenter-cvm",
                        Publisher = "UbuntuServer",
                        Sku = "linux-cvm",
                        Version = "17763.2183.2109130127",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                        CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            SecurityProfile = new AzureNative.Compute.Inputs.VMDiskSecurityProfileArgs
                            {
                                SecurityEncryptionType = AzureNative.Compute.SecurityEncryptionTypes.NonPersistedTPM,
                            },
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.StandardSSD_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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_DC2es_v5"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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{
    					SecurityType: pulumi.String(compute.SecurityTypesConfidentialVM),
    					UefiSettings: &compute.UefiSettingsArgs{
    						SecureBootEnabled: pulumi.Bool(false),
    						VTpmEnabled:       pulumi.Bool(true),
    					},
    				},
    				StorageProfile: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Offer:     pulumi.String("2022-datacenter-cvm"),
    						Publisher: pulumi.String("UbuntuServer"),
    						Sku:       pulumi.String("linux-cvm"),
    						Version:   pulumi.String("17763.2183.2109130127"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadOnly,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							SecurityProfile: &compute.VMDiskSecurityProfileArgs{
    								SecurityEncryptionType: pulumi.String(compute.SecurityEncryptionTypesNonPersistedTPM),
    							},
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.SecurityProfileArgs;
    import com.pulumi.azurenative.compute.inputs.UefiSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    import com.pulumi.azurenative.compute.inputs.VMDiskSecurityProfileArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_DC2es_v5")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .securityProfile(SecurityProfileArgs.builder()
                        .securityType("ConfidentialVM")
                        .uefiSettings(UefiSettingsArgs.builder()
                            .secureBootEnabled(false)
                            .vTpmEnabled(true)
                            .build())
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("2022-datacenter-cvm")
                            .publisher("UbuntuServer")
                            .sku("linux-cvm")
                            .version("17763.2183.2109130127")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadOnly")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .securityProfile(VMDiskSecurityProfileArgs.builder()
                                    .securityEncryptionType("NonPersistedTPM")
                                    .build())
                                .storageAccountType("StandardSSD_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_DC2es_v5",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            securityProfile: {
                securityType: azure_native.compute.SecurityTypes.ConfidentialVM,
                uefiSettings: {
                    secureBootEnabled: false,
                    vTpmEnabled: true,
                },
            },
            storageProfile: {
                imageReference: {
                    offer: "2022-datacenter-cvm",
                    publisher: "UbuntuServer",
                    sku: "linux-cvm",
                    version: "17763.2183.2109130127",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadOnly,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        securityProfile: {
                            securityEncryptionType: azure_native.compute.SecurityEncryptionTypes.NonPersistedTPM,
                        },
                        storageAccountType: azure_native.compute.StorageAccountTypes.StandardSSD_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_DC2es_v5",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "security_profile": {
                "security_type": azure_native.compute.SecurityTypes.CONFIDENTIAL_VM,
                "uefi_settings": {
                    "secure_boot_enabled": False,
                    "v_tpm_enabled": True,
                },
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "2022-datacenter-cvm",
                    "publisher": "UbuntuServer",
                    "sku": "linux-cvm",
                    "version": "17763.2183.2109130127",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_ONLY,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "security_profile": {
                            "security_encryption_type": azure_native.compute.SecurityEncryptionTypes.NON_PERSISTED_TPM,
                        },
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_SS_D_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_DC2es_v5
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            securityProfile:
              securityType: ConfidentialVM
              uefiSettings:
                secureBootEnabled: false
                vTpmEnabled: true
            storageProfile:
              imageReference:
                offer: 2022-datacenter-cvm
                publisher: UbuntuServer
                sku: linux-cvm
                version: 17763.2183.2109130127
              osDisk:
                caching: ReadOnly
                createOption: FromImage
                managedDisk:
                  securityProfile:
                    securityEncryptionType: NonPersistedTPM
                  storageAccountType: StandardSSD_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        Name = "osDisk",
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.UpgradePolicyArgs{
    				AutomaticOSUpgradePolicy: &compute.AutomaticOSUpgradePolicyArgs{
    					EnableAutomaticOSUpgrade: pulumi.Bool(true),
    				},
    				Mode: compute.UpgradeModeAutomatic,
    			},
    			VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.AutomaticOSUpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ServiceArtifactReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_A1")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .automaticOSUpgradePolicy(AutomaticOSUpgradePolicyArgs.builder()
                        .enableAutomaticOSUpgrade(true)
                        .build())
                    .mode("Automatic")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .serviceArtifactReference(ServiceArtifactReferenceArgs.builder()
                        .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/serviceArtifacts/serviceArtifactName/vmArtifactsProfiles/vmArtifactsProfilesName")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2022-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .name("osDisk")
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "eastus2euap",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_A1",
            tier: "Standard",
        },
        upgradePolicy: {
            automaticOSUpgradePolicy: {
                enableAutomaticOSUpgrade: true,
            },
            mode: azure_native.compute.UpgradeMode.Automatic,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            serviceArtifactReference: {
                id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/serviceArtifacts/serviceArtifactName/vmArtifactsProfiles/vmArtifactsProfilesName",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2022-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    name: "osDisk",
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="eastus2euap",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_A1",
            "tier": "Standard",
        },
        upgrade_policy={
            "automatic_os_upgrade_policy": {
                "enable_automatic_os_upgrade": True,
            },
            "mode": azure_native.compute.UpgradeMode.AUTOMATIC,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "service_artifact_reference": {
                "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/serviceArtifacts/serviceArtifactName/vmArtifactsProfiles/vmArtifactsProfilesName",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2022-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "name": "osDisk",
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: eastus2euap
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_A1
            tier: Standard
          upgradePolicy:
            automaticOSUpgradePolicy:
              enableAutomaticOSUpgrade: true
            mode: Automatic
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            serviceArtifactReference:
              id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/serviceArtifacts/serviceArtifactName/vmArtifactsProfiles/vmArtifactsProfilesName
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2022-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                name: osDisk
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.SecurityTypes.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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.StandardSSD_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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{
    					SecurityType: pulumi.String(compute.SecurityTypesTrustedLaunch),
    					UefiSettings: &compute.UefiSettingsArgs{
    						SecureBootEnabled: pulumi.Bool(true),
    						VTpmEnabled:       pulumi.Bool(true),
    					},
    				},
    				StorageProfile: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadOnly,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.SecurityProfileArgs;
    import com.pulumi.azurenative.compute.inputs.UefiSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D2s_v3")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .securityProfile(SecurityProfileArgs.builder()
                        .securityType("TrustedLaunch")
                        .uefiSettings(UefiSettingsArgs.builder()
                            .secureBootEnabled(true)
                            .vTpmEnabled(true)
                            .build())
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("windowsserver-gen2preview-preview")
                            .publisher("MicrosoftWindowsServer")
                            .sku("windows10-tvm")
                            .version("18363.592.2001092016")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadOnly")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("StandardSSD_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D2s_v3",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            securityProfile: {
                securityType: azure_native.compute.SecurityTypes.TrustedLaunch,
                uefiSettings: {
                    secureBootEnabled: true,
                    vTpmEnabled: true,
                },
            },
            storageProfile: {
                imageReference: {
                    offer: "windowsserver-gen2preview-preview",
                    publisher: "MicrosoftWindowsServer",
                    sku: "windows10-tvm",
                    version: "18363.592.2001092016",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadOnly,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.StandardSSD_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D2s_v3",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "security_profile": {
                "security_type": azure_native.compute.SecurityTypes.TRUSTED_LAUNCH,
                "uefi_settings": {
                    "secure_boot_enabled": True,
                    "v_tpm_enabled": True,
                },
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "windowsserver-gen2preview-preview",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "windows10-tvm",
                    "version": "18363.592.2001092016",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_ONLY,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_SS_D_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D2s_v3
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            securityProfile:
              securityType: TrustedLaunch
              uefiSettings:
                secureBootEnabled: true
                vTpmEnabled: true
            storageProfile:
              imageReference:
                offer: windowsserver-gen2preview-preview
                publisher: MicrosoftWindowsServer
                sku: windows10-tvm
                version: 18363.592.2001092016
              osDisk:
                caching: ReadOnly
                createOption: FromImage
                managedDisk:
                  storageAccountType: StandardSSD_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Offer:     pulumi.String("windows-data-science-vm"),
    						Publisher: pulumi.String("microsoft-ads"),
    						Sku:       pulumi.String("windows2016"),
    						Version:   pulumi.String("latest"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.PlanArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(PlanArgs.builder()
                    .name("windows2016")
                    .product("windows-data-science-vm")
                    .publisher("microsoft-ads")
                    .build())
                .resourceGroupName("myResourceGroup")
                .sku(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("windows-data-science-vm")
                            .publisher("microsoft-ads")
                            .sku("windows2016")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        plan: {
            name: "windows2016",
            product: "windows-data-science-vm",
            publisher: "microsoft-ads",
        },
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "windows-data-science-vm",
                    publisher: "microsoft-ads",
                    sku: "windows2016",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        plan={
            "name": "windows2016",
            "product": "windows-data-science-vm",
            "publisher": "microsoft-ads",
        },
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "windows-data-science-vm",
                    "publisher": "microsoft-ads",
                    "sku": "windows2016",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          plan:
            name: windows2016
            product: windows-data-science-vm
            publisher: microsoft-ads
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: windows-data-science-vm
                publisher: microsoft-ads
                sku: windows2016
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .applicationGatewayBackendAddressPools(SubResourceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/{existing-application-gateway-name}/backendAddressPools/{existing-backend-address-pool-name}")
                                    .build())
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        applicationGatewayBackendAddressPools: [{
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/{existing-application-gateway-name}/backendAddressPools/{existing-backend-address-pool-name}",
                        }],
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "application_gateway_backend_address_pools": [{
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/{existing-application-gateway-name}/backendAddressPools/{existing-backend-address-pool-name}",
                        }],
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - applicationGatewayBackendAddressPools:
                        - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/{existing-application-gateway-name}/backendAddressPools/{existing-backend-address-pool-name}
                      name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.IPVersion.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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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(compute.IPVersionIPv4),
    									},
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .loadBalancerBackendAddressPools(SubResourceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/backendAddressPools/{existing-backend-address-pool-name}")
                                    .build())
                                .loadBalancerInboundNatPools(SubResourceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/inboundNatPools/{existing-nat-pool-name}")
                                    .build())
                                .name("{vmss-name}")
                                .publicIPAddressConfiguration(VirtualMachineScaleSetPublicIPAddressConfigurationArgs.builder()
                                    .name("{vmss-name}")
                                    .publicIPAddressVersion("IPv4")
                                    .build())
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        loadBalancerBackendAddressPools: [{
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/backendAddressPools/{existing-backend-address-pool-name}",
                        }],
                        loadBalancerInboundNatPools: [{
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/inboundNatPools/{existing-nat-pool-name}",
                        }],
                        name: "{vmss-name}",
                        publicIPAddressConfiguration: {
                            name: "{vmss-name}",
                            publicIPAddressVersion: azure_native.compute.IPVersion.IPv4,
                        },
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "load_balancer_backend_address_pools": [{
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/backendAddressPools/{existing-backend-address-pool-name}",
                        }],
                        "load_balancer_inbound_nat_pools": [{
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/inboundNatPools/{existing-nat-pool-name}",
                        }],
                        "name": "{vmss-name}",
                        "public_ip_address_configuration": {
                            "name": "{vmss-name}",
                            "public_ip_address_version": azure_native.compute.IPVersion.I_PV4,
                        },
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - loadBalancerBackendAddressPools:
                        - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/backendAddressPools/{existing-backend-address-pool-name}
                      loadBalancerInboundNatPools:
                        - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/inboundNatPools/{existing-nat-pool-name}
                      name: '{vmss-name}'
                      publicIPAddressConfiguration:
                        name: '{vmss-name}'
                        publicIPAddressVersion: IPv4
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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",
            ScheduledEventsPolicy = new AzureNative.Compute.Inputs.ScheduledEventsPolicyArgs
            {
                ScheduledEventsAdditionalPublishingTargets = new AzureNative.Compute.Inputs.ScheduledEventsAdditionalPublishingTargetsArgs
                {
                    EventGridAndResourceGraph = new AzureNative.Compute.Inputs.EventGridAndResourceGraphArgs
                    {
                        Enable = true,
                    },
                },
                UserInitiatedReboot = new AzureNative.Compute.Inputs.UserInitiatedRebootArgs
                {
                    AutomaticallyApprove = true,
                },
                UserInitiatedRedeploy = new AzureNative.Compute.Inputs.UserInitiatedRedeployArgs
                {
                    AutomaticallyApprove = true,
                },
            },
            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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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"),
    			ScheduledEventsPolicy: &compute.ScheduledEventsPolicyArgs{
    				ScheduledEventsAdditionalPublishingTargets: &compute.ScheduledEventsAdditionalPublishingTargetsArgs{
    					EventGridAndResourceGraph: &compute.EventGridAndResourceGraphArgs{
    						Enable: pulumi.Bool(true),
    					},
    				},
    				UserInitiatedReboot: &compute.UserInitiatedRebootArgs{
    					AutomaticallyApprove: pulumi.Bool(true),
    				},
    				UserInitiatedRedeploy: &compute.UserInitiatedRedeployArgs{
    					AutomaticallyApprove: pulumi.Bool(true),
    				},
    			},
    			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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.AutomaticRepairsPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.ScheduledEventsPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.ScheduledEventsAdditionalPublishingTargetsArgs;
    import com.pulumi.azurenative.compute.inputs.EventGridAndResourceGraphArgs;
    import com.pulumi.azurenative.compute.inputs.UserInitiatedRebootArgs;
    import com.pulumi.azurenative.compute.inputs.UserInitiatedRedeployArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(AutomaticRepairsPolicyArgs.builder()
                    .enabled(true)
                    .gracePeriod("PT10M")
                    .build())
                .location("westus")
                .overprovision(true)
                .resourceGroupName("myResourceGroup")
                .scheduledEventsPolicy(ScheduledEventsPolicyArgs.builder()
                    .scheduledEventsAdditionalPublishingTargets(ScheduledEventsAdditionalPublishingTargetsArgs.builder()
                        .eventGridAndResourceGraph(EventGridAndResourceGraphArgs.builder()
                            .enable(true)
                            .build())
                        .build())
                    .userInitiatedReboot(UserInitiatedRebootArgs.builder()
                        .automaticallyApprove(true)
                        .build())
                    .userInitiatedRedeploy(UserInitiatedRedeployArgs.builder()
                        .automaticallyApprove(true)
                        .build())
                    .build())
                .sku(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        automaticRepairsPolicy: {
            enabled: true,
            gracePeriod: "PT10M",
        },
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        scheduledEventsPolicy: {
            scheduledEventsAdditionalPublishingTargets: {
                eventGridAndResourceGraph: {
                    enable: true,
                },
            },
            userInitiatedReboot: {
                automaticallyApprove: true,
            },
            userInitiatedRedeploy: {
                automaticallyApprove: true,
            },
        },
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        automatic_repairs_policy={
            "enabled": True,
            "grace_period": "PT10M",
        },
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        scheduled_events_policy={
            "scheduled_events_additional_publishing_targets": {
                "event_grid_and_resource_graph": {
                    "enable": True,
                },
            },
            "user_initiated_reboot": {
                "automatically_approve": True,
            },
            "user_initiated_redeploy": {
                "automatically_approve": True,
            },
        },
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          automaticRepairsPolicy:
            enabled: true
            gracePeriod: PT10M
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          scheduledEventsPolicy:
            scheduledEventsAdditionalPublishingTargets:
              eventGridAndResourceGraph:
                enable: true
            userInitiatedReboot:
              automaticallyApprove: true
            userInitiatedRedeploy:
              automaticallyApprove: true
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    					BootDiagnostics: &compute.BootDiagnosticsArgs{
    						Enabled:    pulumi.Bool(true),
    						StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
    					},
    				},
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                        .bootDiagnostics(BootDiagnosticsArgs.builder()
                            .enabled(true)
                            .storageUri("http://{existing-storage-account-name}.blob.core.windows.net")
                            .build())
                        .build())
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            diagnosticsProfile: {
                bootDiagnostics: {
                    enabled: true,
                    storageUri: "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "diagnostics_profile": {
                "boot_diagnostics": {
                    "enabled": True,
                    "storage_uri": "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            diagnosticsProfile:
              bootDiagnostics:
                enabled: true
                storageUri: http://{existing-storage-account-name}.blob.core.windows.net
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.Empty,
                            DiskSizeGB = 1023,
                            Lun = 0,
                        },
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
                        {
                            CreateOption = AzureNative.Compute.DiskCreateOptionTypes.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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        DiskSizeGB = 512,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					DataDisks: compute.VirtualMachineScaleSetDataDiskArray{
    						&compute.VirtualMachineScaleSetDataDiskArgs{
    							CreateOption: pulumi.String(compute.DiskCreateOptionTypesEmpty),
    							DiskSizeGB:   pulumi.Int(1023),
    							Lun:          pulumi.Int(0),
    						},
    						&compute.VirtualMachineScaleSetDataDiskArgs{
    							CreateOption: pulumi.String(compute.DiskCreateOptionTypesEmpty),
    							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: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						DiskSizeGB:   pulumi.Int(512),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D2_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .dataDisks(                    
                            VirtualMachineScaleSetDataDiskArgs.builder()
                                .createOption("Empty")
                                .diskSizeGB(1023)
                                .lun(0)
                                .build(),
                            VirtualMachineScaleSetDataDiskArgs.builder()
                                .createOption("Empty")
                                .diskSizeGB(1023)
                                .lun(1)
                                .build())
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .diskSizeGB(512)
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D2_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                dataDisks: [
                    {
                        createOption: azure_native.compute.DiskCreateOptionTypes.Empty,
                        diskSizeGB: 1023,
                        lun: 0,
                    },
                    {
                        createOption: azure_native.compute.DiskCreateOptionTypes.Empty,
                        diskSizeGB: 1023,
                        lun: 1,
                    },
                ],
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    diskSizeGB: 512,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D2_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "data_disks": [
                    {
                        "create_option": azure_native.compute.DiskCreateOptionTypes.EMPTY,
                        "disk_size_gb": 1023,
                        "lun": 0,
                    },
                    {
                        "create_option": azure_native.compute.DiskCreateOptionTypes.EMPTY,
                        "disk_size_gb": 1023,
                        "lun": 1,
                    },
                ],
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "disk_size_gb": 512,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D2_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              dataDisks:
                - createOption: Empty
                  diskSizeGB: 1023
                  lun: 0
                - createOption: Empty
                  diskSizeGB: 1023
                  lun: 1
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                diskSizeGB: 512
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    Create a scale set with ephemeral os disk provisioning in Nvme disk 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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
                        {
                            Option = AzureNative.Compute.DiffDiskOptions.Local,
                            Placement = AzureNative.Compute.DiffDiskPlacement.NvmeDisk,
                        },
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Offer:     pulumi.String("windows-data-science-vm"),
    						Publisher: pulumi.String("microsoft-ads"),
    						Sku:       pulumi.String("windows2016"),
    						Version:   pulumi.String("latest"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadOnly,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						DiffDiskSettings: &compute.DiffDiskSettingsArgs{
    							Option:    pulumi.String(compute.DiffDiskOptionsLocal),
    							Placement: pulumi.String(compute.DiffDiskPlacementNvmeDisk),
    						},
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.PlanArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.DiffDiskSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(PlanArgs.builder()
                    .name("windows2016")
                    .product("windows-data-science-vm")
                    .publisher("microsoft-ads")
                    .build())
                .resourceGroupName("myResourceGroup")
                .sku(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_DS1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("windows-data-science-vm")
                            .publisher("microsoft-ads")
                            .sku("windows2016")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadOnly")
                            .createOption("FromImage")
                            .diffDiskSettings(DiffDiskSettingsArgs.builder()
                                .option("Local")
                                .placement("NvmeDisk")
                                .build())
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        plan: {
            name: "windows2016",
            product: "windows-data-science-vm",
            publisher: "microsoft-ads",
        },
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_DS1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "windows-data-science-vm",
                    publisher: "microsoft-ads",
                    sku: "windows2016",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadOnly,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    diffDiskSettings: {
                        option: azure_native.compute.DiffDiskOptions.Local,
                        placement: azure_native.compute.DiffDiskPlacement.NvmeDisk,
                    },
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        plan={
            "name": "windows2016",
            "product": "windows-data-science-vm",
            "publisher": "microsoft-ads",
        },
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_DS1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "windows-data-science-vm",
                    "publisher": "microsoft-ads",
                    "sku": "windows2016",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_ONLY,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "diff_disk_settings": {
                        "option": azure_native.compute.DiffDiskOptions.LOCAL,
                        "placement": azure_native.compute.DiffDiskPlacement.NVME_DISK,
                    },
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          plan:
            name: windows2016
            product: windows-data-science-vm
            publisher: microsoft-ads
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_DS1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: windows-data-science-vm
                publisher: microsoft-ads
                sku: windows2016
                version: latest
              osDisk:
                caching: ReadOnly
                createOption: FromImage
                diffDiskSettings:
                  option: Local
                  placement: NvmeDisk
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
                        {
                            Option = AzureNative.Compute.DiffDiskOptions.Local,
                            Placement = AzureNative.Compute.DiffDiskPlacement.ResourceDisk,
                        },
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Offer:     pulumi.String("windows-data-science-vm"),
    						Publisher: pulumi.String("microsoft-ads"),
    						Sku:       pulumi.String("windows2016"),
    						Version:   pulumi.String("latest"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadOnly,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						DiffDiskSettings: &compute.DiffDiskSettingsArgs{
    							Option:    pulumi.String(compute.DiffDiskOptionsLocal),
    							Placement: pulumi.String(compute.DiffDiskPlacementResourceDisk),
    						},
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.PlanArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.DiffDiskSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(PlanArgs.builder()
                    .name("windows2016")
                    .product("windows-data-science-vm")
                    .publisher("microsoft-ads")
                    .build())
                .resourceGroupName("myResourceGroup")
                .sku(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_DS1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("windows-data-science-vm")
                            .publisher("microsoft-ads")
                            .sku("windows2016")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadOnly")
                            .createOption("FromImage")
                            .diffDiskSettings(DiffDiskSettingsArgs.builder()
                                .option("Local")
                                .placement("ResourceDisk")
                                .build())
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        plan: {
            name: "windows2016",
            product: "windows-data-science-vm",
            publisher: "microsoft-ads",
        },
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_DS1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "windows-data-science-vm",
                    publisher: "microsoft-ads",
                    sku: "windows2016",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadOnly,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    diffDiskSettings: {
                        option: azure_native.compute.DiffDiskOptions.Local,
                        placement: azure_native.compute.DiffDiskPlacement.ResourceDisk,
                    },
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        plan={
            "name": "windows2016",
            "product": "windows-data-science-vm",
            "publisher": "microsoft-ads",
        },
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_DS1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "windows-data-science-vm",
                    "publisher": "microsoft-ads",
                    "sku": "windows2016",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_ONLY,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "diff_disk_settings": {
                        "option": azure_native.compute.DiffDiskOptions.LOCAL,
                        "placement": azure_native.compute.DiffDiskPlacement.RESOURCE_DISK,
                    },
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          plan:
            name: windows2016
            product: windows-data-science-vm
            publisher: microsoft-ads
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_DS1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: windows-data-science-vm
                publisher: microsoft-ads
                sku: windows2016
                version: latest
              osDisk:
                caching: ReadOnly
                createOption: FromImage
                diffDiskSettings:
                  option: Local
                  placement: ResourceDisk
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
                        {
                            Option = AzureNative.Compute.DiffDiskOptions.Local,
                        },
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Offer:     pulumi.String("windows-data-science-vm"),
    						Publisher: pulumi.String("microsoft-ads"),
    						Sku:       pulumi.String("windows2016"),
    						Version:   pulumi.String("latest"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadOnly,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						DiffDiskSettings: &compute.DiffDiskSettingsArgs{
    							Option: pulumi.String(compute.DiffDiskOptionsLocal),
    						},
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.PlanArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.DiffDiskSettingsArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(PlanArgs.builder()
                    .name("windows2016")
                    .product("windows-data-science-vm")
                    .publisher("microsoft-ads")
                    .build())
                .resourceGroupName("myResourceGroup")
                .sku(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_DS1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("windows-data-science-vm")
                            .publisher("microsoft-ads")
                            .sku("windows2016")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadOnly")
                            .createOption("FromImage")
                            .diffDiskSettings(DiffDiskSettingsArgs.builder()
                                .option("Local")
                                .build())
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        plan: {
            name: "windows2016",
            product: "windows-data-science-vm",
            publisher: "microsoft-ads",
        },
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_DS1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "windows-data-science-vm",
                    publisher: "microsoft-ads",
                    sku: "windows2016",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadOnly,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    diffDiskSettings: {
                        option: azure_native.compute.DiffDiskOptions.Local,
                    },
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        plan={
            "name": "windows2016",
            "product": "windows-data-science-vm",
            "publisher": "microsoft-ads",
        },
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_DS1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "windows-data-science-vm",
                    "publisher": "microsoft-ads",
                    "sku": "windows2016",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_ONLY,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "diff_disk_settings": {
                        "option": azure_native.compute.DiffDiskOptions.LOCAL,
                    },
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          plan:
            name: windows2016
            product: windows-data-science-vm
            publisher: microsoft-ads
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_DS1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: windows-data-science-vm
                publisher: microsoft-ads
                sku: windows2016
                version: latest
              osDisk:
                caching: ReadOnly
                createOption: FromImage
                diffDiskSettings:
                  option: Local
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    					BootDiagnostics: &compute.BootDiagnosticsArgs{
    						Enabled:    pulumi.Bool(true),
    						StorageUri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net"),
    					},
    				},
    				ExtensionProfile: &compute.VirtualMachineScaleSetExtensionProfileArgs{
    					Extensions: compute.VirtualMachineScaleSetExtensionTypeArray{
    						&compute.VirtualMachineScaleSetExtensionTypeArgs{
    							AutoUpgradeMinorVersion: pulumi.Bool(false),
    							Name:                    pulumi.String("{extension-name}"),
    							Publisher:               pulumi.String("{extension-Publisher}"),
    							Settings:                pulumi.Any(map[string]interface{}{}),
    							Type:                    pulumi.String("{extension-Type}"),
    							TypeHandlerVersion:      pulumi.String("{handler-version}"),
    						},
    					},
    					ExtensionsTimeBudget: pulumi.String("PT1H20M"),
    				},
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetExtensionProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                        .bootDiagnostics(BootDiagnosticsArgs.builder()
                            .enabled(true)
                            .storageUri("http://{existing-storage-account-name}.blob.core.windows.net")
                            .build())
                        .build())
                    .extensionProfile(VirtualMachineScaleSetExtensionProfileArgs.builder()
                        .extensions(VirtualMachineScaleSetExtensionArgs.builder()
                            .autoUpgradeMinorVersion(false)
                            .name("{extension-name}")
                            .publisher("{extension-Publisher}")
                            .settings(Map.ofEntries(
                            ))
                            .type("{extension-Type}")
                            .typeHandlerVersion("{handler-version}")
                            .build())
                        .extensionsTimeBudget("PT1H20M")
                        .build())
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            diagnosticsProfile: {
                bootDiagnostics: {
                    enabled: true,
                    storageUri: "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            extensionProfile: {
                extensions: [{
                    autoUpgradeMinorVersion: false,
                    name: "{extension-name}",
                    publisher: "{extension-Publisher}",
                    settings: {},
                    type: "{extension-Type}",
                    typeHandlerVersion: "{handler-version}",
                }],
                extensionsTimeBudget: "PT1H20M",
            },
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "diagnostics_profile": {
                "boot_diagnostics": {
                    "enabled": True,
                    "storage_uri": "http://{existing-storage-account-name}.blob.core.windows.net",
                },
            },
            "extension_profile": {
                "extensions": [{
                    "auto_upgrade_minor_version": False,
                    "name": "{extension-name}",
                    "publisher": "{extension-Publisher}",
                    "settings": {},
                    "type": "{extension-Type}",
                    "type_handler_version": "{handler-version}",
                }],
                "extensions_time_budget": "PT1H20M",
            },
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            diagnosticsProfile:
              bootDiagnostics:
                enabled: true
                storageUri: http://{existing-storage-account-name}.blob.core.windows.net
            extensionProfile:
              extensions:
                - autoUpgradeMinorVersion: false
                  name: '{extension-name}'
                  publisher: '{extension-Publisher}'
                  settings: {}
                  type: '{extension-Type}'
                  typeHandlerVersion: '{handler-version}'
              extensionsTimeBudget: PT1H20M
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    					BootDiagnostics: &compute.BootDiagnosticsArgs{
    						Enabled: pulumi.Bool(true),
    					},
    				},
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.DiagnosticsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BootDiagnosticsArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                        .bootDiagnostics(BootDiagnosticsArgs.builder()
                            .enabled(true)
                            .build())
                        .build())
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            diagnosticsProfile: {
                bootDiagnostics: {
                    enabled: true,
                },
            },
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "diagnostics_profile": {
                "boot_diagnostics": {
                    "enabled": True,
                },
            },
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            diagnosticsProfile:
              bootDiagnostics:
                enabled: true
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Premium_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Premium_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Premium_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.PREMIUM_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Premium_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.OrchestrationMode.Flexible,
            PlatformFaultDomainCount = 1,
            PriorityMixPolicy = new AzureNative.Compute.Inputs.PriorityMixPolicyArgs
            {
                BaseRegularPriorityCount = 10,
                RegularPriorityPercentageAboveBase = 50,
            },
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 2,
                Name = "Standard_A8m_v2",
                Tier = "Standard",
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkApiVersion = AzureNative.Compute.NetworkApiVersion.NetworkApiVersion_2020_11_01,
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableAcceleratedNetworking = false,
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    ApplicationGatewayBackendAddressPools = new() { },
                                    LoadBalancerBackendAddressPools = new() { },
                                    Name = "{vmss-name}",
                                    Primary = true,
                                    PublicIPAddressConfiguration = new AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfigurationArgs
                                    {
                                        IdleTimeoutInMinutes = 15,
                                        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}",
                },
                Priority = AzureNative.Compute.VirtualMachinePriorityTypes.Spot,
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "0001-com-ubuntu-server-focal",
                        Publisher = "Canonical",
                        Sku = "20_04-lts-gen2",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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(compute.OrchestrationModeFlexible),
    			PlatformFaultDomainCount: pulumi.Int(1),
    			PriorityMixPolicy: &compute.PriorityMixPolicyArgs{
    				BaseRegularPriorityCount:           pulumi.Int(10),
    				RegularPriorityPercentageAboveBase: pulumi.Int(50),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(2),
    				Name:     pulumi.String("Standard_A8m_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkApiVersion: pulumi.String(compute.NetworkApiVersion_2020_11_01),
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableAcceleratedNetworking: pulumi.Bool(false),
    							EnableIPForwarding:          pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									ApplicationGatewayBackendAddressPools: compute.SubResourceArray{},
    									LoadBalancerBackendAddressPools:       compute.SubResourceArray{},
    									Name:                                  pulumi.String("{vmss-name}"),
    									Primary:                               pulumi.Bool(true),
    									PublicIPAddressConfiguration: &compute.VirtualMachineScaleSetPublicIPAddressConfigurationArgs{
    										IdleTimeoutInMinutes: pulumi.Int(15),
    										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{
    					AdminUsername:      pulumi.String("{your-username}"),
    					ComputerNamePrefix: pulumi.String("{vmss-name}"),
    				},
    				Priority: pulumi.String(compute.VirtualMachinePriorityTypesSpot),
    				StorageProfile: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					ImageReference: &compute.ImageReferenceArgs{
    						Offer:     pulumi.String("0001-com-ubuntu-server-focal"),
    						Publisher: pulumi.String("Canonical"),
    						Sku:       pulumi.String("20_04-lts-gen2"),
    						Version:   pulumi.String("latest"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.PriorityMixPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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")
                .platformFaultDomainCount(1)
                .priorityMixPolicy(PriorityMixPolicyArgs.builder()
                    .baseRegularPriorityCount(10)
                    .regularPriorityPercentageAboveBase(50)
                    .build())
                .resourceGroupName("myResourceGroup")
                .sku(SkuArgs.builder()
                    .capacity(2.0)
                    .name("Standard_A8m_v2")
                    .tier("Standard")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkApiVersion("2020-11-01")
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableAcceleratedNetworking(false)
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .applicationGatewayBackendAddressPools()
                                .loadBalancerBackendAddressPools()
                                .name("{vmss-name}")
                                .primary(true)
                                .publicIPAddressConfiguration(VirtualMachineScaleSetPublicIPAddressConfigurationArgs.builder()
                                    .idleTimeoutInMinutes(15)
                                    .name("{vmss-name}")
                                    .build())
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .priority("Spot")
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("0001-com-ubuntu-server-focal")
                            .publisher("Canonical")
                            .sku("20_04-lts-gen2")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        orchestrationMode: azure_native.compute.OrchestrationMode.Flexible,
        platformFaultDomainCount: 1,
        priorityMixPolicy: {
            baseRegularPriorityCount: 10,
            regularPriorityPercentageAboveBase: 50,
        },
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 2,
            name: "Standard_A8m_v2",
            tier: "Standard",
        },
        virtualMachineProfile: {
            networkProfile: {
                networkApiVersion: azure_native.compute.NetworkApiVersion.NetworkApiVersion_2020_11_01,
                networkInterfaceConfigurations: [{
                    enableAcceleratedNetworking: false,
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        applicationGatewayBackendAddressPools: [],
                        loadBalancerBackendAddressPools: [],
                        name: "{vmss-name}",
                        primary: true,
                        publicIPAddressConfiguration: {
                            idleTimeoutInMinutes: 15,
                            name: "{vmss-name}",
                        },
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            priority: azure_native.compute.VirtualMachinePriorityTypes.Spot,
            storageProfile: {
                imageReference: {
                    offer: "0001-com-ubuntu-server-focal",
                    publisher: "Canonical",
                    sku: "20_04-lts-gen2",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        orchestration_mode=azure_native.compute.OrchestrationMode.FLEXIBLE,
        platform_fault_domain_count=1,
        priority_mix_policy={
            "base_regular_priority_count": 10,
            "regular_priority_percentage_above_base": 50,
        },
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 2,
            "name": "Standard_A8m_v2",
            "tier": "Standard",
        },
        virtual_machine_profile={
            "network_profile": {
                "network_api_version": azure_native.compute.NetworkApiVersion.NETWORK_API_VERSION_2020_11_01,
                "network_interface_configurations": [{
                    "enable_accelerated_networking": False,
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "application_gateway_backend_address_pools": [],
                        "load_balancer_backend_address_pools": [],
                        "name": "{vmss-name}",
                        "primary": True,
                        "public_ip_address_configuration": {
                            "idle_timeout_in_minutes": 15,
                            "name": "{vmss-name}",
                        },
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "priority": azure_native.compute.VirtualMachinePriorityTypes.SPOT,
            "storage_profile": {
                "image_reference": {
                    "offer": "0001-com-ubuntu-server-focal",
                    "publisher": "Canonical",
                    "sku": "20_04-lts-gen2",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          orchestrationMode: Flexible
          platformFaultDomainCount: 1
          priorityMixPolicy:
            baseRegularPriorityCount: 10
            regularPriorityPercentageAboveBase: 50
          resourceGroupName: myResourceGroup
          sku:
            capacity: 2
            name: Standard_A8m_v2
            tier: Standard
          virtualMachineProfile:
            networkProfile:
              networkApiVersion: 2020-11-01
              networkInterfaceConfigurations:
                - enableAcceleratedNetworking: false
                  enableIPForwarding: true
                  ipConfigurations:
                    - applicationGatewayBackendAddressPools: []
                      loadBalancerBackendAddressPools: []
                      name: '{vmss-name}'
                      primary: true
                      publicIPAddressConfiguration:
                        idleTimeoutInMinutes: 15
                        name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            priority: Spot
            storageProfile:
              imageReference:
                offer: 0001-com-ubuntu-server-focal
                publisher: Canonical
                sku: 20_04-lts-gen2
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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,
                PrioritizeUnhealthyVMs = true,
                Rules = new[]
                {
                    AzureNative.Compute.VirtualMachineScaleSetScaleInRules.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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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),
    				PrioritizeUnhealthyVMs: pulumi.Bool(true),
    				Rules: pulumi.StringArray{
    					pulumi.String(compute.VirtualMachineScaleSetScaleInRulesOldestVM),
    				},
    			},
    			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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.ScaleInPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(ScaleInPolicyArgs.builder()
                    .forceDeletion(true)
                    .prioritizeUnhealthyVMs(true)
                    .rules("OldestVM")
                    .build())
                .sku(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        scaleInPolicy: {
            forceDeletion: true,
            prioritizeUnhealthyVMs: true,
            rules: [azure_native.compute.VirtualMachineScaleSetScaleInRules.OldestVM],
        },
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        scale_in_policy={
            "force_deletion": True,
            "prioritize_unhealthy_vms": True,
            "rules": [azure_native.compute.VirtualMachineScaleSetScaleInRules.OLDEST_VM],
        },
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          scaleInPolicy:
            forceDeletion: true
            prioritizeUnhealthyVMs: true
            rules:
              - OldestVM
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    Create a scale set with sku 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",
            OrchestrationMode = AzureNative.Compute.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 = "Mix",
            },
            SkuProfile = new AzureNative.Compute.Inputs.SkuProfileArgs
            {
                AllocationStrategy = AzureNative.Compute.AllocationStrategy.CapacityOptimized,
                VmSizes = new[]
                {
                    new AzureNative.Compute.Inputs.SkuProfileVMSizeArgs
                    {
                        Name = "Standard_D8s_v5",
                    },
                    new AzureNative.Compute.Inputs.SkuProfileVMSizeArgs
                    {
                        Name = "Standard_E16s_v5",
                    },
                    new AzureNative.Compute.Inputs.SkuProfileVMSizeArgs
                    {
                        Name = "Standard_D2s_v5",
                    },
                },
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                BillingProfile = new AzureNative.Compute.Inputs.BillingProfileArgs
                {
                    MaxPrice = -1,
                },
                EvictionPolicy = AzureNative.Compute.VirtualMachineEvictionPolicyTypes.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 = AzureNative.Compute.VirtualMachinePriorityTypes.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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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(compute.OrchestrationModeFlexible),
    			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("Mix"),
    			},
    			SkuProfile: &compute.SkuProfileArgs{
    				AllocationStrategy: pulumi.String(compute.AllocationStrategyCapacityOptimized),
    				VmSizes: compute.SkuProfileVMSizeArray{
    					&compute.SkuProfileVMSizeArgs{
    						Name: pulumi.String("Standard_D8s_v5"),
    					},
    					&compute.SkuProfileVMSizeArgs{
    						Name: pulumi.String("Standard_E16s_v5"),
    					},
    					&compute.SkuProfileVMSizeArgs{
    						Name: pulumi.String("Standard_D2s_v5"),
    					},
    				},
    			},
    			VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfileArgs{
    				BillingProfile: &compute.BillingProfileArgs{
    					MaxPrice: pulumi.Float64(-1),
    				},
    				EvictionPolicy: pulumi.String(compute.VirtualMachineEvictionPolicyTypesDeallocate),
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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(compute.VirtualMachinePriorityTypesSpot),
    				StorageProfile: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.PriorityMixPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.SkuProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BillingProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(PriorityMixPolicyArgs.builder()
                    .baseRegularPriorityCount(4)
                    .regularPriorityPercentageAboveBase(50)
                    .build())
                .resourceGroupName("myResourceGroup")
                .singlePlacementGroup(false)
                .sku(SkuArgs.builder()
                    .capacity(10.0)
                    .name("Mix")
                    .build())
                .skuProfile(SkuProfileArgs.builder()
                    .allocationStrategy("CapacityOptimized")
                    .vmSizes(                
                        SkuProfileVMSizeArgs.builder()
                            .name("Standard_D8s_v5")
                            .build(),
                        SkuProfileVMSizeArgs.builder()
                            .name("Standard_E16s_v5")
                            .build(),
                        SkuProfileVMSizeArgs.builder()
                            .name("Standard_D2s_v5")
                            .build())
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .billingProfile(BillingProfileArgs.builder()
                        .maxPrice(-1.0)
                        .build())
                    .evictionPolicy("Deallocate")
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .priority("Spot")
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        orchestrationMode: azure_native.compute.OrchestrationMode.Flexible,
        priorityMixPolicy: {
            baseRegularPriorityCount: 4,
            regularPriorityPercentageAboveBase: 50,
        },
        resourceGroupName: "myResourceGroup",
        singlePlacementGroup: false,
        sku: {
            capacity: 10,
            name: "Mix",
        },
        skuProfile: {
            allocationStrategy: azure_native.compute.AllocationStrategy.CapacityOptimized,
            vmSizes: [
                {
                    name: "Standard_D8s_v5",
                },
                {
                    name: "Standard_E16s_v5",
                },
                {
                    name: "Standard_D2s_v5",
                },
            ],
        },
        virtualMachineProfile: {
            billingProfile: {
                maxPrice: -1,
            },
            evictionPolicy: azure_native.compute.VirtualMachineEvictionPolicyTypes.Deallocate,
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            priority: azure_native.compute.VirtualMachinePriorityTypes.Spot,
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        orchestration_mode=azure_native.compute.OrchestrationMode.FLEXIBLE,
        priority_mix_policy={
            "base_regular_priority_count": 4,
            "regular_priority_percentage_above_base": 50,
        },
        resource_group_name="myResourceGroup",
        single_placement_group=False,
        sku={
            "capacity": 10,
            "name": "Mix",
        },
        sku_profile={
            "allocation_strategy": azure_native.compute.AllocationStrategy.CAPACITY_OPTIMIZED,
            "vm_sizes": [
                {
                    "name": "Standard_D8s_v5",
                },
                {
                    "name": "Standard_E16s_v5",
                },
                {
                    "name": "Standard_D2s_v5",
                },
            ],
        },
        virtual_machine_profile={
            "billing_profile": {
                "max_price": -1,
            },
            "eviction_policy": azure_native.compute.VirtualMachineEvictionPolicyTypes.DEALLOCATE,
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "priority": azure_native.compute.VirtualMachinePriorityTypes.SPOT,
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          orchestrationMode: Flexible
          priorityMixPolicy:
            baseRegularPriorityCount: 4
            regularPriorityPercentageAboveBase: 50
          resourceGroupName: myResourceGroup
          singlePlacementGroup: false
          sku:
            capacity: 10
            name: Mix
          skuProfile:
            allocationStrategy: CapacityOptimized
            vmSizes:
              - name: Standard_D8s_v5
              - name: Standard_E16s_v5
              - name: Standard_D2s_v5
          virtualMachineProfile:
            billingProfile:
              maxPrice: -1
            evictionPolicy: Deallocate
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            priority: Spot
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    Create a scale set with sku profile and prioritized allocation strategy

    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 = AzureNative.Compute.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 = "Mix",
            },
            SkuProfile = new AzureNative.Compute.Inputs.SkuProfileArgs
            {
                AllocationStrategy = AzureNative.Compute.AllocationStrategy.Prioritized,
                VmSizes = new[]
                {
                    new AzureNative.Compute.Inputs.SkuProfileVMSizeArgs
                    {
                        Name = "Standard_D8s_v5",
                        Rank = 0,
                    },
                    new AzureNative.Compute.Inputs.SkuProfileVMSizeArgs
                    {
                        Name = "Standard_E16s_v5",
                        Rank = 1,
                    },
                    new AzureNative.Compute.Inputs.SkuProfileVMSizeArgs
                    {
                        Name = "Standard_D2s_v5",
                        Rank = 2,
                    },
                },
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                BillingProfile = new AzureNative.Compute.Inputs.BillingProfileArgs
                {
                    MaxPrice = -1,
                },
                EvictionPolicy = AzureNative.Compute.VirtualMachineEvictionPolicyTypes.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 = AzureNative.Compute.VirtualMachinePriorityTypes.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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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(compute.OrchestrationModeFlexible),
    			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("Mix"),
    			},
    			SkuProfile: &compute.SkuProfileArgs{
    				AllocationStrategy: pulumi.String(compute.AllocationStrategyPrioritized),
    				VmSizes: compute.SkuProfileVMSizeArray{
    					&compute.SkuProfileVMSizeArgs{
    						Name: pulumi.String("Standard_D8s_v5"),
    						Rank: pulumi.Int(0),
    					},
    					&compute.SkuProfileVMSizeArgs{
    						Name: pulumi.String("Standard_E16s_v5"),
    						Rank: pulumi.Int(1),
    					},
    					&compute.SkuProfileVMSizeArgs{
    						Name: pulumi.String("Standard_D2s_v5"),
    						Rank: pulumi.Int(2),
    					},
    				},
    			},
    			VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfileArgs{
    				BillingProfile: &compute.BillingProfileArgs{
    					MaxPrice: pulumi.Float64(-1),
    				},
    				EvictionPolicy: pulumi.String(compute.VirtualMachineEvictionPolicyTypesDeallocate),
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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(compute.VirtualMachinePriorityTypesSpot),
    				StorageProfile: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.PriorityMixPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.SkuProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BillingProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(PriorityMixPolicyArgs.builder()
                    .baseRegularPriorityCount(4)
                    .regularPriorityPercentageAboveBase(50)
                    .build())
                .resourceGroupName("myResourceGroup")
                .singlePlacementGroup(false)
                .sku(SkuArgs.builder()
                    .capacity(10.0)
                    .name("Mix")
                    .build())
                .skuProfile(SkuProfileArgs.builder()
                    .allocationStrategy("Prioritized")
                    .vmSizes(                
                        SkuProfileVMSizeArgs.builder()
                            .name("Standard_D8s_v5")
                            .rank(0)
                            .build(),
                        SkuProfileVMSizeArgs.builder()
                            .name("Standard_E16s_v5")
                            .rank(1)
                            .build(),
                        SkuProfileVMSizeArgs.builder()
                            .name("Standard_D2s_v5")
                            .rank(2)
                            .build())
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .billingProfile(BillingProfileArgs.builder()
                        .maxPrice(-1.0)
                        .build())
                    .evictionPolicy("Deallocate")
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .priority("Spot")
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        orchestrationMode: azure_native.compute.OrchestrationMode.Flexible,
        priorityMixPolicy: {
            baseRegularPriorityCount: 4,
            regularPriorityPercentageAboveBase: 50,
        },
        resourceGroupName: "myResourceGroup",
        singlePlacementGroup: false,
        sku: {
            capacity: 10,
            name: "Mix",
        },
        skuProfile: {
            allocationStrategy: azure_native.compute.AllocationStrategy.Prioritized,
            vmSizes: [
                {
                    name: "Standard_D8s_v5",
                    rank: 0,
                },
                {
                    name: "Standard_E16s_v5",
                    rank: 1,
                },
                {
                    name: "Standard_D2s_v5",
                    rank: 2,
                },
            ],
        },
        virtualMachineProfile: {
            billingProfile: {
                maxPrice: -1,
            },
            evictionPolicy: azure_native.compute.VirtualMachineEvictionPolicyTypes.Deallocate,
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            priority: azure_native.compute.VirtualMachinePriorityTypes.Spot,
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        orchestration_mode=azure_native.compute.OrchestrationMode.FLEXIBLE,
        priority_mix_policy={
            "base_regular_priority_count": 4,
            "regular_priority_percentage_above_base": 50,
        },
        resource_group_name="myResourceGroup",
        single_placement_group=False,
        sku={
            "capacity": 10,
            "name": "Mix",
        },
        sku_profile={
            "allocation_strategy": azure_native.compute.AllocationStrategy.PRIORITIZED,
            "vm_sizes": [
                {
                    "name": "Standard_D8s_v5",
                    "rank": 0,
                },
                {
                    "name": "Standard_E16s_v5",
                    "rank": 1,
                },
                {
                    "name": "Standard_D2s_v5",
                    "rank": 2,
                },
            ],
        },
        virtual_machine_profile={
            "billing_profile": {
                "max_price": -1,
            },
            "eviction_policy": azure_native.compute.VirtualMachineEvictionPolicyTypes.DEALLOCATE,
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "priority": azure_native.compute.VirtualMachinePriorityTypes.SPOT,
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          orchestrationMode: Flexible
          priorityMixPolicy:
            baseRegularPriorityCount: 4
            regularPriorityPercentageAboveBase: 50
          resourceGroupName: myResourceGroup
          singlePlacementGroup: false
          sku:
            capacity: 10
            name: Mix
          skuProfile:
            allocationStrategy: Prioritized
            vmSizes:
              - name: Standard_D8s_v5
                rank: 0
              - name: Standard_E16s_v5
                rank: 1
              - name: Standard_D2s_v5
                rank: 2
          virtualMachineProfile:
            billingProfile:
              maxPrice: -1
            evictionPolicy: Deallocate
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            priority: Spot
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.VirtualMachineEvictionPolicyTypes.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 = AzureNative.Compute.VirtualMachinePriorityTypes.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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				BillingProfile: &compute.BillingProfileArgs{
    					MaxPrice: pulumi.Float64(-1),
    				},
    				EvictionPolicy: pulumi.String(compute.VirtualMachineEvictionPolicyTypesDeallocate),
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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(compute.VirtualMachinePriorityTypesSpot),
    				StorageProfile: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.SpotRestorePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.BillingProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(2.0)
                    .name("Standard_A8m_v2")
                    .tier("Standard")
                    .build())
                .spotRestorePolicy(SpotRestorePolicyArgs.builder()
                    .enabled(true)
                    .restoreTimeout("PT1H")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .billingProfile(BillingProfileArgs.builder()
                        .maxPrice(-1.0)
                        .build())
                    .evictionPolicy("Deallocate")
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .priority("Spot")
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 2,
            name: "Standard_A8m_v2",
            tier: "Standard",
        },
        spotRestorePolicy: {
            enabled: true,
            restoreTimeout: "PT1H",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            billingProfile: {
                maxPrice: -1,
            },
            evictionPolicy: azure_native.compute.VirtualMachineEvictionPolicyTypes.Deallocate,
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            priority: azure_native.compute.VirtualMachinePriorityTypes.Spot,
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 2,
            "name": "Standard_A8m_v2",
            "tier": "Standard",
        },
        spot_restore_policy={
            "enabled": True,
            "restore_timeout": "PT1H",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "billing_profile": {
                "max_price": -1,
            },
            "eviction_policy": azure_native.compute.VirtualMachineEvictionPolicyTypes.DEALLOCATE,
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "priority": azure_native.compute.VirtualMachinePriorityTypes.SPOT,
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 2
            name: Standard_A8m_v2
            tier: Standard
          spotRestorePolicy:
            enabled: true
            restoreTimeout: PT1H
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            billingProfile:
              maxPrice: -1
            evictionPolicy: Deallocate
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            priority: Spot
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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{
    					AdminUsername:      pulumi.String("{your-username}"),
    					ComputerNamePrefix: pulumi.String("{vmss-name}"),
    					LinuxConfiguration: &compute.LinuxConfigurationArgs{
    						DisablePasswordAuthentication: pulumi.Bool(true),
    						Ssh: &compute.SshConfigurationArgs{
    							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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.LinuxConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.SshConfigurationArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .linuxConfiguration(LinuxConfigurationArgs.builder()
                            .disablePasswordAuthentication(true)
                            .ssh(SshConfigurationArgs.builder()
                                .publicKeys(SshPublicKeyArgs.builder()
                                    .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")
                                    .build())
                                .build())
                            .build())
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
                linuxConfiguration: {
                    disablePasswordAuthentication: true,
                    ssh: {
                        publicKeys: [{
                            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: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
                "linux_configuration": {
                    "disable_password_authentication": True,
                    "ssh": {
                        "public_keys": [{
                            "key_data": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1",
                            "path": "/home/{your-username}/.ssh/authorized_keys",
                        }],
                    },
                },
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
              linuxConfiguration:
                disablePasswordAuthentication: true
                ssh:
                  publicKeys:
                    - 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:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.ScheduledEventsProfileArgs{
    					TerminateNotificationProfile: &compute.TerminateNotificationProfileArgs{
    						Enable:           pulumi.Bool(true),
    						NotBeforeTimeout: pulumi.String("PT5M"),
    					},
    				},
    				StorageProfile: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ScheduledEventsProfileArgs;
    import com.pulumi.azurenative.compute.inputs.TerminateNotificationProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .scheduledEventsProfile(ScheduledEventsProfileArgs.builder()
                        .terminateNotificationProfile(TerminateNotificationProfileArgs.builder()
                            .enable(true)
                            .notBeforeTimeout("PT5M")
                            .build())
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            scheduledEventsProfile: {
                terminateNotificationProfile: {
                    enable: true,
                    notBeforeTimeout: "PT5M",
                },
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "scheduled_events_profile": {
                "terminate_notification_profile": {
                    "enable": True,
                    "not_before_timeout": "PT5M",
                },
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            scheduledEventsProfile:
              terminateNotificationProfile:
                enable: true
                notBeforeTimeout: PT5M
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
                UserData = "RXhhbXBsZSBVc2VyRGF0YQ==",
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .userData("RXhhbXBsZSBVc2VyRGF0YQ==")
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
            userData: "RXhhbXBsZSBVc2VyRGF0YQ==",
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
            "user_data": "RXhhbXBsZSBVc2VyRGF0YQ==",
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
            userData: RXhhbXBsZSBVc2VyRGF0YQ==
          vmScaleSetName: '{vmss-name}'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.Empty,
                            DiskSizeGB = 1023,
                            Lun = 0,
                        },
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
                        {
                            CreateOption = AzureNative.Compute.DiskCreateOptionTypes.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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        DiskSizeGB = 512,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
            Zones = new[]
            {
                "1",
                "3",
            },
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					DataDisks: compute.VirtualMachineScaleSetDataDiskArray{
    						&compute.VirtualMachineScaleSetDataDiskArgs{
    							CreateOption: pulumi.String(compute.DiskCreateOptionTypesEmpty),
    							DiskSizeGB:   pulumi.Int(1023),
    							Lun:          pulumi.Int(0),
    						},
    						&compute.VirtualMachineScaleSetDataDiskArgs{
    							CreateOption: pulumi.String(compute.DiskCreateOptionTypesEmpty),
    							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: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String(compute.DiskCreateOptionTypesFromImage),
    						DiskSizeGB:   pulumi.Int(512),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(2.0)
                    .name("Standard_A1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Automatic")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .dataDisks(                    
                            VirtualMachineScaleSetDataDiskArgs.builder()
                                .createOption("Empty")
                                .diskSizeGB(1023)
                                .lun(0)
                                .build(),
                            VirtualMachineScaleSetDataDiskArgs.builder()
                                .createOption("Empty")
                                .diskSizeGB(1023)
                                .lun(1)
                                .build())
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .diskSizeGB(512)
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .zones(            
                    "1",
                    "3")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "centralus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 2,
            name: "Standard_A1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Automatic,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                dataDisks: [
                    {
                        createOption: azure_native.compute.DiskCreateOptionTypes.Empty,
                        diskSizeGB: 1023,
                        lun: 0,
                    },
                    {
                        createOption: azure_native.compute.DiskCreateOptionTypes.Empty,
                        diskSizeGB: 1023,
                        lun: 1,
                    },
                ],
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    diskSizeGB: 512,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
        zones: [
            "1",
            "3",
        ],
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="centralus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 2,
            "name": "Standard_A1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.AUTOMATIC,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "data_disks": [
                    {
                        "create_option": azure_native.compute.DiskCreateOptionTypes.EMPTY,
                        "disk_size_gb": 1023,
                        "lun": 0,
                    },
                    {
                        "create_option": azure_native.compute.DiskCreateOptionTypes.EMPTY,
                        "disk_size_gb": 1023,
                        "lun": 1,
                    },
                ],
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "disk_size_gb": 512,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}",
        zones=[
            "1",
            "3",
        ])
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: centralus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 2
            name: Standard_A1_v2
            tier: Standard
          upgradePolicy:
            mode: Automatic
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              dataDisks:
                - createOption: Empty
                  diskSizeGB: 1023
                  lun: 0
                - createOption: Empty
                  diskSizeGB: 1023
                  lun: 1
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                diskSizeGB: 512
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
          zones:
            - '1'
            - '3'
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
                UserData = "RXhhbXBsZSBVc2VyRGF0YQ==",
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				HardwareProfile: &compute.VirtualMachineScaleSetHardwareProfileArgs{
    					VmSizeProperties: &compute.VMSizePropertiesArgs{
    						VCPUsAvailable: pulumi.Int(1),
    						VCPUsPerCore:   pulumi.Int(1),
    					},
    				},
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetHardwareProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VMSizePropertiesArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .hardwareProfile(VirtualMachineScaleSetHardwareProfileArgs.builder()
                        .vmSizeProperties(VMSizePropertiesArgs.builder()
                            .vCPUsAvailable(1)
                            .vCPUsPerCore(1)
                            .build())
                        .build())
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .userData("RXhhbXBsZSBVc2VyRGF0YQ==")
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            hardwareProfile: {
                vmSizeProperties: {
                    vCPUsAvailable: 1,
                    vCPUsPerCore: 1,
                },
            },
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
            userData: "RXhhbXBsZSBVc2VyRGF0YQ==",
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "hardware_profile": {
                "vm_size_properties": {
                    "v_cpus_available": 1,
                    "v_cpus_per_core": 1,
                },
            },
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
            "user_data": "RXhhbXBsZSBVc2VyRGF0YQ==",
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            hardwareProfile:
              vmSizeProperties:
                vCPUsAvailable: 1
                vCPUsPerCore: 1
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
            userData: RXhhbXBsZSBVc2VyRGF0YQ==
          vmScaleSetName: '{vmss-name}'
    

    Create a scale set with zonalPlatformFaultDomainAlignMode as Aligned

    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",
            ScheduledEventsPolicy = new AzureNative.Compute.Inputs.ScheduledEventsPolicyArgs
            {
                ScheduledEventsAdditionalPublishingTargets = new AzureNative.Compute.Inputs.ScheduledEventsAdditionalPublishingTargetsArgs
                {
                    EventGridAndResourceGraph = new AzureNative.Compute.Inputs.EventGridAndResourceGraphArgs
                    {
                        Enable = true,
                    },
                },
                UserInitiatedReboot = new AzureNative.Compute.Inputs.UserInitiatedRebootArgs
                {
                    AutomaticallyApprove = true,
                },
                UserInitiatedRedeploy = new AzureNative.Compute.Inputs.UserInitiatedRedeployArgs
                {
                    AutomaticallyApprove = true,
                },
            },
            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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
            ZonalPlatformFaultDomainAlignMode = AzureNative.Compute.ZonalPlatformFaultDomainAlignMode.Aligned,
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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"),
    			ScheduledEventsPolicy: &compute.ScheduledEventsPolicyArgs{
    				ScheduledEventsAdditionalPublishingTargets: &compute.ScheduledEventsAdditionalPublishingTargetsArgs{
    					EventGridAndResourceGraph: &compute.EventGridAndResourceGraphArgs{
    						Enable: pulumi.Bool(true),
    					},
    				},
    				UserInitiatedReboot: &compute.UserInitiatedRebootArgs{
    					AutomaticallyApprove: pulumi.Bool(true),
    				},
    				UserInitiatedRedeploy: &compute.UserInitiatedRedeployArgs{
    					AutomaticallyApprove: pulumi.Bool(true),
    				},
    			},
    			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.VirtualMachineScaleSetVMProfileArgs{
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_Standard_LRS),
    						},
    					},
    				},
    			},
    			VmScaleSetName:                    pulumi.String("{vmss-name}"),
    			ZonalPlatformFaultDomainAlignMode: pulumi.String(compute.ZonalPlatformFaultDomainAlignModeAligned),
    		})
    		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 com.pulumi.azurenative.compute.inputs.ScheduledEventsPolicyArgs;
    import com.pulumi.azurenative.compute.inputs.ScheduledEventsAdditionalPublishingTargetsArgs;
    import com.pulumi.azurenative.compute.inputs.EventGridAndResourceGraphArgs;
    import com.pulumi.azurenative.compute.inputs.UserInitiatedRebootArgs;
    import com.pulumi.azurenative.compute.inputs.UserInitiatedRedeployArgs;
    import com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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")
                .scheduledEventsPolicy(ScheduledEventsPolicyArgs.builder()
                    .scheduledEventsAdditionalPublishingTargets(ScheduledEventsAdditionalPublishingTargetsArgs.builder()
                        .eventGridAndResourceGraph(EventGridAndResourceGraphArgs.builder()
                            .enable(true)
                            .build())
                        .build())
                    .userInitiatedReboot(UserInitiatedRebootArgs.builder()
                        .automaticallyApprove(true)
                        .build())
                    .userInitiatedRedeploy(UserInitiatedRedeployArgs.builder()
                        .automaticallyApprove(true)
                        .build())
                    .build())
                .sku(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_D1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .zonalPlatformFaultDomainAlignMode("Aligned")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        scheduledEventsPolicy: {
            scheduledEventsAdditionalPublishingTargets: {
                eventGridAndResourceGraph: {
                    enable: true,
                },
            },
            userInitiatedReboot: {
                automaticallyApprove: true,
            },
            userInitiatedRedeploy: {
                automaticallyApprove: true,
            },
        },
        sku: {
            capacity: 3,
            name: "Standard_D1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
        zonalPlatformFaultDomainAlignMode: azure_native.compute.ZonalPlatformFaultDomainAlignMode.Aligned,
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        scheduled_events_policy={
            "scheduled_events_additional_publishing_targets": {
                "event_grid_and_resource_graph": {
                    "enable": True,
                },
            },
            "user_initiated_reboot": {
                "automatically_approve": True,
            },
            "user_initiated_redeploy": {
                "automatically_approve": True,
            },
        },
        sku={
            "capacity": 3,
            "name": "Standard_D1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}",
        zonal_platform_fault_domain_align_mode=azure_native.compute.ZonalPlatformFaultDomainAlignMode.ALIGNED)
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          scheduledEventsPolicy:
            scheduledEventsAdditionalPublishingTargets:
              eventGridAndResourceGraph:
                enable: true
            userInitiatedReboot:
              automaticallyApprove: true
            userInitiatedRedeploy:
              automaticallyApprove: true
          sku:
            capacity: 3
            name: Standard_D1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
          zonalPlatformFaultDomainAlignMode: Aligned
    

    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 = AzureNative.Compute.DiskCreateOptionTypes.FromImage,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = AzureNative.Compute.StorageAccountTypes.Standard_LRS,
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v3"
    	"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.VirtualMachineScaleSetVMProfileArgs{
    				CapacityReservation: &compute.CapacityReservationProfileArgs{
    					CapacityReservationGroup: &compute.SubResourceArgs{
    						Id: pulumi.String("subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}"),
    					},
    				},
    				NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    					NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    						&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    							EnableIPForwarding: pulumi.Bool(true),
    							IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    								&compute.VirtualMachineScaleSetIPConfigurationArgs{
    									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: &compute.VirtualMachineScaleSetStorageProfileArgs{
    					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(compute.DiskCreateOptionTypesFromImage),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String(compute.StorageAccountTypes_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 com.pulumi.azurenative.compute.inputs.SkuArgs;
    import com.pulumi.azurenative.compute.inputs.UpgradePolicyArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetVMProfileArgs;
    import com.pulumi.azurenative.compute.inputs.CapacityReservationProfileArgs;
    import com.pulumi.azurenative.compute.inputs.SubResourceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetNetworkProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSProfileArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetStorageProfileArgs;
    import com.pulumi.azurenative.compute.inputs.ImageReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetOSDiskArgs;
    import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetManagedDiskParametersArgs;
    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(SkuArgs.builder()
                    .capacity(3.0)
                    .name("Standard_DS1_v2")
                    .tier("Standard")
                    .build())
                .upgradePolicy(UpgradePolicyArgs.builder()
                    .mode("Manual")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .capacityReservation(CapacityReservationProfileArgs.builder()
                        .capacityReservationGroup(SubResourceArgs.builder()
                            .id("subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}")
                            .build())
                        .build())
                    .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                        .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                            .enableIPForwarding(true)
                            .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                                .name("{vmss-name}")
                                .subnet(ApiEntityReferenceArgs.builder()
                                    .id("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}")
                                    .build())
                                .build())
                            .name("{vmss-name}")
                            .primary(true)
                            .build())
                        .build())
                    .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                        .adminPassword("{your-password}")
                        .adminUsername("{your-username}")
                        .computerNamePrefix("{vmss-name}")
                        .build())
                    .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                        .imageReference(ImageReferenceArgs.builder()
                            .offer("WindowsServer")
                            .publisher("MicrosoftWindowsServer")
                            .sku("2016-Datacenter")
                            .version("latest")
                            .build())
                        .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                            .caching("ReadWrite")
                            .createOption("FromImage")
                            .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                                .storageAccountType("Standard_LRS")
                                .build())
                            .build())
                        .build())
                    .build())
                .vmScaleSetName("{vmss-name}")
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const virtualMachineScaleSet = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet", {
        location: "westus",
        overprovision: true,
        resourceGroupName: "myResourceGroup",
        sku: {
            capacity: 3,
            name: "Standard_DS1_v2",
            tier: "Standard",
        },
        upgradePolicy: {
            mode: azure_native.compute.UpgradeMode.Manual,
        },
        virtualMachineProfile: {
            capacityReservation: {
                capacityReservationGroup: {
                    id: "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}",
                },
            },
            networkProfile: {
                networkInterfaceConfigurations: [{
                    enableIPForwarding: true,
                    ipConfigurations: [{
                        name: "{vmss-name}",
                        subnet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    name: "{vmss-name}",
                    primary: true,
                }],
            },
            osProfile: {
                adminPassword: "{your-password}",
                adminUsername: "{your-username}",
                computerNamePrefix: "{vmss-name}",
            },
            storageProfile: {
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: azure_native.compute.DiskCreateOptionTypes.FromImage,
                    managedDisk: {
                        storageAccountType: azure_native.compute.StorageAccountTypes.Standard_LRS,
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku={
            "capacity": 3,
            "name": "Standard_DS1_v2",
            "tier": "Standard",
        },
        upgrade_policy={
            "mode": azure_native.compute.UpgradeMode.MANUAL,
        },
        virtual_machine_profile={
            "capacity_reservation": {
                "capacity_reservation_group": {
                    "id": "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}",
                },
            },
            "network_profile": {
                "network_interface_configurations": [{
                    "enable_ip_forwarding": True,
                    "ip_configurations": [{
                        "name": "{vmss-name}",
                        "subnet": {
                            "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                        },
                    }],
                    "name": "{vmss-name}",
                    "primary": True,
                }],
            },
            "os_profile": {
                "admin_password": "{your-password}",
                "admin_username": "{your-username}",
                "computer_name_prefix": "{vmss-name}",
            },
            "storage_profile": {
                "image_reference": {
                    "offer": "WindowsServer",
                    "publisher": "MicrosoftWindowsServer",
                    "sku": "2016-Datacenter",
                    "version": "latest",
                },
                "os_disk": {
                    "caching": azure_native.compute.CachingTypes.READ_WRITE,
                    "create_option": azure_native.compute.DiskCreateOptionTypes.FROM_IMAGE,
                    "managed_disk": {
                        "storage_account_type": azure_native.compute.StorageAccountTypes.STANDARD_LRS,
                    },
                },
            },
        },
        vm_scale_set_name="{vmss-name}")
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          sku:
            capacity: 3
            name: Standard_DS1_v2
            tier: Standard
          upgradePolicy:
            mode: Manual
          virtualMachineProfile:
            capacityReservation:
              capacityReservationGroup:
                id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}
            networkProfile:
              networkInterfaceConfigurations:
                - enableIPForwarding: true
                  ipConfigurations:
                    - name: '{vmss-name}'
                      subnet:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                  name: '{vmss-name}'
                  primary: true
            osProfile:
              adminPassword: '{your-password}'
              adminUsername: '{your-username}'
              computerNamePrefix: '{vmss-name}'
            storageProfile:
              imageReference:
                offer: WindowsServer
                publisher: MicrosoftWindowsServer
                sku: 2016-Datacenter
                version: latest
              osDisk:
                caching: ReadWrite
                createOption: FromImage
                managedDisk:
                  storageAccountType: Standard_LRS
          vmScaleSetName: '{vmss-name}'
    

    Create VirtualMachineScaleSet Resource

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

    Constructor syntax

    new VirtualMachineScaleSet(name: string, args: VirtualMachineScaleSetArgs, opts?: CustomResourceOptions);
    @overload
    def VirtualMachineScaleSet(resource_name: str,
                               args: VirtualMachineScaleSetArgs,
                               opts: Optional[ResourceOptions] = None)
    
    @overload
    def VirtualMachineScaleSet(resource_name: str,
                               opts: Optional[ResourceOptions] = None,
                               resource_group_name: Optional[str] = None,
                               resiliency_policy: Optional[ResiliencyPolicyArgs] = None,
                               virtual_machine_profile: Optional[VirtualMachineScaleSetVMProfileArgs] = None,
                               do_not_run_extensions_on_overprovisioned_vms: Optional[bool] = None,
                               extended_location: Optional[ExtendedLocationArgs] = None,
                               automatic_repairs_policy: Optional[AutomaticRepairsPolicyArgs] = None,
                               identity: Optional[VirtualMachineScaleSetIdentityArgs] = None,
                               location: Optional[str] = None,
                               orchestration_mode: Optional[Union[str, OrchestrationMode]] = None,
                               overprovision: Optional[bool] = None,
                               plan: Optional[PlanArgs] = None,
                               platform_fault_domain_count: Optional[int] = None,
                               priority_mix_policy: Optional[PriorityMixPolicyArgs] = None,
                               constrained_maximum_capacity: Optional[bool] = None,
                               proximity_placement_group: Optional[SubResourceArgs] = None,
                               host_group: Optional[SubResourceArgs] = None,
                               scale_in_policy: Optional[ScaleInPolicyArgs] = None,
                               scheduled_events_policy: Optional[ScheduledEventsPolicyArgs] = None,
                               single_placement_group: Optional[bool] = None,
                               sku: Optional[SkuArgs] = None,
                               sku_profile: Optional[SkuProfileArgs] = None,
                               spot_restore_policy: Optional[SpotRestorePolicyArgs] = None,
                               tags: Optional[Mapping[str, str]] = None,
                               upgrade_policy: Optional[UpgradePolicyArgs] = None,
                               additional_capabilities: Optional[AdditionalCapabilitiesArgs] = None,
                               vm_scale_set_name: Optional[str] = None,
                               zonal_platform_fault_domain_align_mode: Optional[Union[str, ZonalPlatformFaultDomainAlignMode]] = None,
                               zone_balance: Optional[bool] = None,
                               zones: Optional[Sequence[str]] = None)
    func NewVirtualMachineScaleSet(ctx *Context, name string, args VirtualMachineScaleSetArgs, opts ...ResourceOption) (*VirtualMachineScaleSet, error)
    public VirtualMachineScaleSet(string name, VirtualMachineScaleSetArgs args, CustomResourceOptions? opts = null)
    public VirtualMachineScaleSet(String name, VirtualMachineScaleSetArgs args)
    public VirtualMachineScaleSet(String name, VirtualMachineScaleSetArgs args, CustomResourceOptions options)
    
    type: azure-native:compute:VirtualMachineScaleSet
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args VirtualMachineScaleSetArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args VirtualMachineScaleSetArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args VirtualMachineScaleSetArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args VirtualMachineScaleSetArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args VirtualMachineScaleSetArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var virtualMachineScaleSetResource = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSetResource", new()
    {
        ResourceGroupName = "string",
        ResiliencyPolicy = new AzureNative.Compute.Inputs.ResiliencyPolicyArgs
        {
            AutomaticZoneRebalancingPolicy = new AzureNative.Compute.Inputs.AutomaticZoneRebalancingPolicyArgs
            {
                Enabled = false,
                RebalanceBehavior = "string",
                RebalanceStrategy = "string",
            },
            ResilientVMCreationPolicy = new AzureNative.Compute.Inputs.ResilientVMCreationPolicyArgs
            {
                Enabled = false,
            },
            ResilientVMDeletionPolicy = new AzureNative.Compute.Inputs.ResilientVMDeletionPolicyArgs
            {
                Enabled = false,
            },
        },
        VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
        {
            ApplicationProfile = new AzureNative.Compute.Inputs.ApplicationProfileArgs
            {
                GalleryApplications = new[]
                {
                    new AzureNative.Compute.Inputs.VMGalleryApplicationArgs
                    {
                        PackageReferenceId = "string",
                        ConfigurationReference = "string",
                        EnableAutomaticUpgrade = false,
                        Order = 0,
                        Tags = "string",
                        TreatFailureAsDeploymentFailure = false,
                    },
                },
            },
            BillingProfile = new AzureNative.Compute.Inputs.BillingProfileArgs
            {
                MaxPrice = 0,
            },
            CapacityReservation = new AzureNative.Compute.Inputs.CapacityReservationProfileArgs
            {
                CapacityReservationGroup = new AzureNative.Compute.Inputs.SubResourceArgs
                {
                    Id = "string",
                },
            },
            DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
            {
                BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                {
                    Enabled = false,
                    StorageUri = "string",
                },
            },
            EvictionPolicy = "string",
            ExtensionProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionProfileArgs
            {
                Extensions = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionArgs
                    {
                        AutoUpgradeMinorVersion = false,
                        EnableAutomaticUpgrade = false,
                        ForceUpdateTag = "string",
                        Name = "string",
                        ProtectedSettings = "any",
                        ProtectedSettingsFromKeyVault = new AzureNative.Compute.Inputs.KeyVaultSecretReferenceArgs
                        {
                            SecretUrl = "string",
                            SourceVault = new AzureNative.Compute.Inputs.SubResourceArgs
                            {
                                Id = "string",
                            },
                        },
                        ProvisionAfterExtensions = new[]
                        {
                            "string",
                        },
                        Publisher = "string",
                        Settings = "any",
                        SuppressFailures = false,
                        Type = "string",
                        TypeHandlerVersion = "string",
                    },
                },
                ExtensionsTimeBudget = "string",
            },
            HardwareProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetHardwareProfileArgs
            {
                VmSizeProperties = new AzureNative.Compute.Inputs.VMSizePropertiesArgs
                {
                    VCPUsAvailable = 0,
                    VCPUsPerCore = 0,
                },
            },
            LicenseType = "string",
            NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
            {
                HealthProbe = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                {
                    Id = "string",
                },
                NetworkApiVersion = "string",
                NetworkInterfaceConfigurations = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                    {
                        IpConfigurations = new[]
                        {
                            new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                            {
                                Name = "string",
                                ApplicationGatewayBackendAddressPools = new[]
                                {
                                    new AzureNative.Compute.Inputs.SubResourceArgs
                                    {
                                        Id = "string",
                                    },
                                },
                                ApplicationSecurityGroups = new[]
                                {
                                    new AzureNative.Compute.Inputs.SubResourceArgs
                                    {
                                        Id = "string",
                                    },
                                },
                                LoadBalancerBackendAddressPools = new[]
                                {
                                    new AzureNative.Compute.Inputs.SubResourceArgs
                                    {
                                        Id = "string",
                                    },
                                },
                                LoadBalancerInboundNatPools = new[]
                                {
                                    new AzureNative.Compute.Inputs.SubResourceArgs
                                    {
                                        Id = "string",
                                    },
                                },
                                Primary = false,
                                PrivateIPAddressVersion = "string",
                                PublicIPAddressConfiguration = new AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfigurationArgs
                                {
                                    Name = "string",
                                    DeleteOption = "string",
                                    DnsSettings = new AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsArgs
                                    {
                                        DomainNameLabel = "string",
                                        DomainNameLabelScope = "string",
                                    },
                                    IdleTimeoutInMinutes = 0,
                                    IpTags = new[]
                                    {
                                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetIpTagArgs
                                        {
                                            IpTagType = "string",
                                            Tag = "string",
                                        },
                                    },
                                    PublicIPAddressVersion = "string",
                                    PublicIPPrefix = new AzureNative.Compute.Inputs.SubResourceArgs
                                    {
                                        Id = "string",
                                    },
                                    Sku = new AzureNative.Compute.Inputs.PublicIPAddressSkuArgs
                                    {
                                        Name = "string",
                                        Tier = "string",
                                    },
                                },
                                Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                {
                                    Id = "string",
                                },
                            },
                        },
                        Name = "string",
                        AuxiliaryMode = "string",
                        AuxiliarySku = "string",
                        DeleteOption = "string",
                        DisableTcpStateTracking = false,
                        DnsSettings = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationDnsSettingsArgs
                        {
                            DnsServers = new[]
                            {
                                "string",
                            },
                        },
                        EnableAcceleratedNetworking = false,
                        EnableFpga = false,
                        EnableIPForwarding = false,
                        NetworkSecurityGroup = new AzureNative.Compute.Inputs.SubResourceArgs
                        {
                            Id = "string",
                        },
                        Primary = false,
                    },
                },
            },
            OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
            {
                AdminPassword = "string",
                AdminUsername = "string",
                AllowExtensionOperations = false,
                ComputerNamePrefix = "string",
                CustomData = "string",
                LinuxConfiguration = new AzureNative.Compute.Inputs.LinuxConfigurationArgs
                {
                    DisablePasswordAuthentication = false,
                    EnableVMAgentPlatformUpdates = false,
                    PatchSettings = new AzureNative.Compute.Inputs.LinuxPatchSettingsArgs
                    {
                        AssessmentMode = "string",
                        AutomaticByPlatformSettings = new AzureNative.Compute.Inputs.LinuxVMGuestPatchAutomaticByPlatformSettingsArgs
                        {
                            BypassPlatformSafetyChecksOnUserSchedule = false,
                            RebootSetting = "string",
                        },
                        PatchMode = "string",
                    },
                    ProvisionVMAgent = false,
                    Ssh = new AzureNative.Compute.Inputs.SshConfigurationArgs
                    {
                        PublicKeys = new[]
                        {
                            new AzureNative.Compute.Inputs.SshPublicKeyArgs
                            {
                                KeyData = "string",
                                Path = "string",
                            },
                        },
                    },
                },
                RequireGuestProvisionSignal = false,
                Secrets = new[]
                {
                    new AzureNative.Compute.Inputs.VaultSecretGroupArgs
                    {
                        SourceVault = new AzureNative.Compute.Inputs.SubResourceArgs
                        {
                            Id = "string",
                        },
                        VaultCertificates = new[]
                        {
                            new AzureNative.Compute.Inputs.VaultCertificateArgs
                            {
                                CertificateStore = "string",
                                CertificateUrl = "string",
                            },
                        },
                    },
                },
                WindowsConfiguration = new AzureNative.Compute.Inputs.WindowsConfigurationArgs
                {
                    AdditionalUnattendContent = new[]
                    {
                        new AzureNative.Compute.Inputs.AdditionalUnattendContentArgs
                        {
                            ComponentName = AzureNative.Compute.ComponentNames.Microsoft_Windows_Shell_Setup,
                            Content = "string",
                            PassName = AzureNative.Compute.PassNames.OobeSystem,
                            SettingName = AzureNative.Compute.SettingNames.AutoLogon,
                        },
                    },
                    EnableAutomaticUpdates = false,
                    PatchSettings = new AzureNative.Compute.Inputs.PatchSettingsArgs
                    {
                        AssessmentMode = "string",
                        AutomaticByPlatformSettings = new AzureNative.Compute.Inputs.WindowsVMGuestPatchAutomaticByPlatformSettingsArgs
                        {
                            BypassPlatformSafetyChecksOnUserSchedule = false,
                            RebootSetting = "string",
                        },
                        EnableHotpatching = false,
                        PatchMode = "string",
                    },
                    ProvisionVMAgent = false,
                    TimeZone = "string",
                    WinRM = new AzureNative.Compute.Inputs.WinRMConfigurationArgs
                    {
                        Listeners = new[]
                        {
                            new AzureNative.Compute.Inputs.WinRMListenerArgs
                            {
                                CertificateUrl = "string",
                                Protocol = AzureNative.Compute.ProtocolTypes.Http,
                            },
                        },
                    },
                },
            },
            Priority = "string",
            ScheduledEventsProfile = new AzureNative.Compute.Inputs.ScheduledEventsProfileArgs
            {
                OsImageNotificationProfile = new AzureNative.Compute.Inputs.OSImageNotificationProfileArgs
                {
                    Enable = false,
                    NotBeforeTimeout = "string",
                },
                TerminateNotificationProfile = new AzureNative.Compute.Inputs.TerminateNotificationProfileArgs
                {
                    Enable = false,
                    NotBeforeTimeout = "string",
                },
            },
            SecurityPostureReference = new AzureNative.Compute.Inputs.SecurityPostureReferenceArgs
            {
                Id = "string",
                ExcludeExtensions = new[]
                {
                    "string",
                },
                IsOverridable = false,
            },
            SecurityProfile = new AzureNative.Compute.Inputs.SecurityProfileArgs
            {
                EncryptionAtHost = false,
                EncryptionIdentity = new AzureNative.Compute.Inputs.EncryptionIdentityArgs
                {
                    UserAssignedIdentityResourceId = "string",
                },
                ProxyAgentSettings = new AzureNative.Compute.Inputs.ProxyAgentSettingsArgs
                {
                    Enabled = false,
                    Imds = new AzureNative.Compute.Inputs.HostEndpointSettingsArgs
                    {
                        InVMAccessControlProfileReferenceId = "string",
                        Mode = "string",
                    },
                    KeyIncarnationId = 0,
                    Mode = "string",
                    WireServer = new AzureNative.Compute.Inputs.HostEndpointSettingsArgs
                    {
                        InVMAccessControlProfileReferenceId = "string",
                        Mode = "string",
                    },
                },
                SecurityType = "string",
                UefiSettings = new AzureNative.Compute.Inputs.UefiSettingsArgs
                {
                    SecureBootEnabled = false,
                    VTpmEnabled = false,
                },
            },
            ServiceArtifactReference = new AzureNative.Compute.Inputs.ServiceArtifactReferenceArgs
            {
                Id = "string",
            },
            StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
            {
                DataDisks = new[]
                {
                    new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
                    {
                        CreateOption = "string",
                        Lun = 0,
                        Caching = AzureNative.Compute.CachingTypes.None,
                        DeleteOption = "string",
                        DiskIOPSReadWrite = 0,
                        DiskMBpsReadWrite = 0,
                        DiskSizeGB = 0,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
                            {
                                Id = "string",
                            },
                            SecurityProfile = new AzureNative.Compute.Inputs.VMDiskSecurityProfileArgs
                            {
                                DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
                                {
                                    Id = "string",
                                },
                                SecurityEncryptionType = "string",
                            },
                            StorageAccountType = "string",
                        },
                        Name = "string",
                        WriteAcceleratorEnabled = false,
                    },
                },
                DiskControllerType = "string",
                ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                {
                    CommunityGalleryImageId = "string",
                    Id = "string",
                    Offer = "string",
                    Publisher = "string",
                    SharedGalleryImageId = "string",
                    Sku = "string",
                    Version = "string",
                },
                OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                {
                    CreateOption = "string",
                    Caching = AzureNative.Compute.CachingTypes.None,
                    DeleteOption = "string",
                    DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
                    {
                        Option = "string",
                        Placement = "string",
                    },
                    DiskSizeGB = 0,
                    Image = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
                    {
                        Uri = "string",
                    },
                    ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                    {
                        DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
                        {
                            Id = "string",
                        },
                        SecurityProfile = new AzureNative.Compute.Inputs.VMDiskSecurityProfileArgs
                        {
                            DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
                            {
                                Id = "string",
                            },
                            SecurityEncryptionType = "string",
                        },
                        StorageAccountType = "string",
                    },
                    Name = "string",
                    OsType = AzureNative.Compute.OperatingSystemTypes.Windows,
                    VhdContainers = new[]
                    {
                        "string",
                    },
                    WriteAcceleratorEnabled = false,
                },
            },
            UserData = "string",
        },
        DoNotRunExtensionsOnOverprovisionedVMs = false,
        ExtendedLocation = new AzureNative.Compute.Inputs.ExtendedLocationArgs
        {
            Name = "string",
            Type = "string",
        },
        AutomaticRepairsPolicy = new AzureNative.Compute.Inputs.AutomaticRepairsPolicyArgs
        {
            Enabled = false,
            GracePeriod = "string",
            RepairAction = "string",
        },
        Identity = new AzureNative.Compute.Inputs.VirtualMachineScaleSetIdentityArgs
        {
            Type = AzureNative.Compute.ResourceIdentityType.SystemAssigned,
            UserAssignedIdentities = new[]
            {
                "string",
            },
        },
        Location = "string",
        OrchestrationMode = "string",
        Overprovision = false,
        Plan = new AzureNative.Compute.Inputs.PlanArgs
        {
            Name = "string",
            Product = "string",
            PromotionCode = "string",
            Publisher = "string",
        },
        PlatformFaultDomainCount = 0,
        PriorityMixPolicy = new AzureNative.Compute.Inputs.PriorityMixPolicyArgs
        {
            BaseRegularPriorityCount = 0,
            RegularPriorityPercentageAboveBase = 0,
        },
        ConstrainedMaximumCapacity = false,
        ProximityPlacementGroup = new AzureNative.Compute.Inputs.SubResourceArgs
        {
            Id = "string",
        },
        HostGroup = new AzureNative.Compute.Inputs.SubResourceArgs
        {
            Id = "string",
        },
        ScaleInPolicy = new AzureNative.Compute.Inputs.ScaleInPolicyArgs
        {
            ForceDeletion = false,
            PrioritizeUnhealthyVMs = false,
            Rules = new[]
            {
                "string",
            },
        },
        ScheduledEventsPolicy = new AzureNative.Compute.Inputs.ScheduledEventsPolicyArgs
        {
            ScheduledEventsAdditionalPublishingTargets = new AzureNative.Compute.Inputs.ScheduledEventsAdditionalPublishingTargetsArgs
            {
                EventGridAndResourceGraph = new AzureNative.Compute.Inputs.EventGridAndResourceGraphArgs
                {
                    Enable = false,
                },
            },
            UserInitiatedReboot = new AzureNative.Compute.Inputs.UserInitiatedRebootArgs
            {
                AutomaticallyApprove = false,
            },
            UserInitiatedRedeploy = new AzureNative.Compute.Inputs.UserInitiatedRedeployArgs
            {
                AutomaticallyApprove = false,
            },
        },
        SinglePlacementGroup = false,
        Sku = new AzureNative.Compute.Inputs.SkuArgs
        {
            Capacity = 0,
            Name = "string",
            Tier = "string",
        },
        SkuProfile = new AzureNative.Compute.Inputs.SkuProfileArgs
        {
            AllocationStrategy = "string",
            VmSizes = new[]
            {
                new AzureNative.Compute.Inputs.SkuProfileVMSizeArgs
                {
                    Name = "string",
                    Rank = 0,
                },
            },
        },
        SpotRestorePolicy = new AzureNative.Compute.Inputs.SpotRestorePolicyArgs
        {
            Enabled = false,
            RestoreTimeout = "string",
        },
        Tags = 
        {
            { "string", "string" },
        },
        UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
        {
            AutomaticOSUpgradePolicy = new AzureNative.Compute.Inputs.AutomaticOSUpgradePolicyArgs
            {
                DisableAutomaticRollback = false,
                EnableAutomaticOSUpgrade = false,
                OsRollingUpgradeDeferral = false,
                UseRollingUpgradePolicy = false,
            },
            Mode = AzureNative.Compute.UpgradeMode.Automatic,
            RollingUpgradePolicy = new AzureNative.Compute.Inputs.RollingUpgradePolicyArgs
            {
                EnableCrossZoneUpgrade = false,
                MaxBatchInstancePercent = 0,
                MaxSurge = false,
                MaxUnhealthyInstancePercent = 0,
                MaxUnhealthyUpgradedInstancePercent = 0,
                PauseTimeBetweenBatches = "string",
                PrioritizeUnhealthyInstances = false,
                RollbackFailedInstancesOnPolicyBreach = false,
            },
        },
        AdditionalCapabilities = new AzureNative.Compute.Inputs.AdditionalCapabilitiesArgs
        {
            HibernationEnabled = false,
            UltraSSDEnabled = false,
        },
        VmScaleSetName = "string",
        ZonalPlatformFaultDomainAlignMode = "string",
        ZoneBalance = false,
        Zones = new[]
        {
            "string",
        },
    });
    
    example, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSetResource", &compute.VirtualMachineScaleSetArgs{
    	ResourceGroupName: pulumi.String("string"),
    	ResiliencyPolicy: &compute.ResiliencyPolicyArgs{
    		AutomaticZoneRebalancingPolicy: &compute.AutomaticZoneRebalancingPolicyArgs{
    			Enabled:           pulumi.Bool(false),
    			RebalanceBehavior: pulumi.String("string"),
    			RebalanceStrategy: pulumi.String("string"),
    		},
    		ResilientVMCreationPolicy: &compute.ResilientVMCreationPolicyArgs{
    			Enabled: pulumi.Bool(false),
    		},
    		ResilientVMDeletionPolicy: &compute.ResilientVMDeletionPolicyArgs{
    			Enabled: pulumi.Bool(false),
    		},
    	},
    	VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfileArgs{
    		ApplicationProfile: &compute.ApplicationProfileArgs{
    			GalleryApplications: compute.VMGalleryApplicationArray{
    				&compute.VMGalleryApplicationArgs{
    					PackageReferenceId:              pulumi.String("string"),
    					ConfigurationReference:          pulumi.String("string"),
    					EnableAutomaticUpgrade:          pulumi.Bool(false),
    					Order:                           pulumi.Int(0),
    					Tags:                            pulumi.String("string"),
    					TreatFailureAsDeploymentFailure: pulumi.Bool(false),
    				},
    			},
    		},
    		BillingProfile: &compute.BillingProfileArgs{
    			MaxPrice: pulumi.Float64(0),
    		},
    		CapacityReservation: &compute.CapacityReservationProfileArgs{
    			CapacityReservationGroup: &compute.SubResourceArgs{
    				Id: pulumi.String("string"),
    			},
    		},
    		DiagnosticsProfile: &compute.DiagnosticsProfileArgs{
    			BootDiagnostics: &compute.BootDiagnosticsArgs{
    				Enabled:    pulumi.Bool(false),
    				StorageUri: pulumi.String("string"),
    			},
    		},
    		EvictionPolicy: pulumi.String("string"),
    		ExtensionProfile: &compute.VirtualMachineScaleSetExtensionProfileArgs{
    			Extensions: compute.VirtualMachineScaleSetExtensionTypeArray{
    				&compute.VirtualMachineScaleSetExtensionTypeArgs{
    					AutoUpgradeMinorVersion: pulumi.Bool(false),
    					EnableAutomaticUpgrade:  pulumi.Bool(false),
    					ForceUpdateTag:          pulumi.String("string"),
    					Name:                    pulumi.String("string"),
    					ProtectedSettings:       pulumi.Any("any"),
    					ProtectedSettingsFromKeyVault: &compute.KeyVaultSecretReferenceArgs{
    						SecretUrl: pulumi.String("string"),
    						SourceVault: &compute.SubResourceArgs{
    							Id: pulumi.String("string"),
    						},
    					},
    					ProvisionAfterExtensions: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Publisher:          pulumi.String("string"),
    					Settings:           pulumi.Any("any"),
    					SuppressFailures:   pulumi.Bool(false),
    					Type:               pulumi.String("string"),
    					TypeHandlerVersion: pulumi.String("string"),
    				},
    			},
    			ExtensionsTimeBudget: pulumi.String("string"),
    		},
    		HardwareProfile: &compute.VirtualMachineScaleSetHardwareProfileArgs{
    			VmSizeProperties: &compute.VMSizePropertiesArgs{
    				VCPUsAvailable: pulumi.Int(0),
    				VCPUsPerCore:   pulumi.Int(0),
    			},
    		},
    		LicenseType: pulumi.String("string"),
    		NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfileArgs{
    			HealthProbe: &compute.ApiEntityReferenceArgs{
    				Id: pulumi.String("string"),
    			},
    			NetworkApiVersion: pulumi.String("string"),
    			NetworkInterfaceConfigurations: compute.VirtualMachineScaleSetNetworkConfigurationArray{
    				&compute.VirtualMachineScaleSetNetworkConfigurationArgs{
    					IpConfigurations: compute.VirtualMachineScaleSetIPConfigurationArray{
    						&compute.VirtualMachineScaleSetIPConfigurationArgs{
    							Name: pulumi.String("string"),
    							ApplicationGatewayBackendAddressPools: compute.SubResourceArray{
    								&compute.SubResourceArgs{
    									Id: pulumi.String("string"),
    								},
    							},
    							ApplicationSecurityGroups: compute.SubResourceArray{
    								&compute.SubResourceArgs{
    									Id: pulumi.String("string"),
    								},
    							},
    							LoadBalancerBackendAddressPools: compute.SubResourceArray{
    								&compute.SubResourceArgs{
    									Id: pulumi.String("string"),
    								},
    							},
    							LoadBalancerInboundNatPools: compute.SubResourceArray{
    								&compute.SubResourceArgs{
    									Id: pulumi.String("string"),
    								},
    							},
    							Primary:                 pulumi.Bool(false),
    							PrivateIPAddressVersion: pulumi.String("string"),
    							PublicIPAddressConfiguration: &compute.VirtualMachineScaleSetPublicIPAddressConfigurationArgs{
    								Name:         pulumi.String("string"),
    								DeleteOption: pulumi.String("string"),
    								DnsSettings: &compute.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsArgs{
    									DomainNameLabel:      pulumi.String("string"),
    									DomainNameLabelScope: pulumi.String("string"),
    								},
    								IdleTimeoutInMinutes: pulumi.Int(0),
    								IpTags: compute.VirtualMachineScaleSetIpTagArray{
    									&compute.VirtualMachineScaleSetIpTagArgs{
    										IpTagType: pulumi.String("string"),
    										Tag:       pulumi.String("string"),
    									},
    								},
    								PublicIPAddressVersion: pulumi.String("string"),
    								PublicIPPrefix: &compute.SubResourceArgs{
    									Id: pulumi.String("string"),
    								},
    								Sku: &compute.PublicIPAddressSkuArgs{
    									Name: pulumi.String("string"),
    									Tier: pulumi.String("string"),
    								},
    							},
    							Subnet: &compute.ApiEntityReferenceArgs{
    								Id: pulumi.String("string"),
    							},
    						},
    					},
    					Name:                    pulumi.String("string"),
    					AuxiliaryMode:           pulumi.String("string"),
    					AuxiliarySku:            pulumi.String("string"),
    					DeleteOption:            pulumi.String("string"),
    					DisableTcpStateTracking: pulumi.Bool(false),
    					DnsSettings: &compute.VirtualMachineScaleSetNetworkConfigurationDnsSettingsArgs{
    						DnsServers: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    					},
    					EnableAcceleratedNetworking: pulumi.Bool(false),
    					EnableFpga:                  pulumi.Bool(false),
    					EnableIPForwarding:          pulumi.Bool(false),
    					NetworkSecurityGroup: &compute.SubResourceArgs{
    						Id: pulumi.String("string"),
    					},
    					Primary: pulumi.Bool(false),
    				},
    			},
    		},
    		OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
    			AdminPassword:            pulumi.String("string"),
    			AdminUsername:            pulumi.String("string"),
    			AllowExtensionOperations: pulumi.Bool(false),
    			ComputerNamePrefix:       pulumi.String("string"),
    			CustomData:               pulumi.String("string"),
    			LinuxConfiguration: &compute.LinuxConfigurationArgs{
    				DisablePasswordAuthentication: pulumi.Bool(false),
    				EnableVMAgentPlatformUpdates:  pulumi.Bool(false),
    				PatchSettings: &compute.LinuxPatchSettingsArgs{
    					AssessmentMode: pulumi.String("string"),
    					AutomaticByPlatformSettings: &compute.LinuxVMGuestPatchAutomaticByPlatformSettingsArgs{
    						BypassPlatformSafetyChecksOnUserSchedule: pulumi.Bool(false),
    						RebootSetting:                            pulumi.String("string"),
    					},
    					PatchMode: pulumi.String("string"),
    				},
    				ProvisionVMAgent: pulumi.Bool(false),
    				Ssh: &compute.SshConfigurationArgs{
    					PublicKeys: compute.SshPublicKeyTypeArray{
    						&compute.SshPublicKeyTypeArgs{
    							KeyData: pulumi.String("string"),
    							Path:    pulumi.String("string"),
    						},
    					},
    				},
    			},
    			RequireGuestProvisionSignal: pulumi.Bool(false),
    			Secrets: compute.VaultSecretGroupArray{
    				&compute.VaultSecretGroupArgs{
    					SourceVault: &compute.SubResourceArgs{
    						Id: pulumi.String("string"),
    					},
    					VaultCertificates: compute.VaultCertificateArray{
    						&compute.VaultCertificateArgs{
    							CertificateStore: pulumi.String("string"),
    							CertificateUrl:   pulumi.String("string"),
    						},
    					},
    				},
    			},
    			WindowsConfiguration: &compute.WindowsConfigurationArgs{
    				AdditionalUnattendContent: compute.AdditionalUnattendContentArray{
    					&compute.AdditionalUnattendContentArgs{
    						ComponentName: compute.ComponentNames_Microsoft_Windows_Shell_Setup,
    						Content:       pulumi.String("string"),
    						PassName:      compute.PassNamesOobeSystem,
    						SettingName:   compute.SettingNamesAutoLogon,
    					},
    				},
    				EnableAutomaticUpdates: pulumi.Bool(false),
    				PatchSettings: &compute.PatchSettingsArgs{
    					AssessmentMode: pulumi.String("string"),
    					AutomaticByPlatformSettings: &compute.WindowsVMGuestPatchAutomaticByPlatformSettingsArgs{
    						BypassPlatformSafetyChecksOnUserSchedule: pulumi.Bool(false),
    						RebootSetting:                            pulumi.String("string"),
    					},
    					EnableHotpatching: pulumi.Bool(false),
    					PatchMode:         pulumi.String("string"),
    				},
    				ProvisionVMAgent: pulumi.Bool(false),
    				TimeZone:         pulumi.String("string"),
    				WinRM: &compute.WinRMConfigurationArgs{
    					Listeners: compute.WinRMListenerArray{
    						&compute.WinRMListenerArgs{
    							CertificateUrl: pulumi.String("string"),
    							Protocol:       compute.ProtocolTypesHttp,
    						},
    					},
    				},
    			},
    		},
    		Priority: pulumi.String("string"),
    		ScheduledEventsProfile: &compute.ScheduledEventsProfileArgs{
    			OsImageNotificationProfile: &compute.OSImageNotificationProfileArgs{
    				Enable:           pulumi.Bool(false),
    				NotBeforeTimeout: pulumi.String("string"),
    			},
    			TerminateNotificationProfile: &compute.TerminateNotificationProfileArgs{
    				Enable:           pulumi.Bool(false),
    				NotBeforeTimeout: pulumi.String("string"),
    			},
    		},
    		SecurityPostureReference: &compute.SecurityPostureReferenceArgs{
    			Id: pulumi.String("string"),
    			ExcludeExtensions: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			IsOverridable: pulumi.Bool(false),
    		},
    		SecurityProfile: &compute.SecurityProfileArgs{
    			EncryptionAtHost: pulumi.Bool(false),
    			EncryptionIdentity: &compute.EncryptionIdentityArgs{
    				UserAssignedIdentityResourceId: pulumi.String("string"),
    			},
    			ProxyAgentSettings: &compute.ProxyAgentSettingsArgs{
    				Enabled: pulumi.Bool(false),
    				Imds: &compute.HostEndpointSettingsArgs{
    					InVMAccessControlProfileReferenceId: pulumi.String("string"),
    					Mode:                                pulumi.String("string"),
    				},
    				KeyIncarnationId: pulumi.Int(0),
    				Mode:             pulumi.String("string"),
    				WireServer: &compute.HostEndpointSettingsArgs{
    					InVMAccessControlProfileReferenceId: pulumi.String("string"),
    					Mode:                                pulumi.String("string"),
    				},
    			},
    			SecurityType: pulumi.String("string"),
    			UefiSettings: &compute.UefiSettingsArgs{
    				SecureBootEnabled: pulumi.Bool(false),
    				VTpmEnabled:       pulumi.Bool(false),
    			},
    		},
    		ServiceArtifactReference: &compute.ServiceArtifactReferenceArgs{
    			Id: pulumi.String("string"),
    		},
    		StorageProfile: &compute.VirtualMachineScaleSetStorageProfileArgs{
    			DataDisks: compute.VirtualMachineScaleSetDataDiskArray{
    				&compute.VirtualMachineScaleSetDataDiskArgs{
    					CreateOption:      pulumi.String("string"),
    					Lun:               pulumi.Int(0),
    					Caching:           compute.CachingTypesNone,
    					DeleteOption:      pulumi.String("string"),
    					DiskIOPSReadWrite: pulumi.Float64(0),
    					DiskMBpsReadWrite: pulumi.Float64(0),
    					DiskSizeGB:        pulumi.Int(0),
    					ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    						DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
    							Id: pulumi.String("string"),
    						},
    						SecurityProfile: &compute.VMDiskSecurityProfileArgs{
    							DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
    								Id: pulumi.String("string"),
    							},
    							SecurityEncryptionType: pulumi.String("string"),
    						},
    						StorageAccountType: pulumi.String("string"),
    					},
    					Name:                    pulumi.String("string"),
    					WriteAcceleratorEnabled: pulumi.Bool(false),
    				},
    			},
    			DiskControllerType: pulumi.String("string"),
    			ImageReference: &compute.ImageReferenceArgs{
    				CommunityGalleryImageId: pulumi.String("string"),
    				Id:                      pulumi.String("string"),
    				Offer:                   pulumi.String("string"),
    				Publisher:               pulumi.String("string"),
    				SharedGalleryImageId:    pulumi.String("string"),
    				Sku:                     pulumi.String("string"),
    				Version:                 pulumi.String("string"),
    			},
    			OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    				CreateOption: pulumi.String("string"),
    				Caching:      compute.CachingTypesNone,
    				DeleteOption: pulumi.String("string"),
    				DiffDiskSettings: &compute.DiffDiskSettingsArgs{
    					Option:    pulumi.String("string"),
    					Placement: pulumi.String("string"),
    				},
    				DiskSizeGB: pulumi.Int(0),
    				Image: &compute.VirtualHardDiskArgs{
    					Uri: pulumi.String("string"),
    				},
    				ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    					DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
    						Id: pulumi.String("string"),
    					},
    					SecurityProfile: &compute.VMDiskSecurityProfileArgs{
    						DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
    							Id: pulumi.String("string"),
    						},
    						SecurityEncryptionType: pulumi.String("string"),
    					},
    					StorageAccountType: pulumi.String("string"),
    				},
    				Name:   pulumi.String("string"),
    				OsType: compute.OperatingSystemTypesWindows,
    				VhdContainers: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				WriteAcceleratorEnabled: pulumi.Bool(false),
    			},
    		},
    		UserData: pulumi.String("string"),
    	},
    	DoNotRunExtensionsOnOverprovisionedVMs: pulumi.Bool(false),
    	ExtendedLocation: &compute.ExtendedLocationArgs{
    		Name: pulumi.String("string"),
    		Type: pulumi.String("string"),
    	},
    	AutomaticRepairsPolicy: &compute.AutomaticRepairsPolicyArgs{
    		Enabled:      pulumi.Bool(false),
    		GracePeriod:  pulumi.String("string"),
    		RepairAction: pulumi.String("string"),
    	},
    	Identity: &compute.VirtualMachineScaleSetIdentityArgs{
    		Type: compute.ResourceIdentityTypeSystemAssigned,
    		UserAssignedIdentities: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    	},
    	Location:          pulumi.String("string"),
    	OrchestrationMode: pulumi.String("string"),
    	Overprovision:     pulumi.Bool(false),
    	Plan: &compute.PlanArgs{
    		Name:          pulumi.String("string"),
    		Product:       pulumi.String("string"),
    		PromotionCode: pulumi.String("string"),
    		Publisher:     pulumi.String("string"),
    	},
    	PlatformFaultDomainCount: pulumi.Int(0),
    	PriorityMixPolicy: &compute.PriorityMixPolicyArgs{
    		BaseRegularPriorityCount:           pulumi.Int(0),
    		RegularPriorityPercentageAboveBase: pulumi.Int(0),
    	},
    	ConstrainedMaximumCapacity: pulumi.Bool(false),
    	ProximityPlacementGroup: &compute.SubResourceArgs{
    		Id: pulumi.String("string"),
    	},
    	HostGroup: &compute.SubResourceArgs{
    		Id: pulumi.String("string"),
    	},
    	ScaleInPolicy: &compute.ScaleInPolicyArgs{
    		ForceDeletion:          pulumi.Bool(false),
    		PrioritizeUnhealthyVMs: pulumi.Bool(false),
    		Rules: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    	},
    	ScheduledEventsPolicy: &compute.ScheduledEventsPolicyArgs{
    		ScheduledEventsAdditionalPublishingTargets: &compute.ScheduledEventsAdditionalPublishingTargetsArgs{
    			EventGridAndResourceGraph: &compute.EventGridAndResourceGraphArgs{
    				Enable: pulumi.Bool(false),
    			},
    		},
    		UserInitiatedReboot: &compute.UserInitiatedRebootArgs{
    			AutomaticallyApprove: pulumi.Bool(false),
    		},
    		UserInitiatedRedeploy: &compute.UserInitiatedRedeployArgs{
    			AutomaticallyApprove: pulumi.Bool(false),
    		},
    	},
    	SinglePlacementGroup: pulumi.Bool(false),
    	Sku: &compute.SkuArgs{
    		Capacity: pulumi.Float64(0),
    		Name:     pulumi.String("string"),
    		Tier:     pulumi.String("string"),
    	},
    	SkuProfile: &compute.SkuProfileArgs{
    		AllocationStrategy: pulumi.String("string"),
    		VmSizes: compute.SkuProfileVMSizeArray{
    			&compute.SkuProfileVMSizeArgs{
    				Name: pulumi.String("string"),
    				Rank: pulumi.Int(0),
    			},
    		},
    	},
    	SpotRestorePolicy: &compute.SpotRestorePolicyArgs{
    		Enabled:        pulumi.Bool(false),
    		RestoreTimeout: pulumi.String("string"),
    	},
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	UpgradePolicy: &compute.UpgradePolicyArgs{
    		AutomaticOSUpgradePolicy: &compute.AutomaticOSUpgradePolicyArgs{
    			DisableAutomaticRollback: pulumi.Bool(false),
    			EnableAutomaticOSUpgrade: pulumi.Bool(false),
    			OsRollingUpgradeDeferral: pulumi.Bool(false),
    			UseRollingUpgradePolicy:  pulumi.Bool(false),
    		},
    		Mode: compute.UpgradeModeAutomatic,
    		RollingUpgradePolicy: &compute.RollingUpgradePolicyArgs{
    			EnableCrossZoneUpgrade:                pulumi.Bool(false),
    			MaxBatchInstancePercent:               pulumi.Int(0),
    			MaxSurge:                              pulumi.Bool(false),
    			MaxUnhealthyInstancePercent:           pulumi.Int(0),
    			MaxUnhealthyUpgradedInstancePercent:   pulumi.Int(0),
    			PauseTimeBetweenBatches:               pulumi.String("string"),
    			PrioritizeUnhealthyInstances:          pulumi.Bool(false),
    			RollbackFailedInstancesOnPolicyBreach: pulumi.Bool(false),
    		},
    	},
    	AdditionalCapabilities: &compute.AdditionalCapabilitiesArgs{
    		HibernationEnabled: pulumi.Bool(false),
    		UltraSSDEnabled:    pulumi.Bool(false),
    	},
    	VmScaleSetName:                    pulumi.String("string"),
    	ZonalPlatformFaultDomainAlignMode: pulumi.String("string"),
    	ZoneBalance:                       pulumi.Bool(false),
    	Zones: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    })
    
    var virtualMachineScaleSetResource = new VirtualMachineScaleSet("virtualMachineScaleSetResource", VirtualMachineScaleSetArgs.builder()
        .resourceGroupName("string")
        .resiliencyPolicy(ResiliencyPolicyArgs.builder()
            .automaticZoneRebalancingPolicy(AutomaticZoneRebalancingPolicyArgs.builder()
                .enabled(false)
                .rebalanceBehavior("string")
                .rebalanceStrategy("string")
                .build())
            .resilientVMCreationPolicy(ResilientVMCreationPolicyArgs.builder()
                .enabled(false)
                .build())
            .resilientVMDeletionPolicy(ResilientVMDeletionPolicyArgs.builder()
                .enabled(false)
                .build())
            .build())
        .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
            .applicationProfile(ApplicationProfileArgs.builder()
                .galleryApplications(VMGalleryApplicationArgs.builder()
                    .packageReferenceId("string")
                    .configurationReference("string")
                    .enableAutomaticUpgrade(false)
                    .order(0)
                    .tags("string")
                    .treatFailureAsDeploymentFailure(false)
                    .build())
                .build())
            .billingProfile(BillingProfileArgs.builder()
                .maxPrice(0.0)
                .build())
            .capacityReservation(CapacityReservationProfileArgs.builder()
                .capacityReservationGroup(SubResourceArgs.builder()
                    .id("string")
                    .build())
                .build())
            .diagnosticsProfile(DiagnosticsProfileArgs.builder()
                .bootDiagnostics(BootDiagnosticsArgs.builder()
                    .enabled(false)
                    .storageUri("string")
                    .build())
                .build())
            .evictionPolicy("string")
            .extensionProfile(VirtualMachineScaleSetExtensionProfileArgs.builder()
                .extensions(VirtualMachineScaleSetExtensionArgs.builder()
                    .autoUpgradeMinorVersion(false)
                    .enableAutomaticUpgrade(false)
                    .forceUpdateTag("string")
                    .name("string")
                    .protectedSettings("any")
                    .protectedSettingsFromKeyVault(KeyVaultSecretReferenceArgs.builder()
                        .secretUrl("string")
                        .sourceVault(SubResourceArgs.builder()
                            .id("string")
                            .build())
                        .build())
                    .provisionAfterExtensions("string")
                    .publisher("string")
                    .settings("any")
                    .suppressFailures(false)
                    .type("string")
                    .typeHandlerVersion("string")
                    .build())
                .extensionsTimeBudget("string")
                .build())
            .hardwareProfile(VirtualMachineScaleSetHardwareProfileArgs.builder()
                .vmSizeProperties(VMSizePropertiesArgs.builder()
                    .vCPUsAvailable(0)
                    .vCPUsPerCore(0)
                    .build())
                .build())
            .licenseType("string")
            .networkProfile(VirtualMachineScaleSetNetworkProfileArgs.builder()
                .healthProbe(ApiEntityReferenceArgs.builder()
                    .id("string")
                    .build())
                .networkApiVersion("string")
                .networkInterfaceConfigurations(VirtualMachineScaleSetNetworkConfigurationArgs.builder()
                    .ipConfigurations(VirtualMachineScaleSetIPConfigurationArgs.builder()
                        .name("string")
                        .applicationGatewayBackendAddressPools(SubResourceArgs.builder()
                            .id("string")
                            .build())
                        .applicationSecurityGroups(SubResourceArgs.builder()
                            .id("string")
                            .build())
                        .loadBalancerBackendAddressPools(SubResourceArgs.builder()
                            .id("string")
                            .build())
                        .loadBalancerInboundNatPools(SubResourceArgs.builder()
                            .id("string")
                            .build())
                        .primary(false)
                        .privateIPAddressVersion("string")
                        .publicIPAddressConfiguration(VirtualMachineScaleSetPublicIPAddressConfigurationArgs.builder()
                            .name("string")
                            .deleteOption("string")
                            .dnsSettings(VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsArgs.builder()
                                .domainNameLabel("string")
                                .domainNameLabelScope("string")
                                .build())
                            .idleTimeoutInMinutes(0)
                            .ipTags(VirtualMachineScaleSetIpTagArgs.builder()
                                .ipTagType("string")
                                .tag("string")
                                .build())
                            .publicIPAddressVersion("string")
                            .publicIPPrefix(SubResourceArgs.builder()
                                .id("string")
                                .build())
                            .sku(PublicIPAddressSkuArgs.builder()
                                .name("string")
                                .tier("string")
                                .build())
                            .build())
                        .subnet(ApiEntityReferenceArgs.builder()
                            .id("string")
                            .build())
                        .build())
                    .name("string")
                    .auxiliaryMode("string")
                    .auxiliarySku("string")
                    .deleteOption("string")
                    .disableTcpStateTracking(false)
                    .dnsSettings(VirtualMachineScaleSetNetworkConfigurationDnsSettingsArgs.builder()
                        .dnsServers("string")
                        .build())
                    .enableAcceleratedNetworking(false)
                    .enableFpga(false)
                    .enableIPForwarding(false)
                    .networkSecurityGroup(SubResourceArgs.builder()
                        .id("string")
                        .build())
                    .primary(false)
                    .build())
                .build())
            .osProfile(VirtualMachineScaleSetOSProfileArgs.builder()
                .adminPassword("string")
                .adminUsername("string")
                .allowExtensionOperations(false)
                .computerNamePrefix("string")
                .customData("string")
                .linuxConfiguration(LinuxConfigurationArgs.builder()
                    .disablePasswordAuthentication(false)
                    .enableVMAgentPlatformUpdates(false)
                    .patchSettings(LinuxPatchSettingsArgs.builder()
                        .assessmentMode("string")
                        .automaticByPlatformSettings(LinuxVMGuestPatchAutomaticByPlatformSettingsArgs.builder()
                            .bypassPlatformSafetyChecksOnUserSchedule(false)
                            .rebootSetting("string")
                            .build())
                        .patchMode("string")
                        .build())
                    .provisionVMAgent(false)
                    .ssh(SshConfigurationArgs.builder()
                        .publicKeys(SshPublicKeyArgs.builder()
                            .keyData("string")
                            .path("string")
                            .build())
                        .build())
                    .build())
                .requireGuestProvisionSignal(false)
                .secrets(VaultSecretGroupArgs.builder()
                    .sourceVault(SubResourceArgs.builder()
                        .id("string")
                        .build())
                    .vaultCertificates(VaultCertificateArgs.builder()
                        .certificateStore("string")
                        .certificateUrl("string")
                        .build())
                    .build())
                .windowsConfiguration(WindowsConfigurationArgs.builder()
                    .additionalUnattendContent(AdditionalUnattendContentArgs.builder()
                        .componentName("Microsoft-Windows-Shell-Setup")
                        .content("string")
                        .passName("OobeSystem")
                        .settingName("AutoLogon")
                        .build())
                    .enableAutomaticUpdates(false)
                    .patchSettings(PatchSettingsArgs.builder()
                        .assessmentMode("string")
                        .automaticByPlatformSettings(WindowsVMGuestPatchAutomaticByPlatformSettingsArgs.builder()
                            .bypassPlatformSafetyChecksOnUserSchedule(false)
                            .rebootSetting("string")
                            .build())
                        .enableHotpatching(false)
                        .patchMode("string")
                        .build())
                    .provisionVMAgent(false)
                    .timeZone("string")
                    .winRM(WinRMConfigurationArgs.builder()
                        .listeners(WinRMListenerArgs.builder()
                            .certificateUrl("string")
                            .protocol("Http")
                            .build())
                        .build())
                    .build())
                .build())
            .priority("string")
            .scheduledEventsProfile(ScheduledEventsProfileArgs.builder()
                .osImageNotificationProfile(OSImageNotificationProfileArgs.builder()
                    .enable(false)
                    .notBeforeTimeout("string")
                    .build())
                .terminateNotificationProfile(TerminateNotificationProfileArgs.builder()
                    .enable(false)
                    .notBeforeTimeout("string")
                    .build())
                .build())
            .securityPostureReference(SecurityPostureReferenceArgs.builder()
                .id("string")
                .excludeExtensions("string")
                .isOverridable(false)
                .build())
            .securityProfile(SecurityProfileArgs.builder()
                .encryptionAtHost(false)
                .encryptionIdentity(EncryptionIdentityArgs.builder()
                    .userAssignedIdentityResourceId("string")
                    .build())
                .proxyAgentSettings(ProxyAgentSettingsArgs.builder()
                    .enabled(false)
                    .imds(HostEndpointSettingsArgs.builder()
                        .inVMAccessControlProfileReferenceId("string")
                        .mode("string")
                        .build())
                    .keyIncarnationId(0)
                    .mode("string")
                    .wireServer(HostEndpointSettingsArgs.builder()
                        .inVMAccessControlProfileReferenceId("string")
                        .mode("string")
                        .build())
                    .build())
                .securityType("string")
                .uefiSettings(UefiSettingsArgs.builder()
                    .secureBootEnabled(false)
                    .vTpmEnabled(false)
                    .build())
                .build())
            .serviceArtifactReference(ServiceArtifactReferenceArgs.builder()
                .id("string")
                .build())
            .storageProfile(VirtualMachineScaleSetStorageProfileArgs.builder()
                .dataDisks(VirtualMachineScaleSetDataDiskArgs.builder()
                    .createOption("string")
                    .lun(0)
                    .caching("None")
                    .deleteOption("string")
                    .diskIOPSReadWrite(0.0)
                    .diskMBpsReadWrite(0.0)
                    .diskSizeGB(0)
                    .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                        .diskEncryptionSet(DiskEncryptionSetParametersArgs.builder()
                            .id("string")
                            .build())
                        .securityProfile(VMDiskSecurityProfileArgs.builder()
                            .diskEncryptionSet(DiskEncryptionSetParametersArgs.builder()
                                .id("string")
                                .build())
                            .securityEncryptionType("string")
                            .build())
                        .storageAccountType("string")
                        .build())
                    .name("string")
                    .writeAcceleratorEnabled(false)
                    .build())
                .diskControllerType("string")
                .imageReference(ImageReferenceArgs.builder()
                    .communityGalleryImageId("string")
                    .id("string")
                    .offer("string")
                    .publisher("string")
                    .sharedGalleryImageId("string")
                    .sku("string")
                    .version("string")
                    .build())
                .osDisk(VirtualMachineScaleSetOSDiskArgs.builder()
                    .createOption("string")
                    .caching("None")
                    .deleteOption("string")
                    .diffDiskSettings(DiffDiskSettingsArgs.builder()
                        .option("string")
                        .placement("string")
                        .build())
                    .diskSizeGB(0)
                    .image(VirtualHardDiskArgs.builder()
                        .uri("string")
                        .build())
                    .managedDisk(VirtualMachineScaleSetManagedDiskParametersArgs.builder()
                        .diskEncryptionSet(DiskEncryptionSetParametersArgs.builder()
                            .id("string")
                            .build())
                        .securityProfile(VMDiskSecurityProfileArgs.builder()
                            .diskEncryptionSet(DiskEncryptionSetParametersArgs.builder()
                                .id("string")
                                .build())
                            .securityEncryptionType("string")
                            .build())
                        .storageAccountType("string")
                        .build())
                    .name("string")
                    .osType("Windows")
                    .vhdContainers("string")
                    .writeAcceleratorEnabled(false)
                    .build())
                .build())
            .userData("string")
            .build())
        .doNotRunExtensionsOnOverprovisionedVMs(false)
        .extendedLocation(ExtendedLocationArgs.builder()
            .name("string")
            .type("string")
            .build())
        .automaticRepairsPolicy(AutomaticRepairsPolicyArgs.builder()
            .enabled(false)
            .gracePeriod("string")
            .repairAction("string")
            .build())
        .identity(VirtualMachineScaleSetIdentityArgs.builder()
            .type("SystemAssigned")
            .userAssignedIdentities("string")
            .build())
        .location("string")
        .orchestrationMode("string")
        .overprovision(false)
        .plan(PlanArgs.builder()
            .name("string")
            .product("string")
            .promotionCode("string")
            .publisher("string")
            .build())
        .platformFaultDomainCount(0)
        .priorityMixPolicy(PriorityMixPolicyArgs.builder()
            .baseRegularPriorityCount(0)
            .regularPriorityPercentageAboveBase(0)
            .build())
        .constrainedMaximumCapacity(false)
        .proximityPlacementGroup(SubResourceArgs.builder()
            .id("string")
            .build())
        .hostGroup(SubResourceArgs.builder()
            .id("string")
            .build())
        .scaleInPolicy(ScaleInPolicyArgs.builder()
            .forceDeletion(false)
            .prioritizeUnhealthyVMs(false)
            .rules("string")
            .build())
        .scheduledEventsPolicy(ScheduledEventsPolicyArgs.builder()
            .scheduledEventsAdditionalPublishingTargets(ScheduledEventsAdditionalPublishingTargetsArgs.builder()
                .eventGridAndResourceGraph(EventGridAndResourceGraphArgs.builder()
                    .enable(false)
                    .build())
                .build())
            .userInitiatedReboot(UserInitiatedRebootArgs.builder()
                .automaticallyApprove(false)
                .build())
            .userInitiatedRedeploy(UserInitiatedRedeployArgs.builder()
                .automaticallyApprove(false)
                .build())
            .build())
        .singlePlacementGroup(false)
        .sku(SkuArgs.builder()
            .capacity(0.0)
            .name("string")
            .tier("string")
            .build())
        .skuProfile(SkuProfileArgs.builder()
            .allocationStrategy("string")
            .vmSizes(SkuProfileVMSizeArgs.builder()
                .name("string")
                .rank(0)
                .build())
            .build())
        .spotRestorePolicy(SpotRestorePolicyArgs.builder()
            .enabled(false)
            .restoreTimeout("string")
            .build())
        .tags(Map.of("string", "string"))
        .upgradePolicy(UpgradePolicyArgs.builder()
            .automaticOSUpgradePolicy(AutomaticOSUpgradePolicyArgs.builder()
                .disableAutomaticRollback(false)
                .enableAutomaticOSUpgrade(false)
                .osRollingUpgradeDeferral(false)
                .useRollingUpgradePolicy(false)
                .build())
            .mode("Automatic")
            .rollingUpgradePolicy(RollingUpgradePolicyArgs.builder()
                .enableCrossZoneUpgrade(false)
                .maxBatchInstancePercent(0)
                .maxSurge(false)
                .maxUnhealthyInstancePercent(0)
                .maxUnhealthyUpgradedInstancePercent(0)
                .pauseTimeBetweenBatches("string")
                .prioritizeUnhealthyInstances(false)
                .rollbackFailedInstancesOnPolicyBreach(false)
                .build())
            .build())
        .additionalCapabilities(AdditionalCapabilitiesArgs.builder()
            .hibernationEnabled(false)
            .ultraSSDEnabled(false)
            .build())
        .vmScaleSetName("string")
        .zonalPlatformFaultDomainAlignMode("string")
        .zoneBalance(false)
        .zones("string")
        .build());
    
    virtual_machine_scale_set_resource = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSetResource",
        resource_group_name="string",
        resiliency_policy={
            "automatic_zone_rebalancing_policy": {
                "enabled": False,
                "rebalance_behavior": "string",
                "rebalance_strategy": "string",
            },
            "resilient_vm_creation_policy": {
                "enabled": False,
            },
            "resilient_vm_deletion_policy": {
                "enabled": False,
            },
        },
        virtual_machine_profile={
            "application_profile": {
                "gallery_applications": [{
                    "package_reference_id": "string",
                    "configuration_reference": "string",
                    "enable_automatic_upgrade": False,
                    "order": 0,
                    "tags": "string",
                    "treat_failure_as_deployment_failure": False,
                }],
            },
            "billing_profile": {
                "max_price": 0,
            },
            "capacity_reservation": {
                "capacity_reservation_group": {
                    "id": "string",
                },
            },
            "diagnostics_profile": {
                "boot_diagnostics": {
                    "enabled": False,
                    "storage_uri": "string",
                },
            },
            "eviction_policy": "string",
            "extension_profile": {
                "extensions": [{
                    "auto_upgrade_minor_version": False,
                    "enable_automatic_upgrade": False,
                    "force_update_tag": "string",
                    "name": "string",
                    "protected_settings": "any",
                    "protected_settings_from_key_vault": {
                        "secret_url": "string",
                        "source_vault": {
                            "id": "string",
                        },
                    },
                    "provision_after_extensions": ["string"],
                    "publisher": "string",
                    "settings": "any",
                    "suppress_failures": False,
                    "type": "string",
                    "type_handler_version": "string",
                }],
                "extensions_time_budget": "string",
            },
            "hardware_profile": {
                "vm_size_properties": {
                    "v_cpus_available": 0,
                    "v_cpus_per_core": 0,
                },
            },
            "license_type": "string",
            "network_profile": {
                "health_probe": {
                    "id": "string",
                },
                "network_api_version": "string",
                "network_interface_configurations": [{
                    "ip_configurations": [{
                        "name": "string",
                        "application_gateway_backend_address_pools": [{
                            "id": "string",
                        }],
                        "application_security_groups": [{
                            "id": "string",
                        }],
                        "load_balancer_backend_address_pools": [{
                            "id": "string",
                        }],
                        "load_balancer_inbound_nat_pools": [{
                            "id": "string",
                        }],
                        "primary": False,
                        "private_ip_address_version": "string",
                        "public_ip_address_configuration": {
                            "name": "string",
                            "delete_option": "string",
                            "dns_settings": {
                                "domain_name_label": "string",
                                "domain_name_label_scope": "string",
                            },
                            "idle_timeout_in_minutes": 0,
                            "ip_tags": [{
                                "ip_tag_type": "string",
                                "tag": "string",
                            }],
                            "public_ip_address_version": "string",
                            "public_ip_prefix": {
                                "id": "string",
                            },
                            "sku": {
                                "name": "string",
                                "tier": "string",
                            },
                        },
                        "subnet": {
                            "id": "string",
                        },
                    }],
                    "name": "string",
                    "auxiliary_mode": "string",
                    "auxiliary_sku": "string",
                    "delete_option": "string",
                    "disable_tcp_state_tracking": False,
                    "dns_settings": {
                        "dns_servers": ["string"],
                    },
                    "enable_accelerated_networking": False,
                    "enable_fpga": False,
                    "enable_ip_forwarding": False,
                    "network_security_group": {
                        "id": "string",
                    },
                    "primary": False,
                }],
            },
            "os_profile": {
                "admin_password": "string",
                "admin_username": "string",
                "allow_extension_operations": False,
                "computer_name_prefix": "string",
                "custom_data": "string",
                "linux_configuration": {
                    "disable_password_authentication": False,
                    "enable_vm_agent_platform_updates": False,
                    "patch_settings": {
                        "assessment_mode": "string",
                        "automatic_by_platform_settings": {
                            "bypass_platform_safety_checks_on_user_schedule": False,
                            "reboot_setting": "string",
                        },
                        "patch_mode": "string",
                    },
                    "provision_vm_agent": False,
                    "ssh": {
                        "public_keys": [{
                            "key_data": "string",
                            "path": "string",
                        }],
                    },
                },
                "require_guest_provision_signal": False,
                "secrets": [{
                    "source_vault": {
                        "id": "string",
                    },
                    "vault_certificates": [{
                        "certificate_store": "string",
                        "certificate_url": "string",
                    }],
                }],
                "windows_configuration": {
                    "additional_unattend_content": [{
                        "component_name": azure_native.compute.ComponentNames.MICROSOFT_WINDOWS_SHELL_SETUP,
                        "content": "string",
                        "pass_name": azure_native.compute.PassNames.OOBE_SYSTEM,
                        "setting_name": azure_native.compute.SettingNames.AUTO_LOGON,
                    }],
                    "enable_automatic_updates": False,
                    "patch_settings": {
                        "assessment_mode": "string",
                        "automatic_by_platform_settings": {
                            "bypass_platform_safety_checks_on_user_schedule": False,
                            "reboot_setting": "string",
                        },
                        "enable_hotpatching": False,
                        "patch_mode": "string",
                    },
                    "provision_vm_agent": False,
                    "time_zone": "string",
                    "win_rm": {
                        "listeners": [{
                            "certificate_url": "string",
                            "protocol": azure_native.compute.ProtocolTypes.HTTP,
                        }],
                    },
                },
            },
            "priority": "string",
            "scheduled_events_profile": {
                "os_image_notification_profile": {
                    "enable": False,
                    "not_before_timeout": "string",
                },
                "terminate_notification_profile": {
                    "enable": False,
                    "not_before_timeout": "string",
                },
            },
            "security_posture_reference": {
                "id": "string",
                "exclude_extensions": ["string"],
                "is_overridable": False,
            },
            "security_profile": {
                "encryption_at_host": False,
                "encryption_identity": {
                    "user_assigned_identity_resource_id": "string",
                },
                "proxy_agent_settings": {
                    "enabled": False,
                    "imds": {
                        "in_vm_access_control_profile_reference_id": "string",
                        "mode": "string",
                    },
                    "key_incarnation_id": 0,
                    "mode": "string",
                    "wire_server": {
                        "in_vm_access_control_profile_reference_id": "string",
                        "mode": "string",
                    },
                },
                "security_type": "string",
                "uefi_settings": {
                    "secure_boot_enabled": False,
                    "v_tpm_enabled": False,
                },
            },
            "service_artifact_reference": {
                "id": "string",
            },
            "storage_profile": {
                "data_disks": [{
                    "create_option": "string",
                    "lun": 0,
                    "caching": azure_native.compute.CachingTypes.NONE,
                    "delete_option": "string",
                    "disk_iops_read_write": 0,
                    "disk_m_bps_read_write": 0,
                    "disk_size_gb": 0,
                    "managed_disk": {
                        "disk_encryption_set": {
                            "id": "string",
                        },
                        "security_profile": {
                            "disk_encryption_set": {
                                "id": "string",
                            },
                            "security_encryption_type": "string",
                        },
                        "storage_account_type": "string",
                    },
                    "name": "string",
                    "write_accelerator_enabled": False,
                }],
                "disk_controller_type": "string",
                "image_reference": {
                    "community_gallery_image_id": "string",
                    "id": "string",
                    "offer": "string",
                    "publisher": "string",
                    "shared_gallery_image_id": "string",
                    "sku": "string",
                    "version": "string",
                },
                "os_disk": {
                    "create_option": "string",
                    "caching": azure_native.compute.CachingTypes.NONE,
                    "delete_option": "string",
                    "diff_disk_settings": {
                        "option": "string",
                        "placement": "string",
                    },
                    "disk_size_gb": 0,
                    "image": {
                        "uri": "string",
                    },
                    "managed_disk": {
                        "disk_encryption_set": {
                            "id": "string",
                        },
                        "security_profile": {
                            "disk_encryption_set": {
                                "id": "string",
                            },
                            "security_encryption_type": "string",
                        },
                        "storage_account_type": "string",
                    },
                    "name": "string",
                    "os_type": azure_native.compute.OperatingSystemTypes.WINDOWS,
                    "vhd_containers": ["string"],
                    "write_accelerator_enabled": False,
                },
            },
            "user_data": "string",
        },
        do_not_run_extensions_on_overprovisioned_vms=False,
        extended_location={
            "name": "string",
            "type": "string",
        },
        automatic_repairs_policy={
            "enabled": False,
            "grace_period": "string",
            "repair_action": "string",
        },
        identity={
            "type": azure_native.compute.ResourceIdentityType.SYSTEM_ASSIGNED,
            "user_assigned_identities": ["string"],
        },
        location="string",
        orchestration_mode="string",
        overprovision=False,
        plan={
            "name": "string",
            "product": "string",
            "promotion_code": "string",
            "publisher": "string",
        },
        platform_fault_domain_count=0,
        priority_mix_policy={
            "base_regular_priority_count": 0,
            "regular_priority_percentage_above_base": 0,
        },
        constrained_maximum_capacity=False,
        proximity_placement_group={
            "id": "string",
        },
        host_group={
            "id": "string",
        },
        scale_in_policy={
            "force_deletion": False,
            "prioritize_unhealthy_vms": False,
            "rules": ["string"],
        },
        scheduled_events_policy={
            "scheduled_events_additional_publishing_targets": {
                "event_grid_and_resource_graph": {
                    "enable": False,
                },
            },
            "user_initiated_reboot": {
                "automatically_approve": False,
            },
            "user_initiated_redeploy": {
                "automatically_approve": False,
            },
        },
        single_placement_group=False,
        sku={
            "capacity": 0,
            "name": "string",
            "tier": "string",
        },
        sku_profile={
            "allocation_strategy": "string",
            "vm_sizes": [{
                "name": "string",
                "rank": 0,
            }],
        },
        spot_restore_policy={
            "enabled": False,
            "restore_timeout": "string",
        },
        tags={
            "string": "string",
        },
        upgrade_policy={
            "automatic_os_upgrade_policy": {
                "disable_automatic_rollback": False,
                "enable_automatic_os_upgrade": False,
                "os_rolling_upgrade_deferral": False,
                "use_rolling_upgrade_policy": False,
            },
            "mode": azure_native.compute.UpgradeMode.AUTOMATIC,
            "rolling_upgrade_policy": {
                "enable_cross_zone_upgrade": False,
                "max_batch_instance_percent": 0,
                "max_surge": False,
                "max_unhealthy_instance_percent": 0,
                "max_unhealthy_upgraded_instance_percent": 0,
                "pause_time_between_batches": "string",
                "prioritize_unhealthy_instances": False,
                "rollback_failed_instances_on_policy_breach": False,
            },
        },
        additional_capabilities={
            "hibernation_enabled": False,
            "ultra_ssd_enabled": False,
        },
        vm_scale_set_name="string",
        zonal_platform_fault_domain_align_mode="string",
        zone_balance=False,
        zones=["string"])
    
    const virtualMachineScaleSetResource = new azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSetResource", {
        resourceGroupName: "string",
        resiliencyPolicy: {
            automaticZoneRebalancingPolicy: {
                enabled: false,
                rebalanceBehavior: "string",
                rebalanceStrategy: "string",
            },
            resilientVMCreationPolicy: {
                enabled: false,
            },
            resilientVMDeletionPolicy: {
                enabled: false,
            },
        },
        virtualMachineProfile: {
            applicationProfile: {
                galleryApplications: [{
                    packageReferenceId: "string",
                    configurationReference: "string",
                    enableAutomaticUpgrade: false,
                    order: 0,
                    tags: "string",
                    treatFailureAsDeploymentFailure: false,
                }],
            },
            billingProfile: {
                maxPrice: 0,
            },
            capacityReservation: {
                capacityReservationGroup: {
                    id: "string",
                },
            },
            diagnosticsProfile: {
                bootDiagnostics: {
                    enabled: false,
                    storageUri: "string",
                },
            },
            evictionPolicy: "string",
            extensionProfile: {
                extensions: [{
                    autoUpgradeMinorVersion: false,
                    enableAutomaticUpgrade: false,
                    forceUpdateTag: "string",
                    name: "string",
                    protectedSettings: "any",
                    protectedSettingsFromKeyVault: {
                        secretUrl: "string",
                        sourceVault: {
                            id: "string",
                        },
                    },
                    provisionAfterExtensions: ["string"],
                    publisher: "string",
                    settings: "any",
                    suppressFailures: false,
                    type: "string",
                    typeHandlerVersion: "string",
                }],
                extensionsTimeBudget: "string",
            },
            hardwareProfile: {
                vmSizeProperties: {
                    vCPUsAvailable: 0,
                    vCPUsPerCore: 0,
                },
            },
            licenseType: "string",
            networkProfile: {
                healthProbe: {
                    id: "string",
                },
                networkApiVersion: "string",
                networkInterfaceConfigurations: [{
                    ipConfigurations: [{
                        name: "string",
                        applicationGatewayBackendAddressPools: [{
                            id: "string",
                        }],
                        applicationSecurityGroups: [{
                            id: "string",
                        }],
                        loadBalancerBackendAddressPools: [{
                            id: "string",
                        }],
                        loadBalancerInboundNatPools: [{
                            id: "string",
                        }],
                        primary: false,
                        privateIPAddressVersion: "string",
                        publicIPAddressConfiguration: {
                            name: "string",
                            deleteOption: "string",
                            dnsSettings: {
                                domainNameLabel: "string",
                                domainNameLabelScope: "string",
                            },
                            idleTimeoutInMinutes: 0,
                            ipTags: [{
                                ipTagType: "string",
                                tag: "string",
                            }],
                            publicIPAddressVersion: "string",
                            publicIPPrefix: {
                                id: "string",
                            },
                            sku: {
                                name: "string",
                                tier: "string",
                            },
                        },
                        subnet: {
                            id: "string",
                        },
                    }],
                    name: "string",
                    auxiliaryMode: "string",
                    auxiliarySku: "string",
                    deleteOption: "string",
                    disableTcpStateTracking: false,
                    dnsSettings: {
                        dnsServers: ["string"],
                    },
                    enableAcceleratedNetworking: false,
                    enableFpga: false,
                    enableIPForwarding: false,
                    networkSecurityGroup: {
                        id: "string",
                    },
                    primary: false,
                }],
            },
            osProfile: {
                adminPassword: "string",
                adminUsername: "string",
                allowExtensionOperations: false,
                computerNamePrefix: "string",
                customData: "string",
                linuxConfiguration: {
                    disablePasswordAuthentication: false,
                    enableVMAgentPlatformUpdates: false,
                    patchSettings: {
                        assessmentMode: "string",
                        automaticByPlatformSettings: {
                            bypassPlatformSafetyChecksOnUserSchedule: false,
                            rebootSetting: "string",
                        },
                        patchMode: "string",
                    },
                    provisionVMAgent: false,
                    ssh: {
                        publicKeys: [{
                            keyData: "string",
                            path: "string",
                        }],
                    },
                },
                requireGuestProvisionSignal: false,
                secrets: [{
                    sourceVault: {
                        id: "string",
                    },
                    vaultCertificates: [{
                        certificateStore: "string",
                        certificateUrl: "string",
                    }],
                }],
                windowsConfiguration: {
                    additionalUnattendContent: [{
                        componentName: azure_native.compute.ComponentNames.Microsoft_Windows_Shell_Setup,
                        content: "string",
                        passName: azure_native.compute.PassNames.OobeSystem,
                        settingName: azure_native.compute.SettingNames.AutoLogon,
                    }],
                    enableAutomaticUpdates: false,
                    patchSettings: {
                        assessmentMode: "string",
                        automaticByPlatformSettings: {
                            bypassPlatformSafetyChecksOnUserSchedule: false,
                            rebootSetting: "string",
                        },
                        enableHotpatching: false,
                        patchMode: "string",
                    },
                    provisionVMAgent: false,
                    timeZone: "string",
                    winRM: {
                        listeners: [{
                            certificateUrl: "string",
                            protocol: azure_native.compute.ProtocolTypes.Http,
                        }],
                    },
                },
            },
            priority: "string",
            scheduledEventsProfile: {
                osImageNotificationProfile: {
                    enable: false,
                    notBeforeTimeout: "string",
                },
                terminateNotificationProfile: {
                    enable: false,
                    notBeforeTimeout: "string",
                },
            },
            securityPostureReference: {
                id: "string",
                excludeExtensions: ["string"],
                isOverridable: false,
            },
            securityProfile: {
                encryptionAtHost: false,
                encryptionIdentity: {
                    userAssignedIdentityResourceId: "string",
                },
                proxyAgentSettings: {
                    enabled: false,
                    imds: {
                        inVMAccessControlProfileReferenceId: "string",
                        mode: "string",
                    },
                    keyIncarnationId: 0,
                    mode: "string",
                    wireServer: {
                        inVMAccessControlProfileReferenceId: "string",
                        mode: "string",
                    },
                },
                securityType: "string",
                uefiSettings: {
                    secureBootEnabled: false,
                    vTpmEnabled: false,
                },
            },
            serviceArtifactReference: {
                id: "string",
            },
            storageProfile: {
                dataDisks: [{
                    createOption: "string",
                    lun: 0,
                    caching: azure_native.compute.CachingTypes.None,
                    deleteOption: "string",
                    diskIOPSReadWrite: 0,
                    diskMBpsReadWrite: 0,
                    diskSizeGB: 0,
                    managedDisk: {
                        diskEncryptionSet: {
                            id: "string",
                        },
                        securityProfile: {
                            diskEncryptionSet: {
                                id: "string",
                            },
                            securityEncryptionType: "string",
                        },
                        storageAccountType: "string",
                    },
                    name: "string",
                    writeAcceleratorEnabled: false,
                }],
                diskControllerType: "string",
                imageReference: {
                    communityGalleryImageId: "string",
                    id: "string",
                    offer: "string",
                    publisher: "string",
                    sharedGalleryImageId: "string",
                    sku: "string",
                    version: "string",
                },
                osDisk: {
                    createOption: "string",
                    caching: azure_native.compute.CachingTypes.None,
                    deleteOption: "string",
                    diffDiskSettings: {
                        option: "string",
                        placement: "string",
                    },
                    diskSizeGB: 0,
                    image: {
                        uri: "string",
                    },
                    managedDisk: {
                        diskEncryptionSet: {
                            id: "string",
                        },
                        securityProfile: {
                            diskEncryptionSet: {
                                id: "string",
                            },
                            securityEncryptionType: "string",
                        },
                        storageAccountType: "string",
                    },
                    name: "string",
                    osType: azure_native.compute.OperatingSystemTypes.Windows,
                    vhdContainers: ["string"],
                    writeAcceleratorEnabled: false,
                },
            },
            userData: "string",
        },
        doNotRunExtensionsOnOverprovisionedVMs: false,
        extendedLocation: {
            name: "string",
            type: "string",
        },
        automaticRepairsPolicy: {
            enabled: false,
            gracePeriod: "string",
            repairAction: "string",
        },
        identity: {
            type: azure_native.compute.ResourceIdentityType.SystemAssigned,
            userAssignedIdentities: ["string"],
        },
        location: "string",
        orchestrationMode: "string",
        overprovision: false,
        plan: {
            name: "string",
            product: "string",
            promotionCode: "string",
            publisher: "string",
        },
        platformFaultDomainCount: 0,
        priorityMixPolicy: {
            baseRegularPriorityCount: 0,
            regularPriorityPercentageAboveBase: 0,
        },
        constrainedMaximumCapacity: false,
        proximityPlacementGroup: {
            id: "string",
        },
        hostGroup: {
            id: "string",
        },
        scaleInPolicy: {
            forceDeletion: false,
            prioritizeUnhealthyVMs: false,
            rules: ["string"],
        },
        scheduledEventsPolicy: {
            scheduledEventsAdditionalPublishingTargets: {
                eventGridAndResourceGraph: {
                    enable: false,
                },
            },
            userInitiatedReboot: {
                automaticallyApprove: false,
            },
            userInitiatedRedeploy: {
                automaticallyApprove: false,
            },
        },
        singlePlacementGroup: false,
        sku: {
            capacity: 0,
            name: "string",
            tier: "string",
        },
        skuProfile: {
            allocationStrategy: "string",
            vmSizes: [{
                name: "string",
                rank: 0,
            }],
        },
        spotRestorePolicy: {
            enabled: false,
            restoreTimeout: "string",
        },
        tags: {
            string: "string",
        },
        upgradePolicy: {
            automaticOSUpgradePolicy: {
                disableAutomaticRollback: false,
                enableAutomaticOSUpgrade: false,
                osRollingUpgradeDeferral: false,
                useRollingUpgradePolicy: false,
            },
            mode: azure_native.compute.UpgradeMode.Automatic,
            rollingUpgradePolicy: {
                enableCrossZoneUpgrade: false,
                maxBatchInstancePercent: 0,
                maxSurge: false,
                maxUnhealthyInstancePercent: 0,
                maxUnhealthyUpgradedInstancePercent: 0,
                pauseTimeBetweenBatches: "string",
                prioritizeUnhealthyInstances: false,
                rollbackFailedInstancesOnPolicyBreach: false,
            },
        },
        additionalCapabilities: {
            hibernationEnabled: false,
            ultraSSDEnabled: false,
        },
        vmScaleSetName: "string",
        zonalPlatformFaultDomainAlignMode: "string",
        zoneBalance: false,
        zones: ["string"],
    });
    
    type: azure-native:compute:VirtualMachineScaleSet
    properties:
        additionalCapabilities:
            hibernationEnabled: false
            ultraSSDEnabled: false
        automaticRepairsPolicy:
            enabled: false
            gracePeriod: string
            repairAction: string
        constrainedMaximumCapacity: false
        doNotRunExtensionsOnOverprovisionedVMs: false
        extendedLocation:
            name: string
            type: string
        hostGroup:
            id: string
        identity:
            type: SystemAssigned
            userAssignedIdentities:
                - string
        location: string
        orchestrationMode: string
        overprovision: false
        plan:
            name: string
            product: string
            promotionCode: string
            publisher: string
        platformFaultDomainCount: 0
        priorityMixPolicy:
            baseRegularPriorityCount: 0
            regularPriorityPercentageAboveBase: 0
        proximityPlacementGroup:
            id: string
        resiliencyPolicy:
            automaticZoneRebalancingPolicy:
                enabled: false
                rebalanceBehavior: string
                rebalanceStrategy: string
            resilientVMCreationPolicy:
                enabled: false
            resilientVMDeletionPolicy:
                enabled: false
        resourceGroupName: string
        scaleInPolicy:
            forceDeletion: false
            prioritizeUnhealthyVMs: false
            rules:
                - string
        scheduledEventsPolicy:
            scheduledEventsAdditionalPublishingTargets:
                eventGridAndResourceGraph:
                    enable: false
            userInitiatedReboot:
                automaticallyApprove: false
            userInitiatedRedeploy:
                automaticallyApprove: false
        singlePlacementGroup: false
        sku:
            capacity: 0
            name: string
            tier: string
        skuProfile:
            allocationStrategy: string
            vmSizes:
                - name: string
                  rank: 0
        spotRestorePolicy:
            enabled: false
            restoreTimeout: string
        tags:
            string: string
        upgradePolicy:
            automaticOSUpgradePolicy:
                disableAutomaticRollback: false
                enableAutomaticOSUpgrade: false
                osRollingUpgradeDeferral: false
                useRollingUpgradePolicy: false
            mode: Automatic
            rollingUpgradePolicy:
                enableCrossZoneUpgrade: false
                maxBatchInstancePercent: 0
                maxSurge: false
                maxUnhealthyInstancePercent: 0
                maxUnhealthyUpgradedInstancePercent: 0
                pauseTimeBetweenBatches: string
                prioritizeUnhealthyInstances: false
                rollbackFailedInstancesOnPolicyBreach: false
        virtualMachineProfile:
            applicationProfile:
                galleryApplications:
                    - configurationReference: string
                      enableAutomaticUpgrade: false
                      order: 0
                      packageReferenceId: string
                      tags: string
                      treatFailureAsDeploymentFailure: false
            billingProfile:
                maxPrice: 0
            capacityReservation:
                capacityReservationGroup:
                    id: string
            diagnosticsProfile:
                bootDiagnostics:
                    enabled: false
                    storageUri: string
            evictionPolicy: string
            extensionProfile:
                extensions:
                    - autoUpgradeMinorVersion: false
                      enableAutomaticUpgrade: false
                      forceUpdateTag: string
                      name: string
                      protectedSettings: any
                      protectedSettingsFromKeyVault:
                        secretUrl: string
                        sourceVault:
                            id: string
                      provisionAfterExtensions:
                        - string
                      publisher: string
                      settings: any
                      suppressFailures: false
                      type: string
                      typeHandlerVersion: string
                extensionsTimeBudget: string
            hardwareProfile:
                vmSizeProperties:
                    vCPUsAvailable: 0
                    vCPUsPerCore: 0
            licenseType: string
            networkProfile:
                healthProbe:
                    id: string
                networkApiVersion: string
                networkInterfaceConfigurations:
                    - auxiliaryMode: string
                      auxiliarySku: string
                      deleteOption: string
                      disableTcpStateTracking: false
                      dnsSettings:
                        dnsServers:
                            - string
                      enableAcceleratedNetworking: false
                      enableFpga: false
                      enableIPForwarding: false
                      ipConfigurations:
                        - applicationGatewayBackendAddressPools:
                            - id: string
                          applicationSecurityGroups:
                            - id: string
                          loadBalancerBackendAddressPools:
                            - id: string
                          loadBalancerInboundNatPools:
                            - id: string
                          name: string
                          primary: false
                          privateIPAddressVersion: string
                          publicIPAddressConfiguration:
                            deleteOption: string
                            dnsSettings:
                                domainNameLabel: string
                                domainNameLabelScope: string
                            idleTimeoutInMinutes: 0
                            ipTags:
                                - ipTagType: string
                                  tag: string
                            name: string
                            publicIPAddressVersion: string
                            publicIPPrefix:
                                id: string
                            sku:
                                name: string
                                tier: string
                          subnet:
                            id: string
                      name: string
                      networkSecurityGroup:
                        id: string
                      primary: false
            osProfile:
                adminPassword: string
                adminUsername: string
                allowExtensionOperations: false
                computerNamePrefix: string
                customData: string
                linuxConfiguration:
                    disablePasswordAuthentication: false
                    enableVMAgentPlatformUpdates: false
                    patchSettings:
                        assessmentMode: string
                        automaticByPlatformSettings:
                            bypassPlatformSafetyChecksOnUserSchedule: false
                            rebootSetting: string
                        patchMode: string
                    provisionVMAgent: false
                    ssh:
                        publicKeys:
                            - keyData: string
                              path: string
                requireGuestProvisionSignal: false
                secrets:
                    - sourceVault:
                        id: string
                      vaultCertificates:
                        - certificateStore: string
                          certificateUrl: string
                windowsConfiguration:
                    additionalUnattendContent:
                        - componentName: Microsoft-Windows-Shell-Setup
                          content: string
                          passName: OobeSystem
                          settingName: AutoLogon
                    enableAutomaticUpdates: false
                    patchSettings:
                        assessmentMode: string
                        automaticByPlatformSettings:
                            bypassPlatformSafetyChecksOnUserSchedule: false
                            rebootSetting: string
                        enableHotpatching: false
                        patchMode: string
                    provisionVMAgent: false
                    timeZone: string
                    winRM:
                        listeners:
                            - certificateUrl: string
                              protocol: Http
            priority: string
            scheduledEventsProfile:
                osImageNotificationProfile:
                    enable: false
                    notBeforeTimeout: string
                terminateNotificationProfile:
                    enable: false
                    notBeforeTimeout: string
            securityPostureReference:
                excludeExtensions:
                    - string
                id: string
                isOverridable: false
            securityProfile:
                encryptionAtHost: false
                encryptionIdentity:
                    userAssignedIdentityResourceId: string
                proxyAgentSettings:
                    enabled: false
                    imds:
                        inVMAccessControlProfileReferenceId: string
                        mode: string
                    keyIncarnationId: 0
                    mode: string
                    wireServer:
                        inVMAccessControlProfileReferenceId: string
                        mode: string
                securityType: string
                uefiSettings:
                    secureBootEnabled: false
                    vTpmEnabled: false
            serviceArtifactReference:
                id: string
            storageProfile:
                dataDisks:
                    - caching: None
                      createOption: string
                      deleteOption: string
                      diskIOPSReadWrite: 0
                      diskMBpsReadWrite: 0
                      diskSizeGB: 0
                      lun: 0
                      managedDisk:
                        diskEncryptionSet:
                            id: string
                        securityProfile:
                            diskEncryptionSet:
                                id: string
                            securityEncryptionType: string
                        storageAccountType: string
                      name: string
                      writeAcceleratorEnabled: false
                diskControllerType: string
                imageReference:
                    communityGalleryImageId: string
                    id: string
                    offer: string
                    publisher: string
                    sharedGalleryImageId: string
                    sku: string
                    version: string
                osDisk:
                    caching: None
                    createOption: string
                    deleteOption: string
                    diffDiskSettings:
                        option: string
                        placement: string
                    diskSizeGB: 0
                    image:
                        uri: string
                    managedDisk:
                        diskEncryptionSet:
                            id: string
                        securityProfile:
                            diskEncryptionSet:
                                id: string
                            securityEncryptionType: string
                        storageAccountType: string
                    name: string
                    osType: Windows
                    vhdContainers:
                        - string
                    writeAcceleratorEnabled: false
            userData: string
        vmScaleSetName: string
        zonalPlatformFaultDomainAlignMode: string
        zoneBalance: false
        zones:
            - string
    

    VirtualMachineScaleSet Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The VirtualMachineScaleSet resource accepts the following input properties:

    ResourceGroupName string
    The name of the resource group.
    AdditionalCapabilities Pulumi.AzureNative.Compute.Inputs.AdditionalCapabilities
    Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type.
    AutomaticRepairsPolicy Pulumi.AzureNative.Compute.Inputs.AutomaticRepairsPolicy
    Policy for automatic repairs.
    ConstrainedMaximumCapacity bool
    Optional property which must either be set to True or omitted.
    DoNotRunExtensionsOnOverprovisionedVMs bool
    When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs.
    ExtendedLocation Pulumi.AzureNative.Compute.Inputs.ExtendedLocation
    The extended location of the Virtual Machine Scale Set.
    HostGroup Pulumi.AzureNative.Compute.Inputs.SubResource
    Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01.
    Identity Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetIdentity
    The identity of the virtual machine scale set, if configured.
    Location string
    Resource location
    OrchestrationMode string | Pulumi.AzureNative.Compute.OrchestrationMode
    Specifies the orchestration mode for the virtual machine scale set.
    Overprovision bool
    Specifies whether the Virtual Machine Scale Set should be overprovisioned.
    Plan Pulumi.AzureNative.Compute.Inputs.Plan
    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.
    PlatformFaultDomainCount int
    Fault Domain count for each placement group.
    PriorityMixPolicy Pulumi.AzureNative.Compute.Inputs.PriorityMixPolicy
    Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance.
    ProximityPlacementGroup Pulumi.AzureNative.Compute.Inputs.SubResource
    Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01.
    ResiliencyPolicy Pulumi.AzureNative.Compute.Inputs.ResiliencyPolicy
    Policy for Resiliency
    ScaleInPolicy Pulumi.AzureNative.Compute.Inputs.ScaleInPolicy
    Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
    ScheduledEventsPolicy Pulumi.AzureNative.Compute.Inputs.ScheduledEventsPolicy
    The ScheduledEventsPolicy.
    SinglePlacementGroup bool
    When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true.
    Sku Pulumi.AzureNative.Compute.Inputs.Sku
    The virtual machine scale set sku.
    SkuProfile Pulumi.AzureNative.Compute.Inputs.SkuProfile
    Specifies the sku profile for the virtual machine scale set.
    SpotRestorePolicy Pulumi.AzureNative.Compute.Inputs.SpotRestorePolicy
    Specifies the Spot Restore properties for the virtual machine scale set.
    Tags Dictionary<string, string>
    Resource tags
    UpgradePolicy Pulumi.AzureNative.Compute.Inputs.UpgradePolicy
    The upgrade policy.
    VirtualMachineProfile Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfile
    The virtual machine profile.
    VmScaleSetName string
    The name of the VM scale set to create or update.
    ZonalPlatformFaultDomainAlignMode string | Pulumi.AzureNative.Compute.ZonalPlatformFaultDomainAlignMode
    Specifies the align mode between Virtual Machine Scale Set compute and storage Fault Domain count.
    ZoneBalance bool
    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.
    Zones List<string>
    The virtual machine scale set zones.
    ResourceGroupName string
    The name of the resource group.
    AdditionalCapabilities AdditionalCapabilitiesArgs
    Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type.
    AutomaticRepairsPolicy AutomaticRepairsPolicyArgs
    Policy for automatic repairs.
    ConstrainedMaximumCapacity bool
    Optional property which must either be set to True or omitted.
    DoNotRunExtensionsOnOverprovisionedVMs bool
    When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs.
    ExtendedLocation ExtendedLocationArgs
    The extended location of the Virtual Machine Scale Set.
    HostGroup SubResourceArgs
    Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01.
    Identity VirtualMachineScaleSetIdentityArgs
    The identity of the virtual machine scale set, if configured.
    Location string
    Resource location
    OrchestrationMode string | OrchestrationMode
    Specifies the orchestration mode for the virtual machine scale set.
    Overprovision bool
    Specifies whether the Virtual Machine Scale Set should be overprovisioned.
    Plan PlanArgs
    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.
    PlatformFaultDomainCount int
    Fault Domain count for each placement group.
    PriorityMixPolicy PriorityMixPolicyArgs
    Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance.
    ProximityPlacementGroup SubResourceArgs
    Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01.
    ResiliencyPolicy ResiliencyPolicyArgs
    Policy for Resiliency
    ScaleInPolicy ScaleInPolicyArgs
    Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
    ScheduledEventsPolicy ScheduledEventsPolicyArgs
    The ScheduledEventsPolicy.
    SinglePlacementGroup bool
    When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true.
    Sku SkuArgs
    The virtual machine scale set sku.
    SkuProfile SkuProfileArgs
    Specifies the sku profile for the virtual machine scale set.
    SpotRestorePolicy SpotRestorePolicyArgs
    Specifies the Spot Restore properties for the virtual machine scale set.
    Tags map[string]string
    Resource tags
    UpgradePolicy UpgradePolicyArgs
    The upgrade policy.
    VirtualMachineProfile VirtualMachineScaleSetVMProfileArgs
    The virtual machine profile.
    VmScaleSetName string
    The name of the VM scale set to create or update.
    ZonalPlatformFaultDomainAlignMode string | ZonalPlatformFaultDomainAlignMode
    Specifies the align mode between Virtual Machine Scale Set compute and storage Fault Domain count.
    ZoneBalance bool
    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.
    Zones []string
    The virtual machine scale set zones.
    resourceGroupName String
    The name of the resource group.
    additionalCapabilities AdditionalCapabilities
    Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type.
    automaticRepairsPolicy AutomaticRepairsPolicy
    Policy for automatic repairs.
    constrainedMaximumCapacity Boolean
    Optional property which must either be set to True or omitted.
    doNotRunExtensionsOnOverprovisionedVMs Boolean
    When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs.
    extendedLocation ExtendedLocation
    The extended location of the Virtual Machine Scale Set.
    hostGroup SubResource
    Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01.
    identity VirtualMachineScaleSetIdentity
    The identity of the virtual machine scale set, if configured.
    location String
    Resource location
    orchestrationMode String | OrchestrationMode
    Specifies the orchestration mode for the virtual machine scale set.
    overprovision Boolean
    Specifies whether the Virtual Machine Scale Set should be overprovisioned.
    plan Plan
    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.
    platformFaultDomainCount Integer
    Fault Domain count for each placement group.
    priorityMixPolicy PriorityMixPolicy
    Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance.
    proximityPlacementGroup SubResource
    Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01.
    resiliencyPolicy ResiliencyPolicy
    Policy for Resiliency
    scaleInPolicy ScaleInPolicy
    Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
    scheduledEventsPolicy ScheduledEventsPolicy
    The ScheduledEventsPolicy.
    singlePlacementGroup Boolean
    When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true.
    sku Sku
    The virtual machine scale set sku.
    skuProfile SkuProfile
    Specifies the sku profile for the virtual machine scale set.
    spotRestorePolicy SpotRestorePolicy
    Specifies the Spot Restore properties for the virtual machine scale set.
    tags Map<String,String>
    Resource tags
    upgradePolicy UpgradePolicy
    The upgrade policy.
    virtualMachineProfile VirtualMachineScaleSetVMProfile
    The virtual machine profile.
    vmScaleSetName String
    The name of the VM scale set to create or update.
    zonalPlatformFaultDomainAlignMode String | ZonalPlatformFaultDomainAlignMode
    Specifies the align mode between Virtual Machine Scale Set compute and storage Fault Domain count.
    zoneBalance Boolean
    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.
    zones List<String>
    The virtual machine scale set zones.
    resourceGroupName string
    The name of the resource group.
    additionalCapabilities AdditionalCapabilities
    Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type.
    automaticRepairsPolicy AutomaticRepairsPolicy
    Policy for automatic repairs.
    constrainedMaximumCapacity boolean
    Optional property which must either be set to True or omitted.
    doNotRunExtensionsOnOverprovisionedVMs boolean
    When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs.
    extendedLocation ExtendedLocation
    The extended location of the Virtual Machine Scale Set.
    hostGroup SubResource
    Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01.
    identity VirtualMachineScaleSetIdentity
    The identity of the virtual machine scale set, if configured.
    location string
    Resource location
    orchestrationMode string | OrchestrationMode
    Specifies the orchestration mode for the virtual machine scale set.
    overprovision boolean
    Specifies whether the Virtual Machine Scale Set should be overprovisioned.
    plan Plan
    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.
    platformFaultDomainCount number
    Fault Domain count for each placement group.
    priorityMixPolicy PriorityMixPolicy
    Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance.
    proximityPlacementGroup SubResource
    Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01.
    resiliencyPolicy ResiliencyPolicy
    Policy for Resiliency
    scaleInPolicy ScaleInPolicy
    Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
    scheduledEventsPolicy ScheduledEventsPolicy
    The ScheduledEventsPolicy.
    singlePlacementGroup boolean
    When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true.
    sku Sku
    The virtual machine scale set sku.
    skuProfile SkuProfile
    Specifies the sku profile for the virtual machine scale set.
    spotRestorePolicy SpotRestorePolicy
    Specifies the Spot Restore properties for the virtual machine scale set.
    tags {[key: string]: string}
    Resource tags
    upgradePolicy UpgradePolicy
    The upgrade policy.
    virtualMachineProfile VirtualMachineScaleSetVMProfile
    The virtual machine profile.
    vmScaleSetName string
    The name of the VM scale set to create or update.
    zonalPlatformFaultDomainAlignMode string | ZonalPlatformFaultDomainAlignMode
    Specifies the align mode between Virtual Machine Scale Set compute and storage Fault Domain count.
    zoneBalance boolean
    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.
    zones string[]
    The virtual machine scale set zones.
    resource_group_name str
    The name of the resource group.
    additional_capabilities AdditionalCapabilitiesArgs
    Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type.
    automatic_repairs_policy AutomaticRepairsPolicyArgs
    Policy for automatic repairs.
    constrained_maximum_capacity bool
    Optional property which must either be set to True or omitted.
    do_not_run_extensions_on_overprovisioned_vms bool
    When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs.
    extended_location ExtendedLocationArgs
    The extended location of the Virtual Machine Scale Set.
    host_group SubResourceArgs
    Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01.
    identity VirtualMachineScaleSetIdentityArgs
    The identity of the virtual machine scale set, if configured.
    location str
    Resource location
    orchestration_mode str | OrchestrationMode
    Specifies the orchestration mode for the virtual machine scale set.
    overprovision bool
    Specifies whether the Virtual Machine Scale Set should be overprovisioned.
    plan PlanArgs
    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.
    platform_fault_domain_count int
    Fault Domain count for each placement group.
    priority_mix_policy PriorityMixPolicyArgs
    Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance.
    proximity_placement_group SubResourceArgs
    Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01.
    resiliency_policy ResiliencyPolicyArgs
    Policy for Resiliency
    scale_in_policy ScaleInPolicyArgs
    Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
    scheduled_events_policy ScheduledEventsPolicyArgs
    The ScheduledEventsPolicy.
    single_placement_group bool
    When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true.
    sku SkuArgs
    The virtual machine scale set sku.
    sku_profile SkuProfileArgs
    Specifies the sku profile for the virtual machine scale set.
    spot_restore_policy SpotRestorePolicyArgs
    Specifies the Spot Restore properties for the virtual machine scale set.
    tags Mapping[str, str]
    Resource tags
    upgrade_policy UpgradePolicyArgs
    The upgrade policy.
    virtual_machine_profile VirtualMachineScaleSetVMProfileArgs
    The virtual machine profile.
    vm_scale_set_name str
    The name of the VM scale set to create or update.
    zonal_platform_fault_domain_align_mode str | ZonalPlatformFaultDomainAlignMode
    Specifies the align mode between Virtual Machine Scale Set compute and storage Fault Domain count.
    zone_balance bool
    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.
    zones Sequence[str]
    The virtual machine scale set zones.
    resourceGroupName String
    The name of the resource group.
    additionalCapabilities Property Map
    Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type.
    automaticRepairsPolicy Property Map
    Policy for automatic repairs.
    constrainedMaximumCapacity Boolean
    Optional property which must either be set to True or omitted.
    doNotRunExtensionsOnOverprovisionedVMs Boolean
    When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs.
    extendedLocation Property Map
    The extended location of the Virtual Machine Scale Set.
    hostGroup Property Map
    Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01.
    identity Property Map
    The identity of the virtual machine scale set, if configured.
    location String
    Resource location
    orchestrationMode String | "Uniform" | "Flexible"
    Specifies the orchestration mode for the virtual machine scale set.
    overprovision Boolean
    Specifies whether the Virtual Machine Scale Set should be overprovisioned.
    plan Property Map
    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.
    platformFaultDomainCount Number
    Fault Domain count for each placement group.
    priorityMixPolicy Property Map
    Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance.
    proximityPlacementGroup Property Map
    Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01.
    resiliencyPolicy Property Map
    Policy for Resiliency
    scaleInPolicy Property Map
    Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
    scheduledEventsPolicy Property Map
    The ScheduledEventsPolicy.
    singlePlacementGroup Boolean
    When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true.
    sku Property Map
    The virtual machine scale set sku.
    skuProfile Property Map
    Specifies the sku profile for the virtual machine scale set.
    spotRestorePolicy Property Map
    Specifies the Spot Restore properties for the virtual machine scale set.
    tags Map<String>
    Resource tags
    upgradePolicy Property Map
    The upgrade policy.
    virtualMachineProfile Property Map
    The virtual machine profile.
    vmScaleSetName String
    The name of the VM scale set to create or update.
    zonalPlatformFaultDomainAlignMode String | "Aligned" | "Unaligned"
    Specifies the align mode between Virtual Machine Scale Set compute and storage Fault Domain count.
    zoneBalance Boolean
    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.
    zones List<String>
    The virtual machine scale set zones.

    Outputs

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

    AzureApiVersion string
    The Azure API version of the resource.
    Etag string
    Etag is property returned in Create/Update/Get response of the VMSS, so that customer can supply it in the header to ensure optimistic updates
    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    Resource name
    ProvisioningState string
    The provisioning state, which only appears in the response.
    TimeCreated string
    Specifies the time at which the Virtual Machine Scale Set resource was created. Minimum api-version: 2021-11-01.
    Type string
    Resource type
    UniqueId string
    Specifies the ID which uniquely identifies a Virtual Machine Scale Set.
    AzureApiVersion string
    The Azure API version of the resource.
    Etag string
    Etag is property returned in Create/Update/Get response of the VMSS, so that customer can supply it in the header to ensure optimistic updates
    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    Resource name
    ProvisioningState string
    The provisioning state, which only appears in the response.
    TimeCreated string
    Specifies the time at which the Virtual Machine Scale Set resource was created. Minimum api-version: 2021-11-01.
    Type string
    Resource type
    UniqueId string
    Specifies the ID which uniquely identifies a Virtual Machine Scale Set.
    azureApiVersion String
    The Azure API version of the resource.
    etag String
    Etag is property returned in Create/Update/Get response of the VMSS, so that customer can supply it in the header to ensure optimistic updates
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    Resource name
    provisioningState String
    The provisioning state, which only appears in the response.
    timeCreated String
    Specifies the time at which the Virtual Machine Scale Set resource was created. Minimum api-version: 2021-11-01.
    type String
    Resource type
    uniqueId String
    Specifies the ID which uniquely identifies a Virtual Machine Scale Set.
    azureApiVersion string
    The Azure API version of the resource.
    etag string
    Etag is property returned in Create/Update/Get response of the VMSS, so that customer can supply it in the header to ensure optimistic updates
    id string
    The provider-assigned unique ID for this managed resource.
    name string
    Resource name
    provisioningState string
    The provisioning state, which only appears in the response.
    timeCreated string
    Specifies the time at which the Virtual Machine Scale Set resource was created. Minimum api-version: 2021-11-01.
    type string
    Resource type
    uniqueId string
    Specifies the ID which uniquely identifies a Virtual Machine Scale Set.
    azure_api_version str
    The Azure API version of the resource.
    etag str
    Etag is property returned in Create/Update/Get response of the VMSS, so that customer can supply it in the header to ensure optimistic updates
    id str
    The provider-assigned unique ID for this managed resource.
    name str
    Resource name
    provisioning_state str
    The provisioning state, which only appears in the response.
    time_created str
    Specifies the time at which the Virtual Machine Scale Set resource was created. Minimum api-version: 2021-11-01.
    type str
    Resource type
    unique_id str
    Specifies the ID which uniquely identifies a Virtual Machine Scale Set.
    azureApiVersion String
    The Azure API version of the resource.
    etag String
    Etag is property returned in Create/Update/Get response of the VMSS, so that customer can supply it in the header to ensure optimistic updates
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    Resource name
    provisioningState String
    The provisioning state, which only appears in the response.
    timeCreated String
    Specifies the time at which the Virtual Machine Scale Set resource was created. Minimum api-version: 2021-11-01.
    type String
    Resource type
    uniqueId String
    Specifies the ID which uniquely identifies a Virtual Machine Scale Set.

    Supporting Types

    AdditionalCapabilities, AdditionalCapabilitiesArgs

    HibernationEnabled bool
    The flag that enables or disables hibernation capability on the VM.
    UltraSSDEnabled bool
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    HibernationEnabled bool
    The flag that enables or disables hibernation capability on the VM.
    UltraSSDEnabled bool
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernationEnabled Boolean
    The flag that enables or disables hibernation capability on the VM.
    ultraSSDEnabled Boolean
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernationEnabled boolean
    The flag that enables or disables hibernation capability on the VM.
    ultraSSDEnabled boolean
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernation_enabled bool
    The flag that enables or disables hibernation capability on the VM.
    ultra_ssd_enabled bool
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernationEnabled Boolean
    The flag that enables or disables hibernation capability on the VM.
    ultraSSDEnabled Boolean
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.

    AdditionalCapabilitiesResponse, AdditionalCapabilitiesResponseArgs

    HibernationEnabled bool
    The flag that enables or disables hibernation capability on the VM.
    UltraSSDEnabled bool
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    HibernationEnabled bool
    The flag that enables or disables hibernation capability on the VM.
    UltraSSDEnabled bool
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernationEnabled Boolean
    The flag that enables or disables hibernation capability on the VM.
    ultraSSDEnabled Boolean
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernationEnabled boolean
    The flag that enables or disables hibernation capability on the VM.
    ultraSSDEnabled boolean
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernation_enabled bool
    The flag that enables or disables hibernation capability on the VM.
    ultra_ssd_enabled bool
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
    hibernationEnabled Boolean
    The flag that enables or disables hibernation capability on the VM.
    ultraSSDEnabled Boolean
    The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.

    AdditionalUnattendContent, AdditionalUnattendContentArgs

    ComponentName Pulumi.AzureNative.Compute.ComponentNames
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    Content string
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    PassName Pulumi.AzureNative.Compute.PassNames
    The pass name. Currently, the only allowable value is OobeSystem.
    SettingName Pulumi.AzureNative.Compute.SettingNames
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    ComponentName ComponentNames
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    Content string
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    PassName PassNames
    The pass name. Currently, the only allowable value is OobeSystem.
    SettingName SettingNames
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    componentName ComponentNames
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content String
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    passName PassNames
    The pass name. Currently, the only allowable value is OobeSystem.
    settingName SettingNames
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    componentName ComponentNames
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content string
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    passName PassNames
    The pass name. Currently, the only allowable value is OobeSystem.
    settingName SettingNames
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    component_name ComponentNames
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content str
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    pass_name PassNames
    The pass name. Currently, the only allowable value is OobeSystem.
    setting_name SettingNames
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    componentName "Microsoft-Windows-Shell-Setup"
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content String
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    passName "OobeSystem"
    The pass name. Currently, the only allowable value is OobeSystem.
    settingName "AutoLogon" | "FirstLogonCommands"
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.

    AdditionalUnattendContentResponse, AdditionalUnattendContentResponseArgs

    ComponentName string
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    Content string
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    PassName string
    The pass name. Currently, the only allowable value is OobeSystem.
    SettingName string
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    ComponentName string
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    Content string
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    PassName string
    The pass name. Currently, the only allowable value is OobeSystem.
    SettingName string
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    componentName String
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content String
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    passName String
    The pass name. Currently, the only allowable value is OobeSystem.
    settingName String
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    componentName string
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content string
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    passName string
    The pass name. Currently, the only allowable value is OobeSystem.
    settingName string
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    component_name str
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content str
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    pass_name str
    The pass name. Currently, the only allowable value is OobeSystem.
    setting_name str
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.
    componentName String
    The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
    content String
    Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
    passName String
    The pass name. Currently, the only allowable value is OobeSystem.
    settingName String
    Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.

    AllocationStrategy, AllocationStrategyArgs

    LowestPrice
    LowestPrice
    CapacityOptimized
    CapacityOptimized
    Prioritized
    Prioritized
    AllocationStrategyLowestPrice
    LowestPrice
    AllocationStrategyCapacityOptimized
    CapacityOptimized
    AllocationStrategyPrioritized
    Prioritized
    LowestPrice
    LowestPrice
    CapacityOptimized
    CapacityOptimized
    Prioritized
    Prioritized
    LowestPrice
    LowestPrice
    CapacityOptimized
    CapacityOptimized
    Prioritized
    Prioritized
    LOWEST_PRICE
    LowestPrice
    CAPACITY_OPTIMIZED
    CapacityOptimized
    PRIORITIZED
    Prioritized
    "LowestPrice"
    LowestPrice
    "CapacityOptimized"
    CapacityOptimized
    "Prioritized"
    Prioritized

    ApiEntityReference, ApiEntityReferenceArgs

    Id string
    The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
    Id string
    The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
    id String
    The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
    id string
    The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
    id str
    The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
    id String
    The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...

    ApiEntityReferenceResponse, ApiEntityReferenceResponseArgs

    Id string
    The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
    Id string
    The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
    id String
    The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
    id string
    The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
    id str
    The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
    id String
    The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...

    ApplicationProfile, ApplicationProfileArgs

    GalleryApplications List<Pulumi.AzureNative.Compute.Inputs.VMGalleryApplication>
    Specifies the gallery applications that should be made available to the VM/VMSS
    GalleryApplications []VMGalleryApplication
    Specifies the gallery applications that should be made available to the VM/VMSS
    galleryApplications List<VMGalleryApplication>
    Specifies the gallery applications that should be made available to the VM/VMSS
    galleryApplications VMGalleryApplication[]
    Specifies the gallery applications that should be made available to the VM/VMSS
    gallery_applications Sequence[VMGalleryApplication]
    Specifies the gallery applications that should be made available to the VM/VMSS
    galleryApplications List<Property Map>
    Specifies the gallery applications that should be made available to the VM/VMSS

    ApplicationProfileResponse, ApplicationProfileResponseArgs

    GalleryApplications List<Pulumi.AzureNative.Compute.Inputs.VMGalleryApplicationResponse>
    Specifies the gallery applications that should be made available to the VM/VMSS
    GalleryApplications []VMGalleryApplicationResponse
    Specifies the gallery applications that should be made available to the VM/VMSS
    galleryApplications List<VMGalleryApplicationResponse>
    Specifies the gallery applications that should be made available to the VM/VMSS
    galleryApplications VMGalleryApplicationResponse[]
    Specifies the gallery applications that should be made available to the VM/VMSS
    gallery_applications Sequence[VMGalleryApplicationResponse]
    Specifies the gallery applications that should be made available to the VM/VMSS
    galleryApplications List<Property Map>
    Specifies the gallery applications that should be made available to the VM/VMSS

    AutomaticOSUpgradePolicy, AutomaticOSUpgradePolicyArgs

    DisableAutomaticRollback bool
    Whether OS image rollback feature should be disabled. Default value is false.
    EnableAutomaticOSUpgrade bool
    Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, enableAutomaticUpdates is automatically set to false and cannot be set to true.
    OsRollingUpgradeDeferral bool
    Indicates whether Auto OS Upgrade should undergo deferral. Deferred OS upgrades will send advanced notifications on a per-VM basis that an OS upgrade from rolling upgrades is incoming, via the IMDS tag 'Platform.PendingOSUpgrade'. The upgrade then defers until the upgrade is approved via an ApproveRollingUpgrade call.
    UseRollingUpgradePolicy bool
    Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
    DisableAutomaticRollback bool
    Whether OS image rollback feature should be disabled. Default value is false.
    EnableAutomaticOSUpgrade bool
    Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, enableAutomaticUpdates is automatically set to false and cannot be set to true.
    OsRollingUpgradeDeferral bool
    Indicates whether Auto OS Upgrade should undergo deferral. Deferred OS upgrades will send advanced notifications on a per-VM basis that an OS upgrade from rolling upgrades is incoming, via the IMDS tag 'Platform.PendingOSUpgrade'. The upgrade then defers until the upgrade is approved via an ApproveRollingUpgrade call.
    UseRollingUpgradePolicy bool
    Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
    disableAutomaticRollback Boolean
    Whether OS image rollback feature should be disabled. Default value is false.
    enableAutomaticOSUpgrade Boolean
    Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, enableAutomaticUpdates is automatically set to false and cannot be set to true.
    osRollingUpgradeDeferral Boolean
    Indicates whether Auto OS Upgrade should undergo deferral. Deferred OS upgrades will send advanced notifications on a per-VM basis that an OS upgrade from rolling upgrades is incoming, via the IMDS tag 'Platform.PendingOSUpgrade'. The upgrade then defers until the upgrade is approved via an ApproveRollingUpgrade call.
    useRollingUpgradePolicy Boolean
    Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
    disableAutomaticRollback boolean
    Whether OS image rollback feature should be disabled. Default value is false.
    enableAutomaticOSUpgrade boolean
    Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, enableAutomaticUpdates is automatically set to false and cannot be set to true.
    osRollingUpgradeDeferral boolean
    Indicates whether Auto OS Upgrade should undergo deferral. Deferred OS upgrades will send advanced notifications on a per-VM basis that an OS upgrade from rolling upgrades is incoming, via the IMDS tag 'Platform.PendingOSUpgrade'. The upgrade then defers until the upgrade is approved via an ApproveRollingUpgrade call.
    useRollingUpgradePolicy boolean
    Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
    disable_automatic_rollback bool
    Whether OS image rollback feature should be disabled. Default value is false.
    enable_automatic_os_upgrade bool
    Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, enableAutomaticUpdates is automatically set to false and cannot be set to true.
    os_rolling_upgrade_deferral bool
    Indicates whether Auto OS Upgrade should undergo deferral. Deferred OS upgrades will send advanced notifications on a per-VM basis that an OS upgrade from rolling upgrades is incoming, via the IMDS tag 'Platform.PendingOSUpgrade'. The upgrade then defers until the upgrade is approved via an ApproveRollingUpgrade call.
    use_rolling_upgrade_policy bool
    Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
    disableAutomaticRollback Boolean
    Whether OS image rollback feature should be disabled. Default value is false.
    enableAutomaticOSUpgrade Boolean
    Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, enableAutomaticUpdates is automatically set to false and cannot be set to true.
    osRollingUpgradeDeferral Boolean
    Indicates whether Auto OS Upgrade should undergo deferral. Deferred OS upgrades will send advanced notifications on a per-VM basis that an OS upgrade from rolling upgrades is incoming, via the IMDS tag 'Platform.PendingOSUpgrade'. The upgrade then defers until the upgrade is approved via an ApproveRollingUpgrade call.
    useRollingUpgradePolicy Boolean
    Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.

    AutomaticOSUpgradePolicyResponse, AutomaticOSUpgradePolicyResponseArgs

    DisableAutomaticRollback bool
    Whether OS image rollback feature should be disabled. Default value is false.
    EnableAutomaticOSUpgrade bool
    Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, enableAutomaticUpdates is automatically set to false and cannot be set to true.
    OsRollingUpgradeDeferral bool
    Indicates whether Auto OS Upgrade should undergo deferral. Deferred OS upgrades will send advanced notifications on a per-VM basis that an OS upgrade from rolling upgrades is incoming, via the IMDS tag 'Platform.PendingOSUpgrade'. The upgrade then defers until the upgrade is approved via an ApproveRollingUpgrade call.
    UseRollingUpgradePolicy bool
    Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
    DisableAutomaticRollback bool
    Whether OS image rollback feature should be disabled. Default value is false.
    EnableAutomaticOSUpgrade bool
    Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, enableAutomaticUpdates is automatically set to false and cannot be set to true.
    OsRollingUpgradeDeferral bool
    Indicates whether Auto OS Upgrade should undergo deferral. Deferred OS upgrades will send advanced notifications on a per-VM basis that an OS upgrade from rolling upgrades is incoming, via the IMDS tag 'Platform.PendingOSUpgrade'. The upgrade then defers until the upgrade is approved via an ApproveRollingUpgrade call.
    UseRollingUpgradePolicy bool
    Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
    disableAutomaticRollback Boolean
    Whether OS image rollback feature should be disabled. Default value is false.
    enableAutomaticOSUpgrade Boolean
    Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, enableAutomaticUpdates is automatically set to false and cannot be set to true.
    osRollingUpgradeDeferral Boolean
    Indicates whether Auto OS Upgrade should undergo deferral. Deferred OS upgrades will send advanced notifications on a per-VM basis that an OS upgrade from rolling upgrades is incoming, via the IMDS tag 'Platform.PendingOSUpgrade'. The upgrade then defers until the upgrade is approved via an ApproveRollingUpgrade call.
    useRollingUpgradePolicy Boolean
    Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
    disableAutomaticRollback boolean
    Whether OS image rollback feature should be disabled. Default value is false.
    enableAutomaticOSUpgrade boolean
    Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, enableAutomaticUpdates is automatically set to false and cannot be set to true.
    osRollingUpgradeDeferral boolean
    Indicates whether Auto OS Upgrade should undergo deferral. Deferred OS upgrades will send advanced notifications on a per-VM basis that an OS upgrade from rolling upgrades is incoming, via the IMDS tag 'Platform.PendingOSUpgrade'. The upgrade then defers until the upgrade is approved via an ApproveRollingUpgrade call.
    useRollingUpgradePolicy boolean
    Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
    disable_automatic_rollback bool
    Whether OS image rollback feature should be disabled. Default value is false.
    enable_automatic_os_upgrade bool
    Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, enableAutomaticUpdates is automatically set to false and cannot be set to true.
    os_rolling_upgrade_deferral bool
    Indicates whether Auto OS Upgrade should undergo deferral. Deferred OS upgrades will send advanced notifications on a per-VM basis that an OS upgrade from rolling upgrades is incoming, via the IMDS tag 'Platform.PendingOSUpgrade'. The upgrade then defers until the upgrade is approved via an ApproveRollingUpgrade call.
    use_rolling_upgrade_policy bool
    Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.
    disableAutomaticRollback Boolean
    Whether OS image rollback feature should be disabled. Default value is false.
    enableAutomaticOSUpgrade Boolean
    Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, enableAutomaticUpdates is automatically set to false and cannot be set to true.
    osRollingUpgradeDeferral Boolean
    Indicates whether Auto OS Upgrade should undergo deferral. Deferred OS upgrades will send advanced notifications on a per-VM basis that an OS upgrade from rolling upgrades is incoming, via the IMDS tag 'Platform.PendingOSUpgrade'. The upgrade then defers until the upgrade is approved via an ApproveRollingUpgrade call.
    useRollingUpgradePolicy Boolean
    Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS.

    AutomaticRepairsPolicy, AutomaticRepairsPolicyArgs

    Enabled bool
    Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false.
    GracePeriod string
    The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M).
    RepairAction string | Pulumi.AzureNative.Compute.RepairAction
    Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace.
    Enabled bool
    Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false.
    GracePeriod string
    The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M).
    RepairAction string | RepairAction
    Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace.
    enabled Boolean
    Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false.
    gracePeriod String
    The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M).
    repairAction String | RepairAction
    Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace.
    enabled boolean
    Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false.
    gracePeriod string
    The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M).
    repairAction string | RepairAction
    Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace.
    enabled bool
    Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false.
    grace_period str
    The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M).
    repair_action str | RepairAction
    Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace.
    enabled Boolean
    Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false.
    gracePeriod String
    The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M).
    repairAction String | "Replace" | "Restart" | "Reimage"
    Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace.

    AutomaticRepairsPolicyResponse, AutomaticRepairsPolicyResponseArgs

    Enabled bool
    Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false.
    GracePeriod string
    The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M).
    RepairAction string
    Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace.
    Enabled bool
    Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false.
    GracePeriod string
    The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M).
    RepairAction string
    Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace.
    enabled Boolean
    Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false.
    gracePeriod String
    The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M).
    repairAction String
    Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace.
    enabled boolean
    Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false.
    gracePeriod string
    The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M).
    repairAction string
    Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace.
    enabled bool
    Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false.
    grace_period str
    The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M).
    repair_action str
    Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace.
    enabled Boolean
    Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false.
    gracePeriod String
    The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M).
    repairAction String
    Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace.

    AutomaticZoneRebalancingPolicy, AutomaticZoneRebalancingPolicyArgs

    Enabled bool
    Specifies whether Automatic AZ Balancing should be enabled on the virtual machine scale set. The default value is false.
    RebalanceBehavior string | Pulumi.AzureNative.Compute.RebalanceBehavior
    Type of rebalance behavior that will be used for recreating virtual machines in the scale set across availability zones. Default and only supported value for now is CreateBeforeDelete.
    RebalanceStrategy string | Pulumi.AzureNative.Compute.RebalanceStrategy
    Type of rebalance strategy that will be used for rebalancing virtual machines in the scale set across availability zones. Default and only supported value for now is Recreate.
    Enabled bool
    Specifies whether Automatic AZ Balancing should be enabled on the virtual machine scale set. The default value is false.
    RebalanceBehavior string | RebalanceBehavior
    Type of rebalance behavior that will be used for recreating virtual machines in the scale set across availability zones. Default and only supported value for now is CreateBeforeDelete.
    RebalanceStrategy string | RebalanceStrategy
    Type of rebalance strategy that will be used for rebalancing virtual machines in the scale set across availability zones. Default and only supported value for now is Recreate.
    enabled Boolean
    Specifies whether Automatic AZ Balancing should be enabled on the virtual machine scale set. The default value is false.
    rebalanceBehavior String | RebalanceBehavior
    Type of rebalance behavior that will be used for recreating virtual machines in the scale set across availability zones. Default and only supported value for now is CreateBeforeDelete.
    rebalanceStrategy String | RebalanceStrategy
    Type of rebalance strategy that will be used for rebalancing virtual machines in the scale set across availability zones. Default and only supported value for now is Recreate.
    enabled boolean
    Specifies whether Automatic AZ Balancing should be enabled on the virtual machine scale set. The default value is false.
    rebalanceBehavior string | RebalanceBehavior
    Type of rebalance behavior that will be used for recreating virtual machines in the scale set across availability zones. Default and only supported value for now is CreateBeforeDelete.
    rebalanceStrategy string | RebalanceStrategy
    Type of rebalance strategy that will be used for rebalancing virtual machines in the scale set across availability zones. Default and only supported value for now is Recreate.
    enabled bool
    Specifies whether Automatic AZ Balancing should be enabled on the virtual machine scale set. The default value is false.
    rebalance_behavior str | RebalanceBehavior
    Type of rebalance behavior that will be used for recreating virtual machines in the scale set across availability zones. Default and only supported value for now is CreateBeforeDelete.
    rebalance_strategy str | RebalanceStrategy
    Type of rebalance strategy that will be used for rebalancing virtual machines in the scale set across availability zones. Default and only supported value for now is Recreate.
    enabled Boolean
    Specifies whether Automatic AZ Balancing should be enabled on the virtual machine scale set. The default value is false.
    rebalanceBehavior String | "CreateBeforeDelete"
    Type of rebalance behavior that will be used for recreating virtual machines in the scale set across availability zones. Default and only supported value for now is CreateBeforeDelete.
    rebalanceStrategy String | "Recreate"
    Type of rebalance strategy that will be used for rebalancing virtual machines in the scale set across availability zones. Default and only supported value for now is Recreate.

    AutomaticZoneRebalancingPolicyResponse, AutomaticZoneRebalancingPolicyResponseArgs

    Enabled bool
    Specifies whether Automatic AZ Balancing should be enabled on the virtual machine scale set. The default value is false.
    RebalanceBehavior string
    Type of rebalance behavior that will be used for recreating virtual machines in the scale set across availability zones. Default and only supported value for now is CreateBeforeDelete.
    RebalanceStrategy string
    Type of rebalance strategy that will be used for rebalancing virtual machines in the scale set across availability zones. Default and only supported value for now is Recreate.
    Enabled bool
    Specifies whether Automatic AZ Balancing should be enabled on the virtual machine scale set. The default value is false.
    RebalanceBehavior string
    Type of rebalance behavior that will be used for recreating virtual machines in the scale set across availability zones. Default and only supported value for now is CreateBeforeDelete.
    RebalanceStrategy string
    Type of rebalance strategy that will be used for rebalancing virtual machines in the scale set across availability zones. Default and only supported value for now is Recreate.
    enabled Boolean
    Specifies whether Automatic AZ Balancing should be enabled on the virtual machine scale set. The default value is false.
    rebalanceBehavior String
    Type of rebalance behavior that will be used for recreating virtual machines in the scale set across availability zones. Default and only supported value for now is CreateBeforeDelete.
    rebalanceStrategy String
    Type of rebalance strategy that will be used for rebalancing virtual machines in the scale set across availability zones. Default and only supported value for now is Recreate.
    enabled boolean
    Specifies whether Automatic AZ Balancing should be enabled on the virtual machine scale set. The default value is false.
    rebalanceBehavior string
    Type of rebalance behavior that will be used for recreating virtual machines in the scale set across availability zones. Default and only supported value for now is CreateBeforeDelete.
    rebalanceStrategy string
    Type of rebalance strategy that will be used for rebalancing virtual machines in the scale set across availability zones. Default and only supported value for now is Recreate.
    enabled bool
    Specifies whether Automatic AZ Balancing should be enabled on the virtual machine scale set. The default value is false.
    rebalance_behavior str
    Type of rebalance behavior that will be used for recreating virtual machines in the scale set across availability zones. Default and only supported value for now is CreateBeforeDelete.
    rebalance_strategy str
    Type of rebalance strategy that will be used for rebalancing virtual machines in the scale set across availability zones. Default and only supported value for now is Recreate.
    enabled Boolean
    Specifies whether Automatic AZ Balancing should be enabled on the virtual machine scale set. The default value is false.
    rebalanceBehavior String
    Type of rebalance behavior that will be used for recreating virtual machines in the scale set across availability zones. Default and only supported value for now is CreateBeforeDelete.
    rebalanceStrategy String
    Type of rebalance strategy that will be used for rebalancing virtual machines in the scale set across availability zones. Default and only supported value for now is Recreate.

    BillingProfile, BillingProfileArgs

    MaxPrice double
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    MaxPrice float64
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    maxPrice Double
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    maxPrice number
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    max_price float
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    maxPrice Number
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.

    BillingProfileResponse, BillingProfileResponseArgs

    MaxPrice double
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    MaxPrice float64
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    maxPrice Double
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    maxPrice number
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    max_price float
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.
    maxPrice Number
    Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price. The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. Possible values are: - Any decimal value greater than zero. Example: 0.01538 -1 – indicates default price to be up-to on-demand. You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. Minimum api-version: 2019-03-01.

    BootDiagnostics, BootDiagnosticsArgs

    Enabled bool
    Whether boot diagnostics should be enabled on the Virtual Machine.
    StorageUri string
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    Enabled bool
    Whether boot diagnostics should be enabled on the Virtual Machine.
    StorageUri string
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled Boolean
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storageUri String
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled boolean
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storageUri string
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled bool
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storage_uri str
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled Boolean
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storageUri String
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.

    BootDiagnosticsResponse, BootDiagnosticsResponseArgs

    Enabled bool
    Whether boot diagnostics should be enabled on the Virtual Machine.
    StorageUri string
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    Enabled bool
    Whether boot diagnostics should be enabled on the Virtual Machine.
    StorageUri string
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled Boolean
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storageUri String
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled boolean
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storageUri string
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled bool
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storage_uri str
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
    enabled Boolean
    Whether boot diagnostics should be enabled on the Virtual Machine.
    storageUri String
    Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.

    CachingTypes, CachingTypesArgs

    None
    None
    ReadOnly
    ReadOnly
    ReadWrite
    ReadWrite
    CachingTypesNone
    None
    CachingTypesReadOnly
    ReadOnly
    CachingTypesReadWrite
    ReadWrite
    None
    None
    ReadOnly
    ReadOnly
    ReadWrite
    ReadWrite
    None
    None
    ReadOnly
    ReadOnly
    ReadWrite
    ReadWrite
    NONE
    None
    READ_ONLY
    ReadOnly
    READ_WRITE
    ReadWrite
    "None"
    None
    "ReadOnly"
    ReadOnly
    "ReadWrite"
    ReadWrite

    CapacityReservationProfile, CapacityReservationProfileArgs

    CapacityReservationGroup Pulumi.AzureNative.Compute.Inputs.SubResource
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    CapacityReservationGroup SubResource
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacityReservationGroup SubResource
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacityReservationGroup SubResource
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacity_reservation_group SubResource
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacityReservationGroup Property Map
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.

    CapacityReservationProfileResponse, CapacityReservationProfileResponseArgs

    CapacityReservationGroup Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    CapacityReservationGroup SubResourceResponse
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacityReservationGroup SubResourceResponse
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacityReservationGroup SubResourceResponse
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacity_reservation_group SubResourceResponse
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.
    capacityReservationGroup Property Map
    Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details.

    ComponentNames, ComponentNamesArgs

    Microsoft_Windows_Shell_Setup
    Microsoft-Windows-Shell-Setup
    ComponentNames_Microsoft_Windows_Shell_Setup
    Microsoft-Windows-Shell-Setup
    MicrosoftWindowsShellSetup
    Microsoft-Windows-Shell-Setup
    Microsoft_Windows_Shell_Setup
    Microsoft-Windows-Shell-Setup
    MICROSOFT_WINDOWS_SHELL_SETUP
    Microsoft-Windows-Shell-Setup
    "Microsoft-Windows-Shell-Setup"
    Microsoft-Windows-Shell-Setup

    DeleteOptions, DeleteOptionsArgs

    Delete
    Delete
    Detach
    Detach
    DeleteOptionsDelete
    Delete
    DeleteOptionsDetach
    Detach
    Delete
    Delete
    Detach
    Detach
    Delete
    Delete
    Detach
    Detach
    DELETE
    Delete
    DETACH
    Detach
    "Delete"
    Delete
    "Detach"
    Detach

    DiagnosticsProfile, DiagnosticsProfileArgs

    BootDiagnostics Pulumi.AzureNative.Compute.Inputs.BootDiagnostics
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    BootDiagnostics BootDiagnostics
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    bootDiagnostics BootDiagnostics
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    bootDiagnostics BootDiagnostics
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    boot_diagnostics BootDiagnostics
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    bootDiagnostics Property Map
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.

    DiagnosticsProfileResponse, DiagnosticsProfileResponseArgs

    BootDiagnostics Pulumi.AzureNative.Compute.Inputs.BootDiagnosticsResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    BootDiagnostics BootDiagnosticsResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    bootDiagnostics BootDiagnosticsResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    bootDiagnostics BootDiagnosticsResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    boot_diagnostics BootDiagnosticsResponse
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
    bootDiagnostics Property Map
    Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. NOTE: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.

    DiffDiskOptions, DiffDiskOptionsArgs

    Local
    Local
    DiffDiskOptionsLocal
    Local
    Local
    Local
    Local
    Local
    LOCAL
    Local
    "Local"
    Local

    DiffDiskPlacement, DiffDiskPlacementArgs

    CacheDisk
    CacheDisk
    ResourceDisk
    ResourceDisk
    NvmeDisk
    NvmeDisk
    DiffDiskPlacementCacheDisk
    CacheDisk
    DiffDiskPlacementResourceDisk
    ResourceDisk
    DiffDiskPlacementNvmeDisk
    NvmeDisk
    CacheDisk
    CacheDisk
    ResourceDisk
    ResourceDisk
    NvmeDisk
    NvmeDisk
    CacheDisk
    CacheDisk
    ResourceDisk
    ResourceDisk
    NvmeDisk
    NvmeDisk
    CACHE_DISK
    CacheDisk
    RESOURCE_DISK
    ResourceDisk
    NVME_DISK
    NvmeDisk
    "CacheDisk"
    CacheDisk
    "ResourceDisk"
    ResourceDisk
    "NvmeDisk"
    NvmeDisk

    DiffDiskSettings, DiffDiskSettingsArgs

    Option string | Pulumi.AzureNative.Compute.DiffDiskOptions
    Specifies the ephemeral disk settings for operating system disk.
    Placement string | Pulumi.AzureNative.Compute.DiffDiskPlacement
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk, NvmeDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk or NvmeDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Minimum api-version for NvmeDisk: 2024-03-01.
    Option string | DiffDiskOptions
    Specifies the ephemeral disk settings for operating system disk.
    Placement string | DiffDiskPlacement
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk, NvmeDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk or NvmeDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Minimum api-version for NvmeDisk: 2024-03-01.
    option String | DiffDiskOptions
    Specifies the ephemeral disk settings for operating system disk.
    placement String | DiffDiskPlacement
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk, NvmeDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk or NvmeDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Minimum api-version for NvmeDisk: 2024-03-01.
    option string | DiffDiskOptions
    Specifies the ephemeral disk settings for operating system disk.
    placement string | DiffDiskPlacement
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk, NvmeDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk or NvmeDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Minimum api-version for NvmeDisk: 2024-03-01.
    option str | DiffDiskOptions
    Specifies the ephemeral disk settings for operating system disk.
    placement str | DiffDiskPlacement
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk, NvmeDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk or NvmeDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Minimum api-version for NvmeDisk: 2024-03-01.
    option String | "Local"
    Specifies the ephemeral disk settings for operating system disk.
    placement String | "CacheDisk" | "ResourceDisk" | "NvmeDisk"
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk, NvmeDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk or NvmeDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Minimum api-version for NvmeDisk: 2024-03-01.

    DiffDiskSettingsResponse, DiffDiskSettingsResponseArgs

    Option string
    Specifies the ephemeral disk settings for operating system disk.
    Placement string
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk, NvmeDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk or NvmeDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Minimum api-version for NvmeDisk: 2024-03-01.
    Option string
    Specifies the ephemeral disk settings for operating system disk.
    Placement string
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk, NvmeDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk or NvmeDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Minimum api-version for NvmeDisk: 2024-03-01.
    option String
    Specifies the ephemeral disk settings for operating system disk.
    placement String
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk, NvmeDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk or NvmeDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Minimum api-version for NvmeDisk: 2024-03-01.
    option string
    Specifies the ephemeral disk settings for operating system disk.
    placement string
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk, NvmeDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk or NvmeDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Minimum api-version for NvmeDisk: 2024-03-01.
    option str
    Specifies the ephemeral disk settings for operating system disk.
    placement str
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk, NvmeDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk or NvmeDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Minimum api-version for NvmeDisk: 2024-03-01.
    option String
    Specifies the ephemeral disk settings for operating system disk.
    placement String
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk, NvmeDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk or NvmeDisk is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Minimum api-version for NvmeDisk: 2024-03-01.

    DiskCreateOptionTypes, DiskCreateOptionTypesArgs

    FromImage
    FromImage
    Empty
    Empty
    Attach
    Attach
    Copy
    Copy
    Restore
    Restore
    DiskCreateOptionTypesFromImage
    FromImage
    DiskCreateOptionTypesEmpty
    Empty
    DiskCreateOptionTypesAttach
    Attach
    DiskCreateOptionTypesCopy
    Copy
    DiskCreateOptionTypesRestore
    Restore
    FromImage
    FromImage
    Empty
    Empty
    Attach
    Attach
    Copy
    Copy
    Restore
    Restore
    FromImage
    FromImage
    Empty
    Empty
    Attach
    Attach
    Copy
    Copy
    Restore
    Restore
    FROM_IMAGE
    FromImage
    EMPTY
    Empty
    ATTACH
    Attach
    COPY
    Copy
    RESTORE
    Restore
    "FromImage"
    FromImage
    "Empty"
    Empty
    "Attach"
    Attach
    "Copy"
    Copy
    "Restore"
    Restore

    DiskDeleteOptionTypes, DiskDeleteOptionTypesArgs

    Delete
    Delete
    Detach
    Detach
    DiskDeleteOptionTypesDelete
    Delete
    DiskDeleteOptionTypesDetach
    Detach
    Delete
    Delete
    Detach
    Detach
    Delete
    Delete
    Detach
    Detach
    DELETE
    Delete
    DETACH
    Detach
    "Delete"
    Delete
    "Detach"
    Detach

    DiskEncryptionSetParameters, DiskEncryptionSetParametersArgs

    Id string
    Resource Id
    Id string
    Resource Id
    id String
    Resource Id
    id string
    Resource Id
    id str
    Resource Id
    id String
    Resource Id

    DiskEncryptionSetParametersResponse, DiskEncryptionSetParametersResponseArgs

    Id string
    Resource Id
    Id string
    Resource Id
    id String
    Resource Id
    id string
    Resource Id
    id str
    Resource Id
    id String
    Resource Id

    DomainNameLabelScopeTypes, DomainNameLabelScopeTypesArgs

    TenantReuse
    TenantReuse
    SubscriptionReuse
    SubscriptionReuse
    ResourceGroupReuse
    ResourceGroupReuse
    NoReuse
    NoReuse
    DomainNameLabelScopeTypesTenantReuse
    TenantReuse
    DomainNameLabelScopeTypesSubscriptionReuse
    SubscriptionReuse
    DomainNameLabelScopeTypesResourceGroupReuse
    ResourceGroupReuse
    DomainNameLabelScopeTypesNoReuse
    NoReuse
    TenantReuse
    TenantReuse
    SubscriptionReuse
    SubscriptionReuse
    ResourceGroupReuse
    ResourceGroupReuse
    NoReuse
    NoReuse
    TenantReuse
    TenantReuse
    SubscriptionReuse
    SubscriptionReuse
    ResourceGroupReuse
    ResourceGroupReuse
    NoReuse
    NoReuse
    TENANT_REUSE
    TenantReuse
    SUBSCRIPTION_REUSE
    SubscriptionReuse
    RESOURCE_GROUP_REUSE
    ResourceGroupReuse
    NO_REUSE
    NoReuse
    "TenantReuse"
    TenantReuse
    "SubscriptionReuse"
    SubscriptionReuse
    "ResourceGroupReuse"
    ResourceGroupReuse
    "NoReuse"
    NoReuse

    EncryptionIdentity, EncryptionIdentityArgs

    UserAssignedIdentityResourceId string
    Specifies ARM Resource ID of one of the user identities associated with the VM.
    UserAssignedIdentityResourceId string
    Specifies ARM Resource ID of one of the user identities associated with the VM.
    userAssignedIdentityResourceId String
    Specifies ARM Resource ID of one of the user identities associated with the VM.
    userAssignedIdentityResourceId string
    Specifies ARM Resource ID of one of the user identities associated with the VM.
    user_assigned_identity_resource_id str
    Specifies ARM Resource ID of one of the user identities associated with the VM.
    userAssignedIdentityResourceId String
    Specifies ARM Resource ID of one of the user identities associated with the VM.

    EncryptionIdentityResponse, EncryptionIdentityResponseArgs

    UserAssignedIdentityResourceId string
    Specifies ARM Resource ID of one of the user identities associated with the VM.
    UserAssignedIdentityResourceId string
    Specifies ARM Resource ID of one of the user identities associated with the VM.
    userAssignedIdentityResourceId String
    Specifies ARM Resource ID of one of the user identities associated with the VM.
    userAssignedIdentityResourceId string
    Specifies ARM Resource ID of one of the user identities associated with the VM.
    user_assigned_identity_resource_id str
    Specifies ARM Resource ID of one of the user identities associated with the VM.
    userAssignedIdentityResourceId String
    Specifies ARM Resource ID of one of the user identities associated with the VM.

    EventGridAndResourceGraph, EventGridAndResourceGraphArgs

    Enable bool
    Specifies if event grid and resource graph is enabled for Scheduled event related configurations.
    Enable bool
    Specifies if event grid and resource graph is enabled for Scheduled event related configurations.
    enable Boolean
    Specifies if event grid and resource graph is enabled for Scheduled event related configurations.
    enable boolean
    Specifies if event grid and resource graph is enabled for Scheduled event related configurations.
    enable bool
    Specifies if event grid and resource graph is enabled for Scheduled event related configurations.
    enable Boolean
    Specifies if event grid and resource graph is enabled for Scheduled event related configurations.

    EventGridAndResourceGraphResponse, EventGridAndResourceGraphResponseArgs

    Enable bool
    Specifies if event grid and resource graph is enabled for Scheduled event related configurations.
    Enable bool
    Specifies if event grid and resource graph is enabled for Scheduled event related configurations.
    enable Boolean
    Specifies if event grid and resource graph is enabled for Scheduled event related configurations.
    enable boolean
    Specifies if event grid and resource graph is enabled for Scheduled event related configurations.
    enable bool
    Specifies if event grid and resource graph is enabled for Scheduled event related configurations.
    enable Boolean
    Specifies if event grid and resource graph is enabled for Scheduled event related configurations.

    ExtendedLocation, ExtendedLocationArgs

    Name string
    The name of the extended location.
    Type string | Pulumi.AzureNative.Compute.ExtendedLocationTypes
    The type of the extended location.
    Name string
    The name of the extended location.
    Type string | ExtendedLocationTypes
    The type of the extended location.
    name String
    The name of the extended location.
    type String | ExtendedLocationTypes
    The type of the extended location.
    name string
    The name of the extended location.
    type string | ExtendedLocationTypes
    The type of the extended location.
    name str
    The name of the extended location.
    type str | ExtendedLocationTypes
    The type of the extended location.
    name String
    The name of the extended location.
    type String | "EdgeZone"
    The type of the extended location.

    ExtendedLocationResponse, ExtendedLocationResponseArgs

    Name string
    The name of the extended location.
    Type string
    The type of the extended location.
    Name string
    The name of the extended location.
    Type string
    The type of the extended location.
    name String
    The name of the extended location.
    type String
    The type of the extended location.
    name string
    The name of the extended location.
    type string
    The type of the extended location.
    name str
    The name of the extended location.
    type str
    The type of the extended location.
    name String
    The name of the extended location.
    type String
    The type of the extended location.

    ExtendedLocationTypes, ExtendedLocationTypesArgs

    EdgeZone
    EdgeZone
    ExtendedLocationTypesEdgeZone
    EdgeZone
    EdgeZone
    EdgeZone
    EdgeZone
    EdgeZone
    EDGE_ZONE
    EdgeZone
    "EdgeZone"
    EdgeZone

    HostEndpointSettings, HostEndpointSettingsArgs

    InVMAccessControlProfileReferenceId string
    Specifies the InVMAccessControlProfileVersion resource id in the format of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}
    Mode string | Pulumi.AzureNative.Compute.Modes
    Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints. In Enforce mode, the system will enforce the access control and it is the recommended mode of operation.
    InVMAccessControlProfileReferenceId string
    Specifies the InVMAccessControlProfileVersion resource id in the format of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}
    Mode string | Modes
    Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints. In Enforce mode, the system will enforce the access control and it is the recommended mode of operation.
    inVMAccessControlProfileReferenceId String
    Specifies the InVMAccessControlProfileVersion resource id in the format of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}
    mode String | Modes
    Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints. In Enforce mode, the system will enforce the access control and it is the recommended mode of operation.
    inVMAccessControlProfileReferenceId string
    Specifies the InVMAccessControlProfileVersion resource id in the format of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}
    mode string | Modes
    Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints. In Enforce mode, the system will enforce the access control and it is the recommended mode of operation.
    in_vm_access_control_profile_reference_id str
    Specifies the InVMAccessControlProfileVersion resource id in the format of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}
    mode str | Modes
    Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints. In Enforce mode, the system will enforce the access control and it is the recommended mode of operation.
    inVMAccessControlProfileReferenceId String
    Specifies the InVMAccessControlProfileVersion resource id in the format of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}
    mode String | "Audit" | "Enforce" | "Disabled"
    Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints. In Enforce mode, the system will enforce the access control and it is the recommended mode of operation.

    HostEndpointSettingsResponse, HostEndpointSettingsResponseArgs

    InVMAccessControlProfileReferenceId string
    Specifies the InVMAccessControlProfileVersion resource id in the format of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}
    Mode string
    Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints. In Enforce mode, the system will enforce the access control and it is the recommended mode of operation.
    InVMAccessControlProfileReferenceId string
    Specifies the InVMAccessControlProfileVersion resource id in the format of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}
    Mode string
    Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints. In Enforce mode, the system will enforce the access control and it is the recommended mode of operation.
    inVMAccessControlProfileReferenceId String
    Specifies the InVMAccessControlProfileVersion resource id in the format of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}
    mode String
    Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints. In Enforce mode, the system will enforce the access control and it is the recommended mode of operation.
    inVMAccessControlProfileReferenceId string
    Specifies the InVMAccessControlProfileVersion resource id in the format of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}
    mode string
    Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints. In Enforce mode, the system will enforce the access control and it is the recommended mode of operation.
    in_vm_access_control_profile_reference_id str
    Specifies the InVMAccessControlProfileVersion resource id in the format of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}
    mode str
    Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints. In Enforce mode, the system will enforce the access control and it is the recommended mode of operation.
    inVMAccessControlProfileReferenceId String
    Specifies the InVMAccessControlProfileVersion resource id in the format of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}
    mode String
    Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints. In Enforce mode, the system will enforce the access control and it is the recommended mode of operation.

    IPVersion, IPVersionArgs

    IPv4
    IPv4
    IPv6
    IPv6
    IPVersionIPv4
    IPv4
    IPVersionIPv6
    IPv6
    IPv4
    IPv4
    IPv6
    IPv6
    IPv4
    IPv4
    IPv6
    IPv6
    I_PV4
    IPv4
    I_PV6
    IPv6
    "IPv4"
    IPv4
    "IPv6"
    IPv6

    ImageReference, ImageReferenceArgs

    CommunityGalleryImageId string
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    Id string
    Resource Id
    Offer string
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    Publisher string
    The image publisher.
    SharedGalleryImageId string
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    Sku string
    The image SKU.
    Version string
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    CommunityGalleryImageId string
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    Id string
    Resource Id
    Offer string
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    Publisher string
    The image publisher.
    SharedGalleryImageId string
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    Sku string
    The image SKU.
    Version string
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    communityGalleryImageId String
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id String
    Resource Id
    offer String
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher String
    The image publisher.
    sharedGalleryImageId String
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku String
    The image SKU.
    version String
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    communityGalleryImageId string
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id string
    Resource Id
    offer string
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher string
    The image publisher.
    sharedGalleryImageId string
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku string
    The image SKU.
    version string
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    community_gallery_image_id str
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id str
    Resource Id
    offer str
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher str
    The image publisher.
    shared_gallery_image_id str
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku str
    The image SKU.
    version str
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    communityGalleryImageId String
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id String
    Resource Id
    offer String
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher String
    The image publisher.
    sharedGalleryImageId String
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku String
    The image SKU.
    version String
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.

    ImageReferenceResponse, ImageReferenceResponseArgs

    ExactVersion string
    Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
    CommunityGalleryImageId string
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    Id string
    Resource Id
    Offer string
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    Publisher string
    The image publisher.
    SharedGalleryImageId string
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    Sku string
    The image SKU.
    Version string
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    ExactVersion string
    Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
    CommunityGalleryImageId string
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    Id string
    Resource Id
    Offer string
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    Publisher string
    The image publisher.
    SharedGalleryImageId string
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    Sku string
    The image SKU.
    Version string
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    exactVersion String
    Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
    communityGalleryImageId String
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id String
    Resource Id
    offer String
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher String
    The image publisher.
    sharedGalleryImageId String
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku String
    The image SKU.
    version String
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    exactVersion string
    Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
    communityGalleryImageId string
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id string
    Resource Id
    offer string
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher string
    The image publisher.
    sharedGalleryImageId string
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku string
    The image SKU.
    version string
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    exact_version str
    Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
    community_gallery_image_id str
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id str
    Resource Id
    offer str
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher str
    The image publisher.
    shared_gallery_image_id str
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku str
    The image SKU.
    version str
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.
    exactVersion String
    Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
    communityGalleryImageId String
    Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call.
    id String
    Resource Id
    offer String
    Specifies the offer of the platform image or marketplace image used to create the virtual machine.
    publisher String
    The image publisher.
    sharedGalleryImageId String
    Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call.
    sku String
    The image SKU.
    version String
    Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input.

    KeyVaultSecretReference, KeyVaultSecretReferenceArgs

    SecretUrl string
    The URL referencing a secret in a Key Vault.
    SourceVault Pulumi.AzureNative.Compute.Inputs.SubResource
    The relative URL of the Key Vault containing the secret.
    SecretUrl string
    The URL referencing a secret in a Key Vault.
    SourceVault SubResource
    The relative URL of the Key Vault containing the secret.
    secretUrl String
    The URL referencing a secret in a Key Vault.
    sourceVault SubResource
    The relative URL of the Key Vault containing the secret.
    secretUrl string
    The URL referencing a secret in a Key Vault.
    sourceVault SubResource
    The relative URL of the Key Vault containing the secret.
    secret_url str
    The URL referencing a secret in a Key Vault.
    source_vault SubResource
    The relative URL of the Key Vault containing the secret.
    secretUrl String
    The URL referencing a secret in a Key Vault.
    sourceVault Property Map
    The relative URL of the Key Vault containing the secret.

    KeyVaultSecretReferenceResponse, KeyVaultSecretReferenceResponseArgs

    SecretUrl string
    The URL referencing a secret in a Key Vault.
    SourceVault Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    The relative URL of the Key Vault containing the secret.
    SecretUrl string
    The URL referencing a secret in a Key Vault.
    SourceVault SubResourceResponse
    The relative URL of the Key Vault containing the secret.
    secretUrl String
    The URL referencing a secret in a Key Vault.
    sourceVault SubResourceResponse
    The relative URL of the Key Vault containing the secret.
    secretUrl string
    The URL referencing a secret in a Key Vault.
    sourceVault SubResourceResponse
    The relative URL of the Key Vault containing the secret.
    secret_url str
    The URL referencing a secret in a Key Vault.
    source_vault SubResourceResponse
    The relative URL of the Key Vault containing the secret.
    secretUrl String
    The URL referencing a secret in a Key Vault.
    sourceVault Property Map
    The relative URL of the Key Vault containing the secret.

    LinuxConfiguration, LinuxConfigurationArgs

    DisablePasswordAuthentication bool
    Specifies whether password authentication should be disabled.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    PatchSettings Pulumi.AzureNative.Compute.Inputs.LinuxPatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    Ssh Pulumi.AzureNative.Compute.Inputs.SshConfiguration
    Specifies the ssh key configuration for a Linux OS.
    DisablePasswordAuthentication bool
    Specifies whether password authentication should be disabled.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    PatchSettings LinuxPatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    Ssh SshConfiguration
    Specifies the ssh key configuration for a Linux OS.
    disablePasswordAuthentication Boolean
    Specifies whether password authentication should be disabled.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patchSettings LinuxPatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh SshConfiguration
    Specifies the ssh key configuration for a Linux OS.
    disablePasswordAuthentication boolean
    Specifies whether password authentication should be disabled.
    enableVMAgentPlatformUpdates boolean
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patchSettings LinuxPatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provisionVMAgent boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh SshConfiguration
    Specifies the ssh key configuration for a Linux OS.
    disable_password_authentication bool
    Specifies whether password authentication should be disabled.
    enable_vm_agent_platform_updates bool
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patch_settings LinuxPatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provision_vm_agent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh SshConfiguration
    Specifies the ssh key configuration for a Linux OS.
    disablePasswordAuthentication Boolean
    Specifies whether password authentication should be disabled.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patchSettings Property Map
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh Property Map
    Specifies the ssh key configuration for a Linux OS.

    LinuxConfigurationResponse, LinuxConfigurationResponseArgs

    DisablePasswordAuthentication bool
    Specifies whether password authentication should be disabled.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    PatchSettings Pulumi.AzureNative.Compute.Inputs.LinuxPatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    Ssh Pulumi.AzureNative.Compute.Inputs.SshConfigurationResponse
    Specifies the ssh key configuration for a Linux OS.
    DisablePasswordAuthentication bool
    Specifies whether password authentication should be disabled.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    PatchSettings LinuxPatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    Ssh SshConfigurationResponse
    Specifies the ssh key configuration for a Linux OS.
    disablePasswordAuthentication Boolean
    Specifies whether password authentication should be disabled.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patchSettings LinuxPatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh SshConfigurationResponse
    Specifies the ssh key configuration for a Linux OS.
    disablePasswordAuthentication boolean
    Specifies whether password authentication should be disabled.
    enableVMAgentPlatformUpdates boolean
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patchSettings LinuxPatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provisionVMAgent boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh SshConfigurationResponse
    Specifies the ssh key configuration for a Linux OS.
    disable_password_authentication bool
    Specifies whether password authentication should be disabled.
    enable_vm_agent_platform_updates bool
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patch_settings LinuxPatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provision_vm_agent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh SshConfigurationResponse
    Specifies the ssh key configuration for a Linux OS.
    disablePasswordAuthentication Boolean
    Specifies whether password authentication should be disabled.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
    patchSettings Property Map
    [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    ssh Property Map
    Specifies the ssh key configuration for a Linux OS.

    LinuxPatchAssessmentMode, LinuxPatchAssessmentModeArgs

    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    LinuxPatchAssessmentModeImageDefault
    ImageDefault
    LinuxPatchAssessmentModeAutomaticByPlatform
    AutomaticByPlatform
    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    IMAGE_DEFAULT
    ImageDefault
    AUTOMATIC_BY_PLATFORM
    AutomaticByPlatform
    "ImageDefault"
    ImageDefault
    "AutomaticByPlatform"
    AutomaticByPlatform

    LinuxPatchSettings, LinuxPatchSettingsArgs

    AssessmentMode string | Pulumi.AzureNative.Compute.LinuxPatchAssessmentMode
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings Pulumi.AzureNative.Compute.Inputs.LinuxVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    PatchMode string | Pulumi.AzureNative.Compute.LinuxVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    AssessmentMode string | LinuxPatchAssessmentMode
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    PatchMode string | LinuxVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessmentMode String | LinuxPatchAssessmentMode
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patchMode String | LinuxVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessmentMode string | LinuxPatchAssessmentMode
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patchMode string | LinuxVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessment_mode str | LinuxPatchAssessmentMode
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automatic_by_platform_settings LinuxVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patch_mode str | LinuxVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessmentMode String | "ImageDefault" | "AutomaticByPlatform"
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings Property Map
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patchMode String | "ImageDefault" | "AutomaticByPlatform"
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true

    LinuxPatchSettingsResponse, LinuxPatchSettingsResponseArgs

    AssessmentMode string
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings Pulumi.AzureNative.Compute.Inputs.LinuxVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    PatchMode string
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    AssessmentMode string
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    PatchMode string
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessmentMode String
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patchMode String
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessmentMode string
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patchMode string
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessment_mode str
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automatic_by_platform_settings LinuxVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patch_mode str
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
    assessmentMode String
    Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings Property Map
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux.
    patchMode String
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: ImageDefault - The virtual machine's default patching configuration is used. AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true

    LinuxVMGuestPatchAutomaticByPlatformRebootSetting, LinuxVMGuestPatchAutomaticByPlatformRebootSettingArgs

    Unknown
    Unknown
    IfRequired
    IfRequired
    Never
    Never
    Always
    Always
    LinuxVMGuestPatchAutomaticByPlatformRebootSettingUnknown
    Unknown
    LinuxVMGuestPatchAutomaticByPlatformRebootSettingIfRequired
    IfRequired
    LinuxVMGuestPatchAutomaticByPlatformRebootSettingNever
    Never
    LinuxVMGuestPatchAutomaticByPlatformRebootSettingAlways
    Always
    Unknown
    Unknown
    IfRequired
    IfRequired
    Never
    Never
    Always
    Always
    Unknown
    Unknown
    IfRequired
    IfRequired
    Never
    Never
    Always
    Always
    UNKNOWN
    Unknown
    IF_REQUIRED
    IfRequired
    NEVER
    Never
    ALWAYS
    Always
    "Unknown"
    Unknown
    "IfRequired"
    IfRequired
    "Never"
    Never
    "Always"
    Always

    LinuxVMGuestPatchAutomaticByPlatformSettings, LinuxVMGuestPatchAutomaticByPlatformSettingsArgs

    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string | Pulumi.AzureNative.Compute.LinuxVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string | LinuxVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String | LinuxVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting string | LinuxVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypass_platform_safety_checks_on_user_schedule bool
    Enables customer to schedule patching without accidental upgrades
    reboot_setting str | LinuxVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String | "Unknown" | "IfRequired" | "Never" | "Always"
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.

    LinuxVMGuestPatchAutomaticByPlatformSettingsResponse, LinuxVMGuestPatchAutomaticByPlatformSettingsResponseArgs

    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting string
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypass_platform_safety_checks_on_user_schedule bool
    Enables customer to schedule patching without accidental upgrades
    reboot_setting str
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.

    LinuxVMGuestPatchMode, LinuxVMGuestPatchModeArgs

    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    LinuxVMGuestPatchModeImageDefault
    ImageDefault
    LinuxVMGuestPatchModeAutomaticByPlatform
    AutomaticByPlatform
    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    IMAGE_DEFAULT
    ImageDefault
    AUTOMATIC_BY_PLATFORM
    AutomaticByPlatform
    "ImageDefault"
    ImageDefault
    "AutomaticByPlatform"
    AutomaticByPlatform

    Mode, ModeArgs

    Audit
    Audit
    Enforce
    Enforce
    ModeAudit
    Audit
    ModeEnforce
    Enforce
    Audit
    Audit
    Enforce
    Enforce
    Audit
    Audit
    Enforce
    Enforce
    AUDIT
    Audit
    ENFORCE
    Enforce
    "Audit"
    Audit
    "Enforce"
    Enforce

    Modes, ModesArgs

    Audit
    Audit
    Enforce
    Enforce
    Disabled
    Disabled
    ModesAudit
    Audit
    ModesEnforce
    Enforce
    ModesDisabled
    Disabled
    Audit
    Audit
    Enforce
    Enforce
    Disabled
    Disabled
    Audit
    Audit
    Enforce
    Enforce
    Disabled
    Disabled
    AUDIT
    Audit
    ENFORCE
    Enforce
    DISABLED
    Disabled
    "Audit"
    Audit
    "Enforce"
    Enforce
    "Disabled"
    Disabled

    NetworkApiVersion, NetworkApiVersionArgs

    NetworkApiVersion_2020_11_01
    2020-11-01
    NetworkApiVersion_2022_11_01
    2022-11-01
    NetworkApiVersion_2020_11_01
    2020-11-01
    NetworkApiVersion_2022_11_01
    2022-11-01
    _20201101
    2020-11-01
    _20221101
    2022-11-01
    NetworkApiVersion_2020_11_01
    2020-11-01
    NetworkApiVersion_2022_11_01
    2022-11-01
    NETWORK_API_VERSION_2020_11_01
    2020-11-01
    NETWORK_API_VERSION_2022_11_01
    2022-11-01
    "2020-11-01"
    2020-11-01
    "2022-11-01"
    2022-11-01

    NetworkInterfaceAuxiliaryMode, NetworkInterfaceAuxiliaryModeArgs

    None
    None
    AcceleratedConnections
    AcceleratedConnections
    Floating
    Floating
    NetworkInterfaceAuxiliaryModeNone
    None
    NetworkInterfaceAuxiliaryModeAcceleratedConnections
    AcceleratedConnections
    NetworkInterfaceAuxiliaryModeFloating
    Floating
    None
    None
    AcceleratedConnections
    AcceleratedConnections
    Floating
    Floating
    None
    None
    AcceleratedConnections
    AcceleratedConnections
    Floating
    Floating
    NONE
    None
    ACCELERATED_CONNECTIONS
    AcceleratedConnections
    FLOATING
    Floating
    "None"
    None
    "AcceleratedConnections"
    AcceleratedConnections
    "Floating"
    Floating

    NetworkInterfaceAuxiliarySku, NetworkInterfaceAuxiliarySkuArgs

    None
    None
    A1
    A1
    A2
    A2
    A4
    A4
    A8
    A8
    NetworkInterfaceAuxiliarySkuNone
    None
    NetworkInterfaceAuxiliarySkuA1
    A1
    NetworkInterfaceAuxiliarySkuA2
    A2
    NetworkInterfaceAuxiliarySkuA4
    A4
    NetworkInterfaceAuxiliarySkuA8
    A8
    None
    None
    A1
    A1
    A2
    A2
    A4
    A4
    A8
    A8
    None
    None
    A1
    A1
    A2
    A2
    A4
    A4
    A8
    A8
    NONE
    None
    A1
    A1
    A2
    A2
    A4
    A4
    A8
    A8
    "None"
    None
    "A1"
    A1
    "A2"
    A2
    "A4"
    A4
    "A8"
    A8

    OSImageNotificationProfile, OSImageNotificationProfileArgs

    Enable bool
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    Enable bool
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable Boolean
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable boolean
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    notBeforeTimeout string
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable bool
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    not_before_timeout str
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable Boolean
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)

    OSImageNotificationProfileResponse, OSImageNotificationProfileResponseArgs

    Enable bool
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    Enable bool
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable Boolean
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable boolean
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    notBeforeTimeout string
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable bool
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    not_before_timeout str
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
    enable Boolean
    Specifies whether the OS Image Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)

    OperatingSystemTypes, OperatingSystemTypesArgs

    Windows
    Windows
    Linux
    Linux
    OperatingSystemTypesWindows
    Windows
    OperatingSystemTypesLinux
    Linux
    Windows
    Windows
    Linux
    Linux
    Windows
    Windows
    Linux
    Linux
    WINDOWS
    Windows
    LINUX
    Linux
    "Windows"
    Windows
    "Linux"
    Linux

    OrchestrationMode, OrchestrationModeArgs

    Uniform
    Uniform
    Flexible
    Flexible
    OrchestrationModeUniform
    Uniform
    OrchestrationModeFlexible
    Flexible
    Uniform
    Uniform
    Flexible
    Flexible
    Uniform
    Uniform
    Flexible
    Flexible
    UNIFORM
    Uniform
    FLEXIBLE
    Flexible
    "Uniform"
    Uniform
    "Flexible"
    Flexible

    PassNames, PassNamesArgs

    OobeSystem
    OobeSystem
    PassNamesOobeSystem
    OobeSystem
    OobeSystem
    OobeSystem
    OobeSystem
    OobeSystem
    OOBE_SYSTEM
    OobeSystem
    "OobeSystem"
    OobeSystem

    PatchSettings, PatchSettingsArgs

    AssessmentMode string | Pulumi.AzureNative.Compute.WindowsPatchAssessmentMode
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings Pulumi.AzureNative.Compute.Inputs.WindowsVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    EnableHotpatching bool
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    PatchMode string | Pulumi.AzureNative.Compute.WindowsVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    AssessmentMode string | WindowsPatchAssessmentMode
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    EnableHotpatching bool
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    PatchMode string | WindowsVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessmentMode String | WindowsPatchAssessmentMode
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enableHotpatching Boolean
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patchMode String | WindowsVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessmentMode string | WindowsPatchAssessmentMode
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enableHotpatching boolean
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patchMode string | WindowsVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessment_mode str | WindowsPatchAssessmentMode
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automatic_by_platform_settings WindowsVMGuestPatchAutomaticByPlatformSettings
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enable_hotpatching bool
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patch_mode str | WindowsVMGuestPatchMode
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessmentMode String | "ImageDefault" | "AutomaticByPlatform"
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings Property Map
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enableHotpatching Boolean
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patchMode String | "Manual" | "AutomaticByOS" | "AutomaticByPlatform"
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true

    PatchSettingsResponse, PatchSettingsResponseArgs

    AssessmentMode string
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings Pulumi.AzureNative.Compute.Inputs.WindowsVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    EnableHotpatching bool
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    PatchMode string
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    AssessmentMode string
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    AutomaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    EnableHotpatching bool
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    PatchMode string
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessmentMode String
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enableHotpatching Boolean
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patchMode String
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessmentMode string
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enableHotpatching boolean
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patchMode string
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessment_mode str
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automatic_by_platform_settings WindowsVMGuestPatchAutomaticByPlatformSettingsResponse
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enable_hotpatching bool
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patch_mode str
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
    assessmentMode String
    Specifies the mode of VM Guest patch assessment for the IaaS virtual machine. Possible values are: ImageDefault - You control the timing of patch assessments on a virtual machine. AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
    automaticByPlatformSettings Property Map
    Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows.
    enableHotpatching Boolean
    Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
    patchMode String
    Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible. Possible values are: Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true

    Plan, PlanArgs

    Name string
    The plan ID.
    Product string
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    PromotionCode string
    The promotion code.
    Publisher string
    The publisher ID.
    Name string
    The plan ID.
    Product string
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    PromotionCode string
    The promotion code.
    Publisher string
    The publisher ID.
    name String
    The plan ID.
    product String
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotionCode String
    The promotion code.
    publisher String
    The publisher ID.
    name string
    The plan ID.
    product string
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotionCode string
    The promotion code.
    publisher string
    The publisher ID.
    name str
    The plan ID.
    product str
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotion_code str
    The promotion code.
    publisher str
    The publisher ID.
    name String
    The plan ID.
    product String
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotionCode String
    The promotion code.
    publisher String
    The publisher ID.

    PlanResponse, PlanResponseArgs

    Name string
    The plan ID.
    Product string
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    PromotionCode string
    The promotion code.
    Publisher string
    The publisher ID.
    Name string
    The plan ID.
    Product string
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    PromotionCode string
    The promotion code.
    Publisher string
    The publisher ID.
    name String
    The plan ID.
    product String
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotionCode String
    The promotion code.
    publisher String
    The publisher ID.
    name string
    The plan ID.
    product string
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotionCode string
    The promotion code.
    publisher string
    The publisher ID.
    name str
    The plan ID.
    product str
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotion_code str
    The promotion code.
    publisher str
    The publisher ID.
    name String
    The plan ID.
    product String
    Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
    promotionCode String
    The promotion code.
    publisher String
    The publisher ID.

    PriorityMixPolicy, PriorityMixPolicyArgs

    BaseRegularPriorityCount int
    The base number of regular priority VMs that will be created in this scale set as it scales out.
    RegularPriorityPercentageAboveBase int
    The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority.
    BaseRegularPriorityCount int
    The base number of regular priority VMs that will be created in this scale set as it scales out.
    RegularPriorityPercentageAboveBase int
    The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority.
    baseRegularPriorityCount Integer
    The base number of regular priority VMs that will be created in this scale set as it scales out.
    regularPriorityPercentageAboveBase Integer
    The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority.
    baseRegularPriorityCount number
    The base number of regular priority VMs that will be created in this scale set as it scales out.
    regularPriorityPercentageAboveBase number
    The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority.
    base_regular_priority_count int
    The base number of regular priority VMs that will be created in this scale set as it scales out.
    regular_priority_percentage_above_base int
    The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority.
    baseRegularPriorityCount Number
    The base number of regular priority VMs that will be created in this scale set as it scales out.
    regularPriorityPercentageAboveBase Number
    The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority.

    PriorityMixPolicyResponse, PriorityMixPolicyResponseArgs

    BaseRegularPriorityCount int
    The base number of regular priority VMs that will be created in this scale set as it scales out.
    RegularPriorityPercentageAboveBase int
    The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority.
    BaseRegularPriorityCount int
    The base number of regular priority VMs that will be created in this scale set as it scales out.
    RegularPriorityPercentageAboveBase int
    The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority.
    baseRegularPriorityCount Integer
    The base number of regular priority VMs that will be created in this scale set as it scales out.
    regularPriorityPercentageAboveBase Integer
    The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority.
    baseRegularPriorityCount number
    The base number of regular priority VMs that will be created in this scale set as it scales out.
    regularPriorityPercentageAboveBase number
    The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority.
    base_regular_priority_count int
    The base number of regular priority VMs that will be created in this scale set as it scales out.
    regular_priority_percentage_above_base int
    The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority.
    baseRegularPriorityCount Number
    The base number of regular priority VMs that will be created in this scale set as it scales out.
    regularPriorityPercentageAboveBase Number
    The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority.

    ProtocolTypes, ProtocolTypesArgs

    Http
    Http
    Https
    Https
    ProtocolTypesHttp
    Http
    ProtocolTypesHttps
    Https
    Http
    Http
    Https
    Https
    Http
    Http
    Https
    Https
    HTTP
    Http
    HTTPS
    Https
    "Http"
    Http
    "Https"
    Https

    ProxyAgentSettings, ProxyAgentSettingsArgs

    Enabled bool
    Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
    Imds Pulumi.AzureNative.Compute.Inputs.HostEndpointSettings
    Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    KeyIncarnationId int
    Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
    Mode string | Pulumi.AzureNative.Compute.Mode
    Specifies the mode that ProxyAgent will execute on. Warning: this property has been deprecated, please specify 'mode' under particular hostendpoint setting.
    WireServer Pulumi.AzureNative.Compute.Inputs.HostEndpointSettings
    Specifies the Wire Server endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    Enabled bool
    Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
    Imds HostEndpointSettings
    Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    KeyIncarnationId int
    Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
    Mode string | Mode
    Specifies the mode that ProxyAgent will execute on. Warning: this property has been deprecated, please specify 'mode' under particular hostendpoint setting.
    WireServer HostEndpointSettings
    Specifies the Wire Server endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    enabled Boolean
    Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
    imds HostEndpointSettings
    Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    keyIncarnationId Integer
    Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
    mode String | Mode
    Specifies the mode that ProxyAgent will execute on. Warning: this property has been deprecated, please specify 'mode' under particular hostendpoint setting.
    wireServer HostEndpointSettings
    Specifies the Wire Server endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    enabled boolean
    Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
    imds HostEndpointSettings
    Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    keyIncarnationId number
    Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
    mode string | Mode
    Specifies the mode that ProxyAgent will execute on. Warning: this property has been deprecated, please specify 'mode' under particular hostendpoint setting.
    wireServer HostEndpointSettings
    Specifies the Wire Server endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    enabled bool
    Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
    imds HostEndpointSettings
    Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    key_incarnation_id int
    Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
    mode str | Mode
    Specifies the mode that ProxyAgent will execute on. Warning: this property has been deprecated, please specify 'mode' under particular hostendpoint setting.
    wire_server HostEndpointSettings
    Specifies the Wire Server endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    enabled Boolean
    Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
    imds Property Map
    Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    keyIncarnationId Number
    Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
    mode String | "Audit" | "Enforce"
    Specifies the mode that ProxyAgent will execute on. Warning: this property has been deprecated, please specify 'mode' under particular hostendpoint setting.
    wireServer Property Map
    Specifies the Wire Server endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.

    ProxyAgentSettingsResponse, ProxyAgentSettingsResponseArgs

    Enabled bool
    Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
    Imds Pulumi.AzureNative.Compute.Inputs.HostEndpointSettingsResponse
    Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    KeyIncarnationId int
    Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
    Mode string
    Specifies the mode that ProxyAgent will execute on. Warning: this property has been deprecated, please specify 'mode' under particular hostendpoint setting.
    WireServer Pulumi.AzureNative.Compute.Inputs.HostEndpointSettingsResponse
    Specifies the Wire Server endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    Enabled bool
    Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
    Imds HostEndpointSettingsResponse
    Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    KeyIncarnationId int
    Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
    Mode string
    Specifies the mode that ProxyAgent will execute on. Warning: this property has been deprecated, please specify 'mode' under particular hostendpoint setting.
    WireServer HostEndpointSettingsResponse
    Specifies the Wire Server endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    enabled Boolean
    Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
    imds HostEndpointSettingsResponse
    Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    keyIncarnationId Integer
    Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
    mode String
    Specifies the mode that ProxyAgent will execute on. Warning: this property has been deprecated, please specify 'mode' under particular hostendpoint setting.
    wireServer HostEndpointSettingsResponse
    Specifies the Wire Server endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    enabled boolean
    Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
    imds HostEndpointSettingsResponse
    Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    keyIncarnationId number
    Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
    mode string
    Specifies the mode that ProxyAgent will execute on. Warning: this property has been deprecated, please specify 'mode' under particular hostendpoint setting.
    wireServer HostEndpointSettingsResponse
    Specifies the Wire Server endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    enabled bool
    Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
    imds HostEndpointSettingsResponse
    Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    key_incarnation_id int
    Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
    mode str
    Specifies the mode that ProxyAgent will execute on. Warning: this property has been deprecated, please specify 'mode' under particular hostendpoint setting.
    wire_server HostEndpointSettingsResponse
    Specifies the Wire Server endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    enabled Boolean
    Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
    imds Property Map
    Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.
    keyIncarnationId Number
    Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
    mode String
    Specifies the mode that ProxyAgent will execute on. Warning: this property has been deprecated, please specify 'mode' under particular hostendpoint setting.
    wireServer Property Map
    Specifies the Wire Server endpoint settings while creating the virtual machine or virtual machine scale set. Minimum api-version: 2024-03-01.

    PublicIPAddressSku, PublicIPAddressSkuArgs

    Name string | Pulumi.AzureNative.Compute.PublicIPAddressSkuName
    Specify public IP sku name
    Tier string | Pulumi.AzureNative.Compute.PublicIPAddressSkuTier
    Specify public IP sku tier
    Name string | PublicIPAddressSkuName
    Specify public IP sku name
    Tier string | PublicIPAddressSkuTier
    Specify public IP sku tier
    name String | PublicIPAddressSkuName
    Specify public IP sku name
    tier String | PublicIPAddressSkuTier
    Specify public IP sku tier
    name string | PublicIPAddressSkuName
    Specify public IP sku name
    tier string | PublicIPAddressSkuTier
    Specify public IP sku tier
    name str | PublicIPAddressSkuName
    Specify public IP sku name
    tier str | PublicIPAddressSkuTier
    Specify public IP sku tier
    name String | "Basic" | "Standard"
    Specify public IP sku name
    tier String | "Regional" | "Global"
    Specify public IP sku tier

    PublicIPAddressSkuName, PublicIPAddressSkuNameArgs

    Basic
    Basic
    Standard
    Standard
    PublicIPAddressSkuNameBasic
    Basic
    PublicIPAddressSkuNameStandard
    Standard
    Basic
    Basic
    Standard
    Standard
    Basic
    Basic
    Standard
    Standard
    BASIC
    Basic
    STANDARD
    Standard
    "Basic"
    Basic
    "Standard"
    Standard

    PublicIPAddressSkuResponse, PublicIPAddressSkuResponseArgs

    Name string
    Specify public IP sku name
    Tier string
    Specify public IP sku tier
    Name string
    Specify public IP sku name
    Tier string
    Specify public IP sku tier
    name String
    Specify public IP sku name
    tier String
    Specify public IP sku tier
    name string
    Specify public IP sku name
    tier string
    Specify public IP sku tier
    name str
    Specify public IP sku name
    tier str
    Specify public IP sku tier
    name String
    Specify public IP sku name
    tier String
    Specify public IP sku tier

    PublicIPAddressSkuTier, PublicIPAddressSkuTierArgs

    Regional
    Regional
    Global
    Global
    PublicIPAddressSkuTierRegional
    Regional
    PublicIPAddressSkuTierGlobal
    Global
    Regional
    Regional
    Global
    Global
    Regional
    Regional
    Global
    Global
    REGIONAL
    Regional
    GLOBAL_
    Global
    "Regional"
    Regional
    "Global"
    Global

    RebalanceBehavior, RebalanceBehaviorArgs

    CreateBeforeDelete
    CreateBeforeDelete
    RebalanceBehaviorCreateBeforeDelete
    CreateBeforeDelete
    CreateBeforeDelete
    CreateBeforeDelete
    CreateBeforeDelete
    CreateBeforeDelete
    CREATE_BEFORE_DELETE
    CreateBeforeDelete
    "CreateBeforeDelete"
    CreateBeforeDelete

    RebalanceStrategy, RebalanceStrategyArgs

    Recreate
    Recreate
    RebalanceStrategyRecreate
    Recreate
    Recreate
    Recreate
    Recreate
    Recreate
    RECREATE
    Recreate
    "Recreate"
    Recreate

    RepairAction, RepairActionArgs

    Replace
    Replace
    Restart
    Restart
    Reimage
    Reimage
    RepairActionReplace
    Replace
    RepairActionRestart
    Restart
    RepairActionReimage
    Reimage
    Replace
    Replace
    Restart
    Restart
    Reimage
    Reimage
    Replace
    Replace
    Restart
    Restart
    Reimage
    Reimage
    REPLACE
    Replace
    RESTART
    Restart
    REIMAGE
    Reimage
    "Replace"
    Replace
    "Restart"
    Restart
    "Reimage"
    Reimage

    ResiliencyPolicy, ResiliencyPolicyArgs

    AutomaticZoneRebalancingPolicy Pulumi.AzureNative.Compute.Inputs.AutomaticZoneRebalancingPolicy
    The configuration parameters used while performing automatic AZ balancing.
    ResilientVMCreationPolicy Pulumi.AzureNative.Compute.Inputs.ResilientVMCreationPolicy
    The configuration parameters used while performing resilient VM creation.
    ResilientVMDeletionPolicy Pulumi.AzureNative.Compute.Inputs.ResilientVMDeletionPolicy
    The configuration parameters used while performing resilient VM deletion.
    AutomaticZoneRebalancingPolicy AutomaticZoneRebalancingPolicy
    The configuration parameters used while performing automatic AZ balancing.
    ResilientVMCreationPolicy ResilientVMCreationPolicy
    The configuration parameters used while performing resilient VM creation.
    ResilientVMDeletionPolicy ResilientVMDeletionPolicy
    The configuration parameters used while performing resilient VM deletion.
    automaticZoneRebalancingPolicy AutomaticZoneRebalancingPolicy
    The configuration parameters used while performing automatic AZ balancing.
    resilientVMCreationPolicy ResilientVMCreationPolicy
    The configuration parameters used while performing resilient VM creation.
    resilientVMDeletionPolicy ResilientVMDeletionPolicy
    The configuration parameters used while performing resilient VM deletion.
    automaticZoneRebalancingPolicy AutomaticZoneRebalancingPolicy
    The configuration parameters used while performing automatic AZ balancing.
    resilientVMCreationPolicy ResilientVMCreationPolicy
    The configuration parameters used while performing resilient VM creation.
    resilientVMDeletionPolicy ResilientVMDeletionPolicy
    The configuration parameters used while performing resilient VM deletion.
    automatic_zone_rebalancing_policy AutomaticZoneRebalancingPolicy
    The configuration parameters used while performing automatic AZ balancing.
    resilient_vm_creation_policy ResilientVMCreationPolicy
    The configuration parameters used while performing resilient VM creation.
    resilient_vm_deletion_policy ResilientVMDeletionPolicy
    The configuration parameters used while performing resilient VM deletion.
    automaticZoneRebalancingPolicy Property Map
    The configuration parameters used while performing automatic AZ balancing.
    resilientVMCreationPolicy Property Map
    The configuration parameters used while performing resilient VM creation.
    resilientVMDeletionPolicy Property Map
    The configuration parameters used while performing resilient VM deletion.

    ResiliencyPolicyResponse, ResiliencyPolicyResponseArgs

    AutomaticZoneRebalancingPolicy Pulumi.AzureNative.Compute.Inputs.AutomaticZoneRebalancingPolicyResponse
    The configuration parameters used while performing automatic AZ balancing.
    ResilientVMCreationPolicy Pulumi.AzureNative.Compute.Inputs.ResilientVMCreationPolicyResponse
    The configuration parameters used while performing resilient VM creation.
    ResilientVMDeletionPolicy Pulumi.AzureNative.Compute.Inputs.ResilientVMDeletionPolicyResponse
    The configuration parameters used while performing resilient VM deletion.
    AutomaticZoneRebalancingPolicy AutomaticZoneRebalancingPolicyResponse
    The configuration parameters used while performing automatic AZ balancing.
    ResilientVMCreationPolicy ResilientVMCreationPolicyResponse
    The configuration parameters used while performing resilient VM creation.
    ResilientVMDeletionPolicy ResilientVMDeletionPolicyResponse
    The configuration parameters used while performing resilient VM deletion.
    automaticZoneRebalancingPolicy AutomaticZoneRebalancingPolicyResponse
    The configuration parameters used while performing automatic AZ balancing.
    resilientVMCreationPolicy ResilientVMCreationPolicyResponse
    The configuration parameters used while performing resilient VM creation.
    resilientVMDeletionPolicy ResilientVMDeletionPolicyResponse
    The configuration parameters used while performing resilient VM deletion.
    automaticZoneRebalancingPolicy AutomaticZoneRebalancingPolicyResponse
    The configuration parameters used while performing automatic AZ balancing.
    resilientVMCreationPolicy ResilientVMCreationPolicyResponse
    The configuration parameters used while performing resilient VM creation.
    resilientVMDeletionPolicy ResilientVMDeletionPolicyResponse
    The configuration parameters used while performing resilient VM deletion.
    automatic_zone_rebalancing_policy AutomaticZoneRebalancingPolicyResponse
    The configuration parameters used while performing automatic AZ balancing.
    resilient_vm_creation_policy ResilientVMCreationPolicyResponse
    The configuration parameters used while performing resilient VM creation.
    resilient_vm_deletion_policy ResilientVMDeletionPolicyResponse
    The configuration parameters used while performing resilient VM deletion.
    automaticZoneRebalancingPolicy Property Map
    The configuration parameters used while performing automatic AZ balancing.
    resilientVMCreationPolicy Property Map
    The configuration parameters used while performing resilient VM creation.
    resilientVMDeletionPolicy Property Map
    The configuration parameters used while performing resilient VM deletion.

    ResilientVMCreationPolicy, ResilientVMCreationPolicyArgs

    Enabled bool
    Specifies whether resilient VM creation should be enabled on the virtual machine scale set. The default value is false.
    Enabled bool
    Specifies whether resilient VM creation should be enabled on the virtual machine scale set. The default value is false.
    enabled Boolean
    Specifies whether resilient VM creation should be enabled on the virtual machine scale set. The default value is false.
    enabled boolean
    Specifies whether resilient VM creation should be enabled on the virtual machine scale set. The default value is false.
    enabled bool
    Specifies whether resilient VM creation should be enabled on the virtual machine scale set. The default value is false.
    enabled Boolean
    Specifies whether resilient VM creation should be enabled on the virtual machine scale set. The default value is false.

    ResilientVMCreationPolicyResponse, ResilientVMCreationPolicyResponseArgs

    Enabled bool
    Specifies whether resilient VM creation should be enabled on the virtual machine scale set. The default value is false.
    Enabled bool
    Specifies whether resilient VM creation should be enabled on the virtual machine scale set. The default value is false.
    enabled Boolean
    Specifies whether resilient VM creation should be enabled on the virtual machine scale set. The default value is false.
    enabled boolean
    Specifies whether resilient VM creation should be enabled on the virtual machine scale set. The default value is false.
    enabled bool
    Specifies whether resilient VM creation should be enabled on the virtual machine scale set. The default value is false.
    enabled Boolean
    Specifies whether resilient VM creation should be enabled on the virtual machine scale set. The default value is false.

    ResilientVMDeletionPolicy, ResilientVMDeletionPolicyArgs

    Enabled bool
    Specifies whether resilient VM deletion should be enabled on the virtual machine scale set. The default value is false.
    Enabled bool
    Specifies whether resilient VM deletion should be enabled on the virtual machine scale set. The default value is false.
    enabled Boolean
    Specifies whether resilient VM deletion should be enabled on the virtual machine scale set. The default value is false.
    enabled boolean
    Specifies whether resilient VM deletion should be enabled on the virtual machine scale set. The default value is false.
    enabled bool
    Specifies whether resilient VM deletion should be enabled on the virtual machine scale set. The default value is false.
    enabled Boolean
    Specifies whether resilient VM deletion should be enabled on the virtual machine scale set. The default value is false.

    ResilientVMDeletionPolicyResponse, ResilientVMDeletionPolicyResponseArgs

    Enabled bool
    Specifies whether resilient VM deletion should be enabled on the virtual machine scale set. The default value is false.
    Enabled bool
    Specifies whether resilient VM deletion should be enabled on the virtual machine scale set. The default value is false.
    enabled Boolean
    Specifies whether resilient VM deletion should be enabled on the virtual machine scale set. The default value is false.
    enabled boolean
    Specifies whether resilient VM deletion should be enabled on the virtual machine scale set. The default value is false.
    enabled bool
    Specifies whether resilient VM deletion should be enabled on the virtual machine scale set. The default value is false.
    enabled Boolean
    Specifies whether resilient VM deletion should be enabled on the virtual machine scale set. The default value is false.

    ResourceIdentityType, ResourceIdentityTypeArgs

    SystemAssigned
    SystemAssigned
    UserAssigned
    UserAssigned
    SystemAssigned_UserAssigned
    SystemAssigned, UserAssigned
    None
    None
    ResourceIdentityTypeSystemAssigned
    SystemAssigned
    ResourceIdentityTypeUserAssigned
    UserAssigned
    ResourceIdentityType_SystemAssigned_UserAssigned
    SystemAssigned, UserAssigned
    ResourceIdentityTypeNone
    None
    SystemAssigned
    SystemAssigned
    UserAssigned
    UserAssigned
    SystemAssigned_UserAssigned
    SystemAssigned, UserAssigned
    None
    None
    SystemAssigned
    SystemAssigned
    UserAssigned
    UserAssigned
    SystemAssigned_UserAssigned
    SystemAssigned, UserAssigned
    None
    None
    SYSTEM_ASSIGNED
    SystemAssigned
    USER_ASSIGNED
    UserAssigned
    SYSTEM_ASSIGNED_USER_ASSIGNED
    SystemAssigned, UserAssigned
    NONE
    None
    "SystemAssigned"
    SystemAssigned
    "UserAssigned"
    UserAssigned
    "SystemAssigned, UserAssigned"
    SystemAssigned, UserAssigned
    "None"
    None

    RollingUpgradePolicy, RollingUpgradePolicyArgs

    EnableCrossZoneUpgrade bool
    Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size.
    MaxBatchInstancePercent int
    The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
    MaxSurge bool
    Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch.
    MaxUnhealthyInstancePercent int
    The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
    MaxUnhealthyUpgradedInstancePercent int
    The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
    PauseTimeBetweenBatches string
    The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
    PrioritizeUnhealthyInstances bool
    Upgrade all unhealthy instances in a scale set before any healthy instances.
    RollbackFailedInstancesOnPolicyBreach bool
    Rollback failed instances to previous model if the Rolling Upgrade policy is violated.
    EnableCrossZoneUpgrade bool
    Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size.
    MaxBatchInstancePercent int
    The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
    MaxSurge bool
    Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch.
    MaxUnhealthyInstancePercent int
    The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
    MaxUnhealthyUpgradedInstancePercent int
    The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
    PauseTimeBetweenBatches string
    The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
    PrioritizeUnhealthyInstances bool
    Upgrade all unhealthy instances in a scale set before any healthy instances.
    RollbackFailedInstancesOnPolicyBreach bool
    Rollback failed instances to previous model if the Rolling Upgrade policy is violated.
    enableCrossZoneUpgrade Boolean
    Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size.
    maxBatchInstancePercent Integer
    The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
    maxSurge Boolean
    Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch.
    maxUnhealthyInstancePercent Integer
    The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
    maxUnhealthyUpgradedInstancePercent Integer
    The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
    pauseTimeBetweenBatches String
    The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
    prioritizeUnhealthyInstances Boolean
    Upgrade all unhealthy instances in a scale set before any healthy instances.
    rollbackFailedInstancesOnPolicyBreach Boolean
    Rollback failed instances to previous model if the Rolling Upgrade policy is violated.
    enableCrossZoneUpgrade boolean
    Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size.
    maxBatchInstancePercent number
    The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
    maxSurge boolean
    Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch.
    maxUnhealthyInstancePercent number
    The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
    maxUnhealthyUpgradedInstancePercent number
    The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
    pauseTimeBetweenBatches string
    The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
    prioritizeUnhealthyInstances boolean
    Upgrade all unhealthy instances in a scale set before any healthy instances.
    rollbackFailedInstancesOnPolicyBreach boolean
    Rollback failed instances to previous model if the Rolling Upgrade policy is violated.
    enable_cross_zone_upgrade bool
    Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size.
    max_batch_instance_percent int
    The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
    max_surge bool
    Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch.
    max_unhealthy_instance_percent int
    The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
    max_unhealthy_upgraded_instance_percent int
    The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
    pause_time_between_batches str
    The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
    prioritize_unhealthy_instances bool
    Upgrade all unhealthy instances in a scale set before any healthy instances.
    rollback_failed_instances_on_policy_breach bool
    Rollback failed instances to previous model if the Rolling Upgrade policy is violated.
    enableCrossZoneUpgrade Boolean
    Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size.
    maxBatchInstancePercent Number
    The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
    maxSurge Boolean
    Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch.
    maxUnhealthyInstancePercent Number
    The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
    maxUnhealthyUpgradedInstancePercent Number
    The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
    pauseTimeBetweenBatches String
    The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
    prioritizeUnhealthyInstances Boolean
    Upgrade all unhealthy instances in a scale set before any healthy instances.
    rollbackFailedInstancesOnPolicyBreach Boolean
    Rollback failed instances to previous model if the Rolling Upgrade policy is violated.

    RollingUpgradePolicyResponse, RollingUpgradePolicyResponseArgs

    EnableCrossZoneUpgrade bool
    Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size.
    MaxBatchInstancePercent int
    The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
    MaxSurge bool
    Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch.
    MaxUnhealthyInstancePercent int
    The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
    MaxUnhealthyUpgradedInstancePercent int
    The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
    PauseTimeBetweenBatches string
    The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
    PrioritizeUnhealthyInstances bool
    Upgrade all unhealthy instances in a scale set before any healthy instances.
    RollbackFailedInstancesOnPolicyBreach bool
    Rollback failed instances to previous model if the Rolling Upgrade policy is violated.
    EnableCrossZoneUpgrade bool
    Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size.
    MaxBatchInstancePercent int
    The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
    MaxSurge bool
    Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch.
    MaxUnhealthyInstancePercent int
    The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
    MaxUnhealthyUpgradedInstancePercent int
    The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
    PauseTimeBetweenBatches string
    The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
    PrioritizeUnhealthyInstances bool
    Upgrade all unhealthy instances in a scale set before any healthy instances.
    RollbackFailedInstancesOnPolicyBreach bool
    Rollback failed instances to previous model if the Rolling Upgrade policy is violated.
    enableCrossZoneUpgrade Boolean
    Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size.
    maxBatchInstancePercent Integer
    The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
    maxSurge Boolean
    Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch.
    maxUnhealthyInstancePercent Integer
    The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
    maxUnhealthyUpgradedInstancePercent Integer
    The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
    pauseTimeBetweenBatches String
    The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
    prioritizeUnhealthyInstances Boolean
    Upgrade all unhealthy instances in a scale set before any healthy instances.
    rollbackFailedInstancesOnPolicyBreach Boolean
    Rollback failed instances to previous model if the Rolling Upgrade policy is violated.
    enableCrossZoneUpgrade boolean
    Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size.
    maxBatchInstancePercent number
    The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
    maxSurge boolean
    Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch.
    maxUnhealthyInstancePercent number
    The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
    maxUnhealthyUpgradedInstancePercent number
    The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
    pauseTimeBetweenBatches string
    The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
    prioritizeUnhealthyInstances boolean
    Upgrade all unhealthy instances in a scale set before any healthy instances.
    rollbackFailedInstancesOnPolicyBreach boolean
    Rollback failed instances to previous model if the Rolling Upgrade policy is violated.
    enable_cross_zone_upgrade bool
    Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size.
    max_batch_instance_percent int
    The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
    max_surge bool
    Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch.
    max_unhealthy_instance_percent int
    The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
    max_unhealthy_upgraded_instance_percent int
    The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
    pause_time_between_batches str
    The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
    prioritize_unhealthy_instances bool
    Upgrade all unhealthy instances in a scale set before any healthy instances.