1. Packages
  2. Azure Native
  3. API Docs
  4. compute
  5. VirtualMachineScaleSet
This is the latest version of Azure Native. Use the Azure Native v1 docs if using the v1 version of this package.
Azure Native v2.33.0 published on Friday, Mar 22, 2024 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 v1 docs if using the v1 version of this package.
Azure Native v2.33.0 published on Friday, Mar 22, 2024 by Pulumi

    Describes a Virtual Machine Scale Set. Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01.

    Other available API versions: 2015-06-15, 2016-04-30-preview, 2023-07-01, 2023-09-01.

    Example Usage

    Create a VMSS with an extension that has suppressFailures enabled

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
        {
            Location = "westus",
            Overprovision = true,
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 3,
                Name = "Standard_D1_v2",
                Tier = "Standard",
            },
            UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
            {
                Mode = AzureNative.Compute.UpgradeMode.Manual,
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
                {
                    BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                    {
                        Enabled = true,
                        StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                    },
                },
                ExtensionProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionProfileArgs
                {
                    Extensions = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionArgs
                        {
                            AutoUpgradeMinorVersion = false,
                            Name = "{extension-name}",
                            Publisher = "{extension-Publisher}",
                            Settings = null,
                            SuppressFailures = true,
                            Type = "{extension-Type}",
                            TypeHandlerVersion = "{handler-version}",
                        },
                    },
                },
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2016-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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:                nil,
    							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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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()
                            .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
                boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                    enabled=True,
                    storage_uri="http://{existing-storage-account-name}.blob.core.windows.net",
                ),
            ),
            extension_profile=azure_native.compute.VirtualMachineScaleSetExtensionProfileArgs(
                extensions=[azure_native.compute.VirtualMachineScaleSetExtensionArgs(
                    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=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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:           nil,
    							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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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()
                            .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
                boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                    enabled=True,
                    storage_uri="http://{existing-storage-account-name}.blob.core.windows.net",
                ),
            ),
            extension_profile=azure_native.compute.VirtualMachineScaleSetExtensionProfileArgs(
                extensions=[azure_native.compute.VirtualMachineScaleSetExtensionArgs(
                    auto_upgrade_minor_version=False,
                    name="{extension-name}",
                    protected_settings_from_key_vault=azure_native.compute.KeyVaultSecretReferenceArgs(
                        secret_url="https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e",
                        source_vault=azure_native.compute.SubResourceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        Image = new AzureNative.Compute.Inputs.VirtualHardDiskArgs
                        {
                            Uri = "http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd",
                        },
                        Name = "osDisk",
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						Image: &compute.VirtualHardDiskArgs{
    							Uri: pulumi.String("http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd"),
    						},
    						Name: pulumi.String("osDisk"),
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    image=azure_native.compute.VirtualHardDiskArgs(
                        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}")
    
    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: "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}",
    });
    
    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 = "FromImage",
                        Name = "osDisk",
                        VhdContainers = new[]
                        {
                            "http://{existing-storage-account-name-0}.blob.core.windows.net/vhdContainer",
                            "http://{existing-storage-account-name-1}.blob.core.windows.net/vhdContainer",
                            "http://{existing-storage-account-name-2}.blob.core.windows.net/vhdContainer",
                            "http://{existing-storage-account-name-3}.blob.core.windows.net/vhdContainer",
                            "http://{existing-storage-account-name-4}.blob.core.windows.net/vhdContainer",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						Name:         pulumi.String("osDisk"),
    						VhdContainers: pulumi.StringArray{
    							pulumi.String("http://{existing-storage-account-name-0}.blob.core.windows.net/vhdContainer"),
    							pulumi.String("http://{existing-storage-account-name-1}.blob.core.windows.net/vhdContainer"),
    							pulumi.String("http://{existing-storage-account-name-2}.blob.core.windows.net/vhdContainer"),
    							pulumi.String("http://{existing-storage-account-name-3}.blob.core.windows.net/vhdContainer"),
    							pulumi.String("http://{existing-storage-account-name-4}.blob.core.windows.net/vhdContainer"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    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}")
    
    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: "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}",
    });
    
    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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/mySharedGallery/images/mySharedImage",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "IPv4",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name2}",
                                    },
                                },
                            },
                            Name = "{nicConfig2-name}",
                            Primary = false,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("IPv4"),
    									Subnet: &compute.ApiEntityReferenceArgs{
    										Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name2}"),
    									},
    								},
    							},
    							Name:    pulumi.String("{nicConfig2-name}"),
    							Primary: pulumi.Bool(false),
    						},
    					},
    				},
    				OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
    					AdminPassword:      pulumi.String("{your-password}"),
    					AdminUsername:      pulumi.String("{your-username}"),
    					ComputerNamePrefix: pulumi.String("{vmss-name}"),
    				},
    				StorageProfile: &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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[
                    azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                        disable_tcp_state_tracking=True,
                        enable_accelerated_networking=True,
                        enable_ip_forwarding=True,
                        ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                            name="{vmss-name}",
                            subnet=azure_native.compute.ApiEntityReferenceArgs(
                                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                            ),
                        )],
                        name="{nicConfig1-name}",
                        primary=True,
                    ),
                    azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                        disable_tcp_state_tracking=False,
                        enable_accelerated_networking=False,
                        enable_ip_forwarding=False,
                        ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                            name="{nicConfig2-name}",
                            primary=True,
                            private_ip_address_version="IPv4",
                            subnet=azure_native.compute.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,
                    ),
                ],
            ),
            os_profile=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            application_profile=azure_native.compute.ApplicationProfileArgs(
                gallery_applications=[
                    azure_native.compute.VMGalleryApplicationArgs(
                        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,
                    ),
                    azure_native.compute.VMGalleryApplicationArgs(
                        package_reference_id="/subscriptions/32c17a9e-aa7b-4ba5-a45b-e324116b6fdg/resourceGroups/myresourceGroupName3/providers/Microsoft.Compute/galleries/myGallery2/applications/MyApplication2/versions/1.1",
                    ),
                ],
            ),
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 DiskEncryptionSet resource in os disk and data disk.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
        {
            Location = "westus",
            Overprovision = true,
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 3,
                Name = "Standard_DS1_v2",
                Tier = "Standard",
            },
            UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
            {
                Mode = AzureNative.Compute.UpgradeMode.Manual,
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    DataDisks = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
                        {
                            Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                            CreateOption = "Empty",
                            DiskSizeGB = 1023,
                            Lun = 0,
                            ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                            {
                                DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
                                {
                                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                                },
                                StorageAccountType = "Standard_LRS",
                            },
                        },
                    },
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            DiskEncryptionSet = new AzureNative.Compute.Inputs.DiskEncryptionSetParametersArgs
                            {
                                Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                            },
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_DS1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("Empty"),
    							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("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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							DiskEncryptionSet: &compute.DiskEncryptionSetParametersArgs{
    								Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"),
    							},
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_DS1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                data_disks=[azure_native.compute.VirtualMachineScaleSetDataDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="Empty",
                    disk_size_gb=1023,
                    lun=0,
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        disk_encryption_set=azure_native.compute.DiskEncryptionSetParametersArgs(
                            id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        ),
                        storage_account_type="Standard_LRS",
                    ),
                )],
                image_reference=azure_native.compute.ImageReferenceArgs(
                    id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        disk_encryption_set=azure_native.compute.DiskEncryptionSetParametersArgs(
                            id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        ),
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "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: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: "FromImage",
                    managedDisk: {
                        diskEncryptionSet: {
                            id: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
                        },
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "IPv4",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name}",
                                    },
                                },
                            },
                            Name = "{fpgaNic-Name}",
                            Primary = false,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("IPv4"),
    									Subnet: &compute.ApiEntityReferenceArgs{
    										Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-fpga-subnet-name}"),
    									},
    								},
    							},
    							Name:    pulumi.String("{fpgaNic-Name}"),
    							Primary: pulumi.Bool(false),
    						},
    					},
    				},
    				OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
    					AdminPassword:      pulumi.String("{your-password}"),
    					AdminUsername:      pulumi.String("{your-username}"),
    					ComputerNamePrefix: pulumi.String("{vmss-name}"),
    				},
    				StorageProfile: &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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[
                    azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                        enable_ip_forwarding=True,
                        ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                            name="{vmss-name}",
                            subnet=azure_native.compute.ApiEntityReferenceArgs(
                                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                            ),
                        )],
                        name="{vmss-name}",
                        primary=True,
                    ),
                    azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                        enable_accelerated_networking=False,
                        enable_fpga=True,
                        enable_ip_forwarding=False,
                        ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                            name="{fpgaNic-Name}",
                            primary=True,
                            private_ip_address_version="IPv4",
                            subnet=azure_native.compute.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,
                    ),
                ],
            ),
            os_profile=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:      pulumi.String("westus"),
    			Overprovision: pulumi.Bool(true),
    			Plan: &compute.PlanArgs{
    				Name:      pulumi.String("windows2016"),
    				Product:   pulumi.String("windows-data-science-vm"),
    				Publisher: pulumi.String("microsoft-ads"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_DS1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        plan=azure_native.compute.PlanArgs(
            name="windows2016",
            product="windows-data-science-vm",
            publisher="microsoft-ads",
        ),
        resource_group_name="myResourceGroup",
        sku=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_DS1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            security_profile=azure_native.compute.SecurityProfileArgs(
                encryption_at_host=True,
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="windows-data-science-vm",
                    publisher="microsoft-ads",
                    sku="windows2016",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_ONLY,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 OS image scheduled events enabled.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
        {
            Location = "westus",
            Overprovision = true,
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 3,
                Name = "Standard_D1_v2",
                Tier = "Standard",
            },
            UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
            {
                Mode = AzureNative.Compute.UpgradeMode.Manual,
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                ScheduledEventsProfile = new AzureNative.Compute.Inputs.ScheduledEventsProfileArgs
                {
                    OsImageNotificationProfile = new AzureNative.Compute.Inputs.OSImageNotificationProfileArgs
                    {
                        Enable = true,
                        NotBeforeTimeout = "PT15M",
                    },
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2016-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            scheduled_events_profile=azure_native.compute.ScheduledEventsProfileArgs(
                os_image_notification_profile=azure_native.compute.OSImageNotificationProfileArgs(
                    enable=True,
                    not_before_timeout="PT15M",
                ),
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 Security Posture Reference

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
        {
            Location = "eastus2euap",
            Overprovision = true,
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 3,
                Name = "Standard_A1",
                Tier = "Standard",
            },
            UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
            {
                AutomaticOSUpgradePolicy = new AzureNative.Compute.Inputs.AutomaticOSUpgradePolicyArgs
                {
                    EnableAutomaticOSUpgrade = true,
                },
                Mode = AzureNative.Compute.UpgradeMode.Automatic,
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                SecurityPostureReference = new AzureNative.Compute.Inputs.SecurityPostureReferenceArgs
                {
                    Id = "/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest",
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2022-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        Name = "osDisk",
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("eastus2euap"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_A1"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.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("FromImage"),
    						Name:         pulumi.String("osDisk"),
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_A1",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            automatic_os_upgrade_policy=azure_native.compute.AutomaticOSUpgradePolicyArgs(
                enable_automatic_os_upgrade=True,
            ),
            mode=azure_native.compute.UpgradeMode.AUTOMATIC,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            security_posture_reference=azure_native.compute.SecurityPostureReferenceArgs(
                id="/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2022-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    name="osDisk",
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    name: "osDisk",
                },
            },
        },
        vmScaleSetName: "{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 = "ConfidentialVM",
                    UefiSettings = new AzureNative.Compute.Inputs.UefiSettingsArgs
                    {
                        SecureBootEnabled = true,
                        VTpmEnabled = true,
                    },
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "2019-datacenter-cvm",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "windows-cvm",
                        Version = "17763.2183.2109130127",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            SecurityProfile = new AzureNative.Compute.Inputs.VMDiskSecurityProfileArgs
                            {
                                SecurityEncryptionType = "VMGuestStateOnly",
                            },
                            StorageAccountType = "StandardSSD_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_DC2as_v5"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("ConfidentialVM"),
    					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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							SecurityProfile: &compute.VMDiskSecurityProfileArgs{
    								SecurityEncryptionType: pulumi.String("VMGuestStateOnly"),
    							},
    							StorageAccountType: pulumi.String("StandardSSD_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_DC2as_v5",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            security_profile=azure_native.compute.SecurityProfileArgs(
                security_type="ConfidentialVM",
                uefi_settings=azure_native.compute.UefiSettingsArgs(
                    secure_boot_enabled=True,
                    v_tpm_enabled=True,
                ),
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="2019-datacenter-cvm",
                    publisher="MicrosoftWindowsServer",
                    sku="windows-cvm",
                    version="17763.2183.2109130127",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_ONLY,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        security_profile=azure_native.compute.VMDiskSecurityProfileArgs(
                            security_encryption_type="VMGuestStateOnly",
                        ),
                        storage_account_type="StandardSSD_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "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: "FromImage",
                    managedDisk: {
                        securityProfile: {
                            securityEncryptionType: "VMGuestStateOnly",
                        },
                        storageAccountType: "StandardSSD_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 Service Artifact Reference

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
        {
            Location = "eastus2euap",
            Overprovision = true,
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 3,
                Name = "Standard_A1",
                Tier = "Standard",
            },
            UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
            {
                AutomaticOSUpgradePolicy = new AzureNative.Compute.Inputs.AutomaticOSUpgradePolicyArgs
                {
                    EnableAutomaticOSUpgrade = true,
                },
                Mode = AzureNative.Compute.UpgradeMode.Automatic,
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                ServiceArtifactReference = new AzureNative.Compute.Inputs.ServiceArtifactReferenceArgs
                {
                    Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/serviceArtifacts/serviceArtifactName/vmArtifactsProfiles/vmArtifactsProfilesName",
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2022-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        Name = "osDisk",
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("eastus2euap"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_A1"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.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("FromImage"),
    						Name:         pulumi.String("osDisk"),
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_A1",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            automatic_os_upgrade_policy=azure_native.compute.AutomaticOSUpgradePolicyArgs(
                enable_automatic_os_upgrade=True,
            ),
            mode=azure_native.compute.UpgradeMode.AUTOMATIC,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            service_artifact_reference=azure_native.compute.ServiceArtifactReferenceArgs(
                id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/serviceArtifacts/serviceArtifactName/vmArtifactsProfiles/vmArtifactsProfilesName",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2022-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    name="osDisk",
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    name: "osDisk",
                },
            },
        },
        vmScaleSetName: "{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 = "TrustedLaunch",
                    UefiSettings = new AzureNative.Compute.Inputs.UefiSettingsArgs
                    {
                        SecureBootEnabled = true,
                        VTpmEnabled = true,
                    },
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "windowsserver-gen2preview-preview",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "windows10-tvm",
                        Version = "18363.592.2001092016",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "StandardSSD_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D2s_v3"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("TrustedLaunch"),
    					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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("StandardSSD_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D2s_v3",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            security_profile=azure_native.compute.SecurityProfileArgs(
                security_type="TrustedLaunch",
                uefi_settings=azure_native.compute.UefiSettingsArgs(
                    secure_boot_enabled=True,
                    v_tpm_enabled=True,
                ),
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="windowsserver-gen2preview-preview",
                    publisher="MicrosoftWindowsServer",
                    sku="windows10-tvm",
                    version="18363.592.2001092016",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_ONLY,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="StandardSSD_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "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: "FromImage",
                    managedDisk: {
                        storageAccountType: "StandardSSD_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:      pulumi.String("westus"),
    			Overprovision: pulumi.Bool(true),
    			Plan: &compute.PlanArgs{
    				Name:      pulumi.String("windows2016"),
    				Product:   pulumi.String("windows-data-science-vm"),
    				Publisher: pulumi.String("microsoft-ads"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        plan=azure_native.compute.PlanArgs(
            name="windows2016",
            product="windows-data-science-vm",
            publisher="microsoft-ads",
        ),
        resource_group_name="myResourceGroup",
        sku=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="windows-data-science-vm",
                    publisher="microsoft-ads",
                    sku="windows2016",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        application_gateway_backend_address_pools=[azure_native.compute.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=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "IPv4",
                                    },
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2016-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("IPv4"),
    									},
    									Subnet: &compute.ApiEntityReferenceArgs{
    										Id: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}"),
    									},
    								},
    							},
    							Name:    pulumi.String("{vmss-name}"),
    							Primary: pulumi.Bool(true),
    						},
    					},
    				},
    				OsProfile: &compute.VirtualMachineScaleSetOSProfileArgs{
    					AdminPassword:      pulumi.String("{your-password}"),
    					AdminUsername:      pulumi.String("{your-username}"),
    					ComputerNamePrefix: pulumi.String("{vmss-name}"),
    				},
    				StorageProfile: &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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        load_balancer_backend_address_pools=[azure_native.compute.SubResourceArgs(
                            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=[azure_native.compute.SubResourceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetPublicIPAddressConfigurationArgs(
                            name="{vmss-name}",
                            public_ip_address_version="IPv4",
                        ),
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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",
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 3,
                Name = "Standard_D1_v2",
                Tier = "Standard",
            },
            UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
            {
                Mode = AzureNative.Compute.UpgradeMode.Manual,
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2016-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			AutomaticRepairsPolicy: &compute.AutomaticRepairsPolicyArgs{
    				Enabled:     pulumi.Bool(true),
    				GracePeriod: pulumi.String("PT10M"),
    			},
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import com.pulumi.azurenative.compute.inputs.AutomaticRepairsPolicyArgs;
    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")
                .sku(SkuArgs.builder()
                    .capacity(3)
                    .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 pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        automatic_repairs_policy=azure_native.compute.AutomaticRepairsPolicyArgs(
            enabled=True,
            grace_period="PT10M",
        ),
        location="westus",
        overprovision=True,
        resource_group_name="myResourceGroup",
        sku=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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",
        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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          automaticRepairsPolicy:
            enabled: true
            gracePeriod: PT10M
          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 boot diagnostics.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
        {
            Location = "westus",
            Overprovision = true,
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 3,
                Name = "Standard_D1_v2",
                Tier = "Standard",
            },
            UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
            {
                Mode = AzureNative.Compute.UpgradeMode.Manual,
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                DiagnosticsProfile = new AzureNative.Compute.Inputs.DiagnosticsProfileArgs
                {
                    BootDiagnostics = new AzureNative.Compute.Inputs.BootDiagnosticsArgs
                    {
                        Enabled = true,
                        StorageUri = "http://{existing-storage-account-name}.blob.core.windows.net",
                    },
                },
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2016-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
                boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                    enabled=True,
                    storage_uri="http://{existing-storage-account-name}.blob.core.windows.net",
                ),
            ),
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "Empty",
                            DiskSizeGB = 1023,
                            Lun = 0,
                        },
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
                        {
                            CreateOption = "Empty",
                            DiskSizeGB = 1023,
                            Lun = 1,
                        },
                    },
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2016-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        DiskSizeGB = 512,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D2_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("Empty"),
    							DiskSizeGB:   pulumi.Int(1023),
    							Lun:          pulumi.Int(0),
    						},
    						&compute.VirtualMachineScaleSetDataDiskArgs{
    							CreateOption: pulumi.String("Empty"),
    							DiskSizeGB:   pulumi.Int(1023),
    							Lun:          pulumi.Int(1),
    						},
    					},
    					ImageReference: &compute.ImageReferenceArgs{
    						Offer:     pulumi.String("WindowsServer"),
    						Publisher: pulumi.String("MicrosoftWindowsServer"),
    						Sku:       pulumi.String("2016-Datacenter"),
    						Version:   pulumi.String("latest"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String("FromImage"),
    						DiskSizeGB:   pulumi.Int(512),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D2_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                data_disks=[
                    azure_native.compute.VirtualMachineScaleSetDataDiskArgs(
                        create_option="Empty",
                        disk_size_gb=1023,
                        lun=0,
                    ),
                    azure_native.compute.VirtualMachineScaleSetDataDiskArgs(
                        create_option="Empty",
                        disk_size_gb=1023,
                        lun=1,
                    ),
                ],
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    disk_size_gb=512,
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "Empty",
                        diskSizeGB: 1023,
                        lun: 0,
                    },
                    {
                        createOption: "Empty",
                        diskSizeGB: 1023,
                        lun: 1,
                    },
                ],
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: "FromImage",
                    diskSizeGB: 512,
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 disks using placement property.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
        {
            Location = "westus",
            Overprovision = true,
            Plan = new AzureNative.Compute.Inputs.PlanArgs
            {
                Name = "windows2016",
                Product = "windows-data-science-vm",
                Publisher = "microsoft-ads",
            },
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 3,
                Name = "Standard_DS1_v2",
                Tier = "Standard",
            },
            UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
            {
                Mode = AzureNative.Compute.UpgradeMode.Manual,
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "windows-data-science-vm",
                        Publisher = "microsoft-ads",
                        Sku = "windows2016",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadOnly,
                        CreateOption = "FromImage",
                        DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
                        {
                            Option = "Local",
                            Placement = "ResourceDisk",
                        },
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:      pulumi.String("westus"),
    			Overprovision: pulumi.Bool(true),
    			Plan: &compute.PlanArgs{
    				Name:      pulumi.String("windows2016"),
    				Product:   pulumi.String("windows-data-science-vm"),
    				Publisher: pulumi.String("microsoft-ads"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_DS1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						DiffDiskSettings: &compute.DiffDiskSettingsArgs{
    							Option:    pulumi.String("Local"),
    							Placement: pulumi.String("ResourceDisk"),
    						},
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        plan=azure_native.compute.PlanArgs(
            name="windows2016",
            product="windows-data-science-vm",
            publisher="microsoft-ads",
        ),
        resource_group_name="myResourceGroup",
        sku=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_DS1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="windows-data-science-vm",
                    publisher="microsoft-ads",
                    sku="windows2016",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_ONLY,
                    create_option="FromImage",
                    diff_disk_settings=azure_native.compute.DiffDiskSettingsArgs(
                        option="Local",
                        placement="ResourceDisk",
                    ),
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    diffDiskSettings: {
                        option: "Local",
                        placement: "ResourceDisk",
                    },
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        DiffDiskSettings = new AzureNative.Compute.Inputs.DiffDiskSettingsArgs
                        {
                            Option = "Local",
                        },
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:      pulumi.String("westus"),
    			Overprovision: pulumi.Bool(true),
    			Plan: &compute.PlanArgs{
    				Name:      pulumi.String("windows2016"),
    				Product:   pulumi.String("windows-data-science-vm"),
    				Publisher: pulumi.String("microsoft-ads"),
    			},
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_DS1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						DiffDiskSettings: &compute.DiffDiskSettingsArgs{
    							Option: pulumi.String("Local"),
    						},
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        overprovision=True,
        plan=azure_native.compute.PlanArgs(
            name="windows2016",
            product="windows-data-science-vm",
            publisher="microsoft-ads",
        ),
        resource_group_name="myResourceGroup",
        sku=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_DS1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="windows-data-science-vm",
                    publisher="microsoft-ads",
                    sku="windows2016",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_ONLY,
                    create_option="FromImage",
                    diff_disk_settings=azure_native.compute.DiffDiskSettingsArgs(
                        option="Local",
                    ),
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    diffDiskSettings: {
                        option: "Local",
                    },
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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:                nil,
    							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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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()
                            .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
                boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                    enabled=True,
                    storage_uri="http://{existing-storage-account-name}.blob.core.windows.net",
                ),
            ),
            extension_profile=azure_native.compute.VirtualMachineScaleSetExtensionProfileArgs(
                extensions=[azure_native.compute.VirtualMachineScaleSetExtensionArgs(
                    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=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            diagnostics_profile=azure_native.compute.DiagnosticsProfileArgs(
                boot_diagnostics=azure_native.compute.BootDiagnosticsArgs(
                    enabled=True,
                ),
            ),
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Premium_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Premium_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Premium_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Premium_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "Flexible",
            PriorityMixPolicy = new AzureNative.Compute.Inputs.PriorityMixPolicyArgs
            {
                BaseRegularPriorityCount = 4,
                RegularPriorityPercentageAboveBase = 50,
            },
            ResourceGroupName = "myResourceGroup",
            SinglePlacementGroup = false,
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 10,
                Name = "Standard_A8m_v2",
                Tier = "Standard",
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                BillingProfile = new AzureNative.Compute.Inputs.BillingProfileArgs
                {
                    MaxPrice = -1,
                },
                EvictionPolicy = "Deallocate",
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                Priority = "Spot",
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2016-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			OrchestrationMode: pulumi.String("Flexible"),
    			PriorityMixPolicy: &compute.PriorityMixPolicyArgs{
    				BaseRegularPriorityCount:           pulumi.Int(4),
    				RegularPriorityPercentageAboveBase: pulumi.Int(50),
    			},
    			ResourceGroupName:    pulumi.String("myResourceGroup"),
    			SinglePlacementGroup: pulumi.Bool(false),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(10),
    				Name:     pulumi.String("Standard_A8m_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfileArgs{
    				BillingProfile: &compute.BillingProfileArgs{
    					MaxPrice: -1,
    				},
    				EvictionPolicy: pulumi.String("Deallocate"),
    				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("Spot"),
    				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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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.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)
                    .name("Standard_A8m_v2")
                    .tier("Standard")
                    .build())
                .virtualMachineProfile(VirtualMachineScaleSetVMProfileArgs.builder()
                    .billingProfile(BillingProfileArgs.builder()
                        .maxPrice("TODO: GenUnaryOpExpression")
                        .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 pulumi
    import pulumi_azure_native as azure_native
    
    virtual_machine_scale_set = azure_native.compute.VirtualMachineScaleSet("virtualMachineScaleSet",
        location="westus",
        orchestration_mode="Flexible",
        priority_mix_policy=azure_native.compute.PriorityMixPolicyArgs(
            base_regular_priority_count=4,
            regular_priority_percentage_above_base=50,
        ),
        resource_group_name="myResourceGroup",
        single_placement_group=False,
        sku=azure_native.compute.SkuArgs(
            capacity=10,
            name="Standard_A8m_v2",
            tier="Standard",
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            billing_profile=azure_native.compute.BillingProfileArgs(
                max_price=-1,
            ),
            eviction_policy="Deallocate",
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            priority="Spot",
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "Flexible",
        priorityMixPolicy: {
            baseRegularPriorityCount: 4,
            regularPriorityPercentageAboveBase: 50,
        },
        resourceGroupName: "myResourceGroup",
        singlePlacementGroup: false,
        sku: {
            capacity: 10,
            name: "Standard_A8m_v2",
            tier: "Standard",
        },
        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: azure_native.compute.CachingTypes.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,
                Rules = new[]
                {
                    "OldestVM",
                },
            },
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 3,
                Name = "Standard_D1_v2",
                Tier = "Standard",
            },
            UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
            {
                Mode = AzureNative.Compute.UpgradeMode.Manual,
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2016-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			ScaleInPolicy: &compute.ScaleInPolicyArgs{
    				ForceDeletion: pulumi.Bool(true),
    				Rules: pulumi.StringArray{
    					pulumi.String("OldestVM"),
    				},
    			},
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .rules("OldestVM")
                    .build())
                .sku(SkuArgs.builder()
                    .capacity(3)
                    .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 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=azure_native.compute.ScaleInPolicyArgs(
            force_deletion=True,
            rules=["OldestVM"],
        ),
        sku=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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,
            rules: ["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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{vmss-name}",
    });
    
    resources:
      virtualMachineScaleSet:
        type: azure-native:compute:VirtualMachineScaleSet
        properties:
          location: westus
          overprovision: true
          resourceGroupName: myResourceGroup
          scaleInPolicy:
            forceDeletion: 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 spot restore policy

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
        {
            Location = "westus",
            Overprovision = true,
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 2,
                Name = "Standard_A8m_v2",
                Tier = "Standard",
            },
            SpotRestorePolicy = new AzureNative.Compute.Inputs.SpotRestorePolicyArgs
            {
                Enabled = true,
                RestoreTimeout = "PT1H",
            },
            UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
            {
                Mode = AzureNative.Compute.UpgradeMode.Manual,
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                BillingProfile = new AzureNative.Compute.Inputs.BillingProfileArgs
                {
                    MaxPrice = -1,
                },
                EvictionPolicy = "Deallocate",
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                Priority = "Spot",
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2016-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(2),
    				Name:     pulumi.String("Standard_A8m_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			SpotRestorePolicy: &compute.SpotRestorePolicyArgs{
    				Enabled:        pulumi.Bool(true),
    				RestoreTimeout: pulumi.String("PT1H"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfileArgs{
    				BillingProfile: &compute.BillingProfileArgs{
    					MaxPrice: -1,
    				},
    				EvictionPolicy: pulumi.String("Deallocate"),
    				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("Spot"),
    				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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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("TODO: GenUnaryOpExpression")
                        .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 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=azure_native.compute.SkuArgs(
            capacity=2,
            name="Standard_A8m_v2",
            tier="Standard",
        ),
        spot_restore_policy=azure_native.compute.SpotRestorePolicyArgs(
            enabled=True,
            restore_timeout="PT1H",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            billing_profile=azure_native.compute.BillingProfileArgs(
                max_price=-1,
            ),
            eviction_policy="Deallocate",
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            priority="Spot",
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "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: azure_native.compute.CachingTypes.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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
                linux_configuration=azure_native.compute.LinuxConfigurationArgs(
                    disable_password_authentication=True,
                    ssh=azure_native.compute.SshConfigurationArgs(
                        public_keys=[azure_native.compute.SshPublicKeyArgs(
                            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=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            scheduled_events_profile=azure_native.compute.ScheduledEventsProfileArgs(
                terminate_notification_profile=azure_native.compute.TerminateNotificationProfileArgs(
                    enable=True,
                    not_before_timeout="PT5M",
                ),
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
                UserData = "RXhhbXBsZSBVc2VyRGF0YQ==",
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    				UserData: pulumi.String("RXhhbXBsZSBVc2VyRGF0YQ=="),
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
            user_data="RXhhbXBsZSBVc2VyRGF0YQ==",
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
            userData: "RXhhbXBsZSBVc2VyRGF0YQ==",
        },
        vmScaleSetName: "{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 = "Empty",
                            DiskSizeGB = 1023,
                            Lun = 0,
                        },
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskArgs
                        {
                            CreateOption = "Empty",
                            DiskSizeGB = 1023,
                            Lun = 1,
                        },
                    },
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2016-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        DiskSizeGB = 512,
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
            Zones = new[]
            {
                "1",
                "3",
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("centralus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(2),
    				Name:     pulumi.String("Standard_A1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeAutomatic,
    			},
    			VirtualMachineProfile: &compute.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("Empty"),
    							DiskSizeGB:   pulumi.Int(1023),
    							Lun:          pulumi.Int(0),
    						},
    						&compute.VirtualMachineScaleSetDataDiskArgs{
    							CreateOption: pulumi.String("Empty"),
    							DiskSizeGB:   pulumi.Int(1023),
    							Lun:          pulumi.Int(1),
    						},
    					},
    					ImageReference: &compute.ImageReferenceArgs{
    						Offer:     pulumi.String("WindowsServer"),
    						Publisher: pulumi.String("MicrosoftWindowsServer"),
    						Sku:       pulumi.String("2016-Datacenter"),
    						Version:   pulumi.String("latest"),
    					},
    					OsDisk: &compute.VirtualMachineScaleSetOSDiskArgs{
    						Caching:      compute.CachingTypesReadWrite,
    						CreateOption: pulumi.String("FromImage"),
    						DiskSizeGB:   pulumi.Int(512),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    			Zones: pulumi.StringArray{
    				pulumi.String("1"),
    				pulumi.String("3"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=2,
            name="Standard_A1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.AUTOMATIC,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                data_disks=[
                    azure_native.compute.VirtualMachineScaleSetDataDiskArgs(
                        create_option="Empty",
                        disk_size_gb=1023,
                        lun=0,
                    ),
                    azure_native.compute.VirtualMachineScaleSetDataDiskArgs(
                        create_option="Empty",
                        disk_size_gb=1023,
                        lun=1,
                    ),
                ],
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    disk_size_gb=512,
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}",
        zones=[
            "1",
            "3",
        ])
    
    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: "Empty",
                        diskSizeGB: 1023,
                        lun: 0,
                    },
                    {
                        createOption: "Empty",
                        diskSizeGB: 1023,
                        lun: 1,
                    },
                ],
                imageReference: {
                    offer: "WindowsServer",
                    publisher: "MicrosoftWindowsServer",
                    sku: "2016-Datacenter",
                    version: "latest",
                },
                osDisk: {
                    caching: azure_native.compute.CachingTypes.ReadWrite,
                    createOption: "FromImage",
                    diskSizeGB: 512,
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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 = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
                UserData = "RXhhbXBsZSBVc2VyRGF0YQ==",
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_D1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    				UserData: pulumi.String("RXhhbXBsZSBVc2VyRGF0YQ=="),
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_D1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            hardware_profile=azure_native.compute.VirtualMachineScaleSetHardwareProfileArgs(
                vm_size_properties=azure_native.compute.VMSizePropertiesArgs(
                    v_cpus_available=1,
                    v_cpus_per_core=1,
                ),
            ),
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
            user_data="RXhhbXBsZSBVc2VyRGF0YQ==",
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
            userData: "RXhhbXBsZSBVc2VyRGF0YQ==",
        },
        vmScaleSetName: "{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 or update a scale set with capacity reservation.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var virtualMachineScaleSet = new AzureNative.Compute.VirtualMachineScaleSet("virtualMachineScaleSet", new()
        {
            Location = "westus",
            Overprovision = true,
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.SkuArgs
            {
                Capacity = 3,
                Name = "Standard_DS1_v2",
                Tier = "Standard",
            },
            UpgradePolicy = new AzureNative.Compute.Inputs.UpgradePolicyArgs
            {
                Mode = AzureNative.Compute.UpgradeMode.Manual,
            },
            VirtualMachineProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetVMProfileArgs
            {
                CapacityReservation = new AzureNative.Compute.Inputs.CapacityReservationProfileArgs
                {
                    CapacityReservationGroup = new AzureNative.Compute.Inputs.SubResourceArgs
                    {
                        Id = "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}",
                    },
                },
                NetworkProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileArgs
                {
                    NetworkInterfaceConfigurations = new[]
                    {
                        new AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationArgs
                        {
                            EnableIPForwarding = true,
                            IpConfigurations = new[]
                            {
                                new AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationArgs
                                {
                                    Name = "{vmss-name}",
                                    Subnet = new AzureNative.Compute.Inputs.ApiEntityReferenceArgs
                                    {
                                        Id = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}",
                                    },
                                },
                            },
                            Name = "{vmss-name}",
                            Primary = true,
                        },
                    },
                },
                OsProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileArgs
                {
                    AdminPassword = "{your-password}",
                    AdminUsername = "{your-username}",
                    ComputerNamePrefix = "{vmss-name}",
                },
                StorageProfile = new AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileArgs
                {
                    ImageReference = new AzureNative.Compute.Inputs.ImageReferenceArgs
                    {
                        Offer = "WindowsServer",
                        Publisher = "MicrosoftWindowsServer",
                        Sku = "2016-Datacenter",
                        Version = "latest",
                    },
                    OsDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskArgs
                    {
                        Caching = AzureNative.Compute.CachingTypes.ReadWrite,
                        CreateOption = "FromImage",
                        ManagedDisk = new AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersArgs
                        {
                            StorageAccountType = "Standard_LRS",
                        },
                    },
                },
            },
            VmScaleSetName = "{vmss-name}",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewVirtualMachineScaleSet(ctx, "virtualMachineScaleSet", &compute.VirtualMachineScaleSetArgs{
    			Location:          pulumi.String("westus"),
    			Overprovision:     pulumi.Bool(true),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.SkuArgs{
    				Capacity: pulumi.Float64(3),
    				Name:     pulumi.String("Standard_DS1_v2"),
    				Tier:     pulumi.String("Standard"),
    			},
    			UpgradePolicy: &compute.UpgradePolicyArgs{
    				Mode: compute.UpgradeModeManual,
    			},
    			VirtualMachineProfile: &compute.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("FromImage"),
    						ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParametersArgs{
    							StorageAccountType: pulumi.String("Standard_LRS"),
    						},
    					},
    				},
    			},
    			VmScaleSetName: pulumi.String("{vmss-name}"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSet;
    import com.pulumi.azurenative.compute.VirtualMachineScaleSetArgs;
    import 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)
                    .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 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=azure_native.compute.SkuArgs(
            capacity=3,
            name="Standard_DS1_v2",
            tier="Standard",
        ),
        upgrade_policy=azure_native.compute.UpgradePolicyArgs(
            mode=azure_native.compute.UpgradeMode.MANUAL,
        ),
        virtual_machine_profile=azure_native.compute.VirtualMachineScaleSetVMProfileArgs(
            capacity_reservation=azure_native.compute.CapacityReservationProfileArgs(
                capacity_reservation_group=azure_native.compute.SubResourceArgs(
                    id="subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/CapacityReservationGroups/{crgName}",
                ),
            ),
            network_profile=azure_native.compute.VirtualMachineScaleSetNetworkProfileArgs(
                network_interface_configurations=[azure_native.compute.VirtualMachineScaleSetNetworkConfigurationArgs(
                    enable_ip_forwarding=True,
                    ip_configurations=[azure_native.compute.VirtualMachineScaleSetIPConfigurationArgs(
                        name="{vmss-name}",
                        subnet=azure_native.compute.ApiEntityReferenceArgs(
                            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=azure_native.compute.VirtualMachineScaleSetOSProfileArgs(
                admin_password="{your-password}",
                admin_username="{your-username}",
                computer_name_prefix="{vmss-name}",
            ),
            storage_profile=azure_native.compute.VirtualMachineScaleSetStorageProfileArgs(
                image_reference=azure_native.compute.ImageReferenceArgs(
                    offer="WindowsServer",
                    publisher="MicrosoftWindowsServer",
                    sku="2016-Datacenter",
                    version="latest",
                ),
                os_disk=azure_native.compute.VirtualMachineScaleSetOSDiskArgs(
                    caching=azure_native.compute.CachingTypes.READ_WRITE,
                    create_option="FromImage",
                    managed_disk=azure_native.compute.VirtualMachineScaleSetManagedDiskParametersArgs(
                        storage_account_type="Standard_LRS",
                    ),
                ),
            ),
        ),
        vm_scale_set_name="{vmss-name}")
    
    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: "FromImage",
                    managedDisk: {
                        storageAccountType: "Standard_LRS",
                    },
                },
            },
        },
        vmScaleSetName: "{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

    new VirtualMachineScaleSet(name: string, args: VirtualMachineScaleSetArgs, opts?: CustomResourceOptions);
    @overload
    def VirtualMachineScaleSet(resource_name: str,
                               opts: Optional[ResourceOptions] = None,
                               additional_capabilities: Optional[AdditionalCapabilitiesArgs] = None,
                               automatic_repairs_policy: Optional[AutomaticRepairsPolicyArgs] = None,
                               constrained_maximum_capacity: Optional[bool] = None,
                               do_not_run_extensions_on_overprovisioned_vms: Optional[bool] = None,
                               extended_location: Optional[ExtendedLocationArgs] = None,
                               host_group: Optional[SubResourceArgs] = 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,
                               proximity_placement_group: Optional[SubResourceArgs] = None,
                               resource_group_name: Optional[str] = None,
                               scale_in_policy: Optional[ScaleInPolicyArgs] = None,
                               single_placement_group: Optional[bool] = None,
                               sku: Optional[SkuArgs] = None,
                               spot_restore_policy: Optional[SpotRestorePolicyArgs] = None,
                               tags: Optional[Mapping[str, str]] = None,
                               upgrade_policy: Optional[UpgradePolicyArgs] = None,
                               virtual_machine_profile: Optional[VirtualMachineScaleSetVMProfileArgs] = None,
                               vm_scale_set_name: Optional[str] = None,
                               zone_balance: Optional[bool] = None,
                               zones: Optional[Sequence[str]] = None)
    @overload
    def VirtualMachineScaleSet(resource_name: str,
                               args: VirtualMachineScaleSetArgs,
                               opts: Optional[ResourceOptions] = 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.
    
    
    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.

    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

    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.
    ScaleInPolicy Pulumi.AzureNative.Compute.Inputs.ScaleInPolicy
    Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
    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.
    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.
    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. NOTE: Availability zones can only be set when you create the scale set
    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.
    ScaleInPolicy ScaleInPolicyArgs
    Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
    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.
    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.
    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. NOTE: Availability zones can only be set when you create the scale set
    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.
    scaleInPolicy ScaleInPolicy
    Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
    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.
    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.
    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. NOTE: Availability zones can only be set when you create the scale set
    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.
    scaleInPolicy ScaleInPolicy
    Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
    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.
    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.
    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. NOTE: Availability zones can only be set when you create the scale set
    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.
    scale_in_policy ScaleInPolicyArgs
    Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
    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.
    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.
    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. NOTE: Availability zones can only be set when you create the scale set
    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.
    scaleInPolicy Property Map
    Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set.
    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.
    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.
    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. NOTE: Availability zones can only be set when you create the scale set

    Outputs

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

    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.
    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.
    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.
    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.
    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.
    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.

    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.
    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.
    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.
    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.
    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.
    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.
    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.
    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.
    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.
    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.
    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.
    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.
    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.

    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
    DiffDiskPlacementCacheDisk
    CacheDisk
    DiffDiskPlacementResourceDisk
    ResourceDisk
    CacheDisk
    CacheDisk
    ResourceDisk
    ResourceDisk
    CacheDisk
    CacheDisk
    ResourceDisk
    ResourceDisk
    CACHE_DISK
    CacheDisk
    RESOURCE_DISK
    ResourceDisk
    "CacheDisk"
    CacheDisk
    "ResourceDisk"
    ResourceDisk

    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. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk 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.
    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. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk 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.
    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. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk 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.
    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. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk 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.
    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. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk 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.
    option String | "Local"
    Specifies the ephemeral disk settings for operating system disk.
    placement String | "CacheDisk" | "ResourceDisk"
    Specifies the ephemeral disk placement for operating system disk. Possible values are: CacheDisk, ResourceDisk. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk 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.

    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. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk 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.
    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. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk 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.
    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. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk 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.
    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. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk 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.
    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. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk 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.
    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. The defaulting behavior is: CacheDisk if one is configured for the VM size otherwise ResourceDisk 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.

    DiskControllerTypes, DiskControllerTypesArgs

    SCSI
    SCSI
    NVMe
    NVMe
    DiskControllerTypesSCSI
    SCSI
    DiskControllerTypesNVMe
    NVMe
    SCSI
    SCSI
    NVMe
    NVMe
    SCSI
    SCSI
    NVMe
    NVMe
    SCSI
    SCSI
    NV_ME
    NVMe
    "SCSI"
    SCSI
    "NVMe"
    NVMe

    DiskCreateOptionTypes, DiskCreateOptionTypesArgs

    FromImage
    FromImage
    Empty
    Empty
    Attach
    Attach
    DiskCreateOptionTypesFromImage
    FromImage
    DiskCreateOptionTypesEmpty
    Empty
    DiskCreateOptionTypesAttach
    Attach
    FromImage
    FromImage
    Empty
    Empty
    Attach
    Attach
    FromImage
    FromImage
    Empty
    Empty
    Attach
    Attach
    FROM_IMAGE
    FromImage
    EMPTY
    Empty
    ATTACH
    Attach
    "FromImage"
    FromImage
    "Empty"
    Empty
    "Attach"
    Attach

    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

    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

    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.

    InstanceViewStatus, InstanceViewStatusArgs

    Code string
    The status code.
    DisplayStatus string
    The short localizable label for the status.
    Level Pulumi.AzureNative.Compute.StatusLevelTypes
    The level code.
    Message string
    The detailed status message, including for alerts and error messages.
    Time string
    The time of the status.
    Code string
    The status code.
    DisplayStatus string
    The short localizable label for the status.
    Level StatusLevelTypes
    The level code.
    Message string
    The detailed status message, including for alerts and error messages.
    Time string
    The time of the status.
    code String
    The status code.
    displayStatus String
    The short localizable label for the status.
    level StatusLevelTypes
    The level code.
    message String
    The detailed status message, including for alerts and error messages.
    time String
    The time of the status.
    code string
    The status code.
    displayStatus string
    The short localizable label for the status.
    level StatusLevelTypes
    The level code.
    message string
    The detailed status message, including for alerts and error messages.
    time string
    The time of the status.
    code str
    The status code.
    display_status str
    The short localizable label for the status.
    level StatusLevelTypes
    The level code.
    message str
    The detailed status message, including for alerts and error messages.
    time str
    The time of the status.
    code String
    The status code.
    displayStatus String
    The short localizable label for the status.
    level "Info" | "Warning" | "Error"
    The level code.
    message String
    The detailed status message, including for alerts and error messages.
    time String
    The time of the status.

    InstanceViewStatusResponse, InstanceViewStatusResponseArgs

    Code string
    The status code.
    DisplayStatus string
    The short localizable label for the status.
    Level string
    The level code.
    Message string
    The detailed status message, including for alerts and error messages.
    Time string
    The time of the status.
    Code string
    The status code.
    DisplayStatus string
    The short localizable label for the status.
    Level string
    The level code.
    Message string
    The detailed status message, including for alerts and error messages.
    Time string
    The time of the status.
    code String
    The status code.
    displayStatus String
    The short localizable label for the status.
    level String
    The level code.
    message String
    The detailed status message, including for alerts and error messages.
    time String
    The time of the status.
    code string
    The status code.
    displayStatus string
    The short localizable label for the status.
    level string
    The level code.
    message string
    The detailed status message, including for alerts and error messages.
    time string
    The time of the status.
    code str
    The status code.
    display_status str
    The short localizable label for the status.
    level str
    The level code.
    message str
    The detailed status message, including for alerts and error messages.
    time str
    The time of the status.
    code String
    The status code.
    displayStatus String
    The short localizable label for the status.
    level String
    The level code.
    message String
    The detailed status message, including for alerts and error messages.
    time String
    The time of the status.

    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

    NetworkApiVersion, NetworkApiVersionArgs

    NetworkApiVersion_2020_11_01
    2020-11-01
    NetworkApiVersion_2020_11_01
    2020-11-01
    _20201101
    2020-11-01
    NetworkApiVersion_2020_11_01
    2020-11-01
    NETWORK_API_VERSION_2020_11_01
    2020-11-01
    "2020-11-01"
    2020-11-01

    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

    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

    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

    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.
    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.

    ScaleInPolicy, ScaleInPolicyArgs

    ForceDeletion bool
    This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview)
    Rules List<Union<string, Pulumi.AzureNative.Compute.VirtualMachineScaleSetScaleInRules>>
    The rules to be followed when scaling-in a virtual machine scale set. Possible values are: Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.
    ForceDeletion bool
    This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview)
    Rules []string
    The rules to be followed when scaling-in a virtual machine scale set. Possible values are: Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.
    forceDeletion Boolean
    This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview)
    rules List<Either<String,VirtualMachineScaleSetScaleInRules>>
    The rules to be followed when scaling-in a virtual machine scale set. Possible values are: Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.
    forceDeletion boolean
    This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview)
    rules (string | VirtualMachineScaleSetScaleInRules)[]
    The rules to be followed when scaling-in a virtual machine scale set. Possible values are: Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.
    force_deletion bool
    This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview)
    rules Sequence[Union[str, VirtualMachineScaleSetScaleInRules]]
    The rules to be followed when scaling-in a virtual machine scale set. Possible values are: Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.
    forceDeletion Boolean
    This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview)
    rules List<String | "Default" | "OldestVM" | "NewestVM">
    The rules to be followed when scaling-in a virtual machine scale set. Possible values are: Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.

    ScaleInPolicyResponse, ScaleInPolicyResponseArgs

    ForceDeletion bool
    This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview)
    Rules List<string>
    The rules to be followed when scaling-in a virtual machine scale set. Possible values are: Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.
    ForceDeletion bool
    This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview)
    Rules []string
    The rules to be followed when scaling-in a virtual machine scale set. Possible values are: Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.
    forceDeletion Boolean
    This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview)
    rules List<String>
    The rules to be followed when scaling-in a virtual machine scale set. Possible values are: Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.
    forceDeletion boolean
    This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview)
    rules string[]
    The rules to be followed when scaling-in a virtual machine scale set. Possible values are: Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.
    force_deletion bool
    This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview)
    rules Sequence[str]
    The rules to be followed when scaling-in a virtual machine scale set. Possible values are: Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.
    forceDeletion Boolean
    This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview)
    rules List<String>
    The rules to be followed when scaling-in a virtual machine scale set. Possible values are: Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.

    ScheduledEventsProfile, ScheduledEventsProfileArgs

    OsImageNotificationProfile Pulumi.AzureNative.Compute.Inputs.OSImageNotificationProfile
    Specifies OS Image Scheduled Event related configurations.
    TerminateNotificationProfile Pulumi.AzureNative.Compute.Inputs.TerminateNotificationProfile
    Specifies Terminate Scheduled Event related configurations.
    OsImageNotificationProfile OSImageNotificationProfile
    Specifies OS Image Scheduled Event related configurations.
    TerminateNotificationProfile TerminateNotificationProfile
    Specifies Terminate Scheduled Event related configurations.
    osImageNotificationProfile OSImageNotificationProfile
    Specifies OS Image Scheduled Event related configurations.
    terminateNotificationProfile TerminateNotificationProfile
    Specifies Terminate Scheduled Event related configurations.
    osImageNotificationProfile OSImageNotificationProfile
    Specifies OS Image Scheduled Event related configurations.
    terminateNotificationProfile TerminateNotificationProfile
    Specifies Terminate Scheduled Event related configurations.
    os_image_notification_profile OSImageNotificationProfile
    Specifies OS Image Scheduled Event related configurations.
    terminate_notification_profile TerminateNotificationProfile
    Specifies Terminate Scheduled Event related configurations.
    osImageNotificationProfile Property Map
    Specifies OS Image Scheduled Event related configurations.
    terminateNotificationProfile Property Map
    Specifies Terminate Scheduled Event related configurations.

    ScheduledEventsProfileResponse, ScheduledEventsProfileResponseArgs

    OsImageNotificationProfile OSImageNotificationProfileResponse
    Specifies OS Image Scheduled Event related configurations.
    TerminateNotificationProfile TerminateNotificationProfileResponse
    Specifies Terminate Scheduled Event related configurations.
    osImageNotificationProfile OSImageNotificationProfileResponse
    Specifies OS Image Scheduled Event related configurations.
    terminateNotificationProfile TerminateNotificationProfileResponse
    Specifies Terminate Scheduled Event related configurations.
    osImageNotificationProfile OSImageNotificationProfileResponse
    Specifies OS Image Scheduled Event related configurations.
    terminateNotificationProfile TerminateNotificationProfileResponse
    Specifies Terminate Scheduled Event related configurations.
    os_image_notification_profile OSImageNotificationProfileResponse
    Specifies OS Image Scheduled Event related configurations.
    terminate_notification_profile TerminateNotificationProfileResponse
    Specifies Terminate Scheduled Event related configurations.
    osImageNotificationProfile Property Map
    Specifies OS Image Scheduled Event related configurations.
    terminateNotificationProfile Property Map
    Specifies Terminate Scheduled Event related configurations.

    SecurityEncryptionTypes, SecurityEncryptionTypesArgs

    VMGuestStateOnly
    VMGuestStateOnly
    DiskWithVMGuestState
    DiskWithVMGuestState
    SecurityEncryptionTypesVMGuestStateOnly
    VMGuestStateOnly
    SecurityEncryptionTypesDiskWithVMGuestState
    DiskWithVMGuestState
    VMGuestStateOnly
    VMGuestStateOnly
    DiskWithVMGuestState
    DiskWithVMGuestState
    VMGuestStateOnly
    VMGuestStateOnly
    DiskWithVMGuestState
    DiskWithVMGuestState
    VM_GUEST_STATE_ONLY
    VMGuestStateOnly
    DISK_WITH_VM_GUEST_STATE
    DiskWithVMGuestState
    "VMGuestStateOnly"
    VMGuestStateOnly
    "DiskWithVMGuestState"
    DiskWithVMGuestState

    SecurityPostureReference, SecurityPostureReferenceArgs

    ExcludeExtensions List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineExtension>
    List of virtual machine extensions to exclude when applying the Security Posture.
    Id string
    The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest
    ExcludeExtensions []VirtualMachineExtensionType
    List of virtual machine extensions to exclude when applying the Security Posture.
    Id string
    The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest
    excludeExtensions List<VirtualMachineExtension>
    List of virtual machine extensions to exclude when applying the Security Posture.
    id String
    The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest
    excludeExtensions VirtualMachineExtension[]
    List of virtual machine extensions to exclude when applying the Security Posture.
    id string
    The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest
    exclude_extensions Sequence[VirtualMachineExtension]
    List of virtual machine extensions to exclude when applying the Security Posture.
    id str
    The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest
    excludeExtensions List<Property Map>
    List of virtual machine extensions to exclude when applying the Security Posture.
    id String
    The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest

    SecurityPostureReferenceResponse, SecurityPostureReferenceResponseArgs

    ExcludeExtensions List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineExtensionResponse>
    List of virtual machine extensions to exclude when applying the Security Posture.
    Id string
    The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest
    ExcludeExtensions []VirtualMachineExtensionResponse
    List of virtual machine extensions to exclude when applying the Security Posture.
    Id string
    The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest
    excludeExtensions List<VirtualMachineExtensionResponse>
    List of virtual machine extensions to exclude when applying the Security Posture.
    id String
    The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest
    excludeExtensions VirtualMachineExtensionResponse[]
    List of virtual machine extensions to exclude when applying the Security Posture.
    id string
    The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest
    exclude_extensions Sequence[VirtualMachineExtensionResponse]
    List of virtual machine extensions to exclude when applying the Security Posture.
    id str
    The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest
    excludeExtensions List<Property Map>
    List of virtual machine extensions to exclude when applying the Security Posture.
    id String
    The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest

    SecurityProfile, SecurityProfileArgs

    EncryptionAtHost bool
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    SecurityType string | Pulumi.AzureNative.Compute.SecurityTypes
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    UefiSettings Pulumi.AzureNative.Compute.Inputs.UefiSettings
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    EncryptionAtHost bool
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    SecurityType string | SecurityTypes
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    UefiSettings UefiSettings
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryptionAtHost Boolean
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    securityType String | SecurityTypes
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefiSettings UefiSettings
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryptionAtHost boolean
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    securityType string | SecurityTypes
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefiSettings UefiSettings
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryption_at_host bool
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    security_type str | SecurityTypes
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefi_settings UefiSettings
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryptionAtHost Boolean
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    securityType String | "TrustedLaunch" | "ConfidentialVM"
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefiSettings Property Map
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.

    SecurityProfileResponse, SecurityProfileResponseArgs

    EncryptionAtHost bool
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    SecurityType string
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    UefiSettings Pulumi.AzureNative.Compute.Inputs.UefiSettingsResponse
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    EncryptionAtHost bool
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    SecurityType string
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    UefiSettings UefiSettingsResponse
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryptionAtHost Boolean
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    securityType String
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefiSettings UefiSettingsResponse
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryptionAtHost boolean
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    securityType string
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefiSettings UefiSettingsResponse
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryption_at_host bool
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    security_type str
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefi_settings UefiSettingsResponse
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
    encryptionAtHost Boolean
    This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
    securityType String
    Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
    uefiSettings Property Map
    Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.

    SecurityTypes, SecurityTypesArgs

    TrustedLaunch
    TrustedLaunch
    ConfidentialVM
    ConfidentialVM
    SecurityTypesTrustedLaunch
    TrustedLaunch
    SecurityTypesConfidentialVM
    ConfidentialVM
    TrustedLaunch
    TrustedLaunch
    ConfidentialVM
    ConfidentialVM
    TrustedLaunch
    TrustedLaunch
    ConfidentialVM
    ConfidentialVM
    TRUSTED_LAUNCH
    TrustedLaunch
    CONFIDENTIAL_VM
    ConfidentialVM
    "TrustedLaunch"
    TrustedLaunch
    "ConfidentialVM"
    ConfidentialVM

    ServiceArtifactReference, ServiceArtifactReferenceArgs

    Id string
    The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
    Id string
    The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
    id String
    The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
    id string
    The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
    id str
    The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
    id String
    The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}

    ServiceArtifactReferenceResponse, ServiceArtifactReferenceResponseArgs

    Id string
    The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
    Id string
    The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
    id String
    The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
    id string
    The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
    id str
    The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}
    id String
    The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}

    SettingNames, SettingNamesArgs

    AutoLogon
    AutoLogon
    FirstLogonCommands
    FirstLogonCommands
    SettingNamesAutoLogon
    AutoLogon
    SettingNamesFirstLogonCommands
    FirstLogonCommands
    AutoLogon
    AutoLogon
    FirstLogonCommands
    FirstLogonCommands
    AutoLogon
    AutoLogon
    FirstLogonCommands
    FirstLogonCommands
    AUTO_LOGON
    AutoLogon
    FIRST_LOGON_COMMANDS
    FirstLogonCommands
    "AutoLogon"
    AutoLogon
    "FirstLogonCommands"
    FirstLogonCommands

    Sku, SkuArgs

    Capacity double
    Specifies the number of virtual machines in the scale set.
    Name string
    The sku name.
    Tier string
    Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic
    Capacity float64
    Specifies the number of virtual machines in the scale set.
    Name string
    The sku name.
    Tier string
    Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic
    capacity Double
    Specifies the number of virtual machines in the scale set.
    name String
    The sku name.
    tier String
    Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic
    capacity number
    Specifies the number of virtual machines in the scale set.
    name string
    The sku name.
    tier string
    Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic
    capacity float
    Specifies the number of virtual machines in the scale set.
    name str
    The sku name.
    tier str
    Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic
    capacity Number
    Specifies the number of virtual machines in the scale set.
    name String
    The sku name.
    tier String
    Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic

    SkuResponse, SkuResponseArgs

    Capacity double
    Specifies the number of virtual machines in the scale set.
    Name string
    The sku name.
    Tier string
    Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic
    Capacity float64
    Specifies the number of virtual machines in the scale set.
    Name string
    The sku name.
    Tier string
    Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic
    capacity Double
    Specifies the number of virtual machines in the scale set.
    name String
    The sku name.
    tier String
    Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic
    capacity number
    Specifies the number of virtual machines in the scale set.
    name string
    The sku name.
    tier string
    Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic
    capacity float
    Specifies the number of virtual machines in the scale set.
    name str
    The sku name.
    tier str
    Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic
    capacity Number
    Specifies the number of virtual machines in the scale set.
    name String
    The sku name.
    tier String
    Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic

    SpotRestorePolicy, SpotRestorePolicyArgs

    Enabled bool
    Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints
    RestoreTimeout string
    Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances
    Enabled bool
    Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints
    RestoreTimeout string
    Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances
    enabled Boolean
    Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints
    restoreTimeout String
    Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances
    enabled boolean
    Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints
    restoreTimeout string
    Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances
    enabled bool
    Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints
    restore_timeout str
    Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances
    enabled Boolean
    Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints
    restoreTimeout String
    Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances

    SpotRestorePolicyResponse, SpotRestorePolicyResponseArgs

    Enabled bool
    Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints
    RestoreTimeout string
    Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances
    Enabled bool
    Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints
    RestoreTimeout string
    Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances
    enabled Boolean
    Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints
    restoreTimeout String
    Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances
    enabled boolean
    Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints
    restoreTimeout string
    Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances
    enabled bool
    Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints
    restore_timeout str
    Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances
    enabled Boolean
    Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints
    restoreTimeout String
    Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances

    SshConfiguration, SshConfigurationArgs

    PublicKeys List<Pulumi.AzureNative.Compute.Inputs.SshPublicKey>
    The list of SSH public keys used to authenticate with linux based VMs.
    PublicKeys []SshPublicKeyType
    The list of SSH public keys used to authenticate with linux based VMs.
    publicKeys List<SshPublicKey>
    The list of SSH public keys used to authenticate with linux based VMs.
    publicKeys SshPublicKey[]
    The list of SSH public keys used to authenticate with linux based VMs.
    public_keys Sequence[SshPublicKey]
    The list of SSH public keys used to authenticate with linux based VMs.
    publicKeys List<Property Map>
    The list of SSH public keys used to authenticate with linux based VMs.

    SshConfigurationResponse, SshConfigurationResponseArgs

    PublicKeys List<Pulumi.AzureNative.Compute.Inputs.SshPublicKeyResponse>
    The list of SSH public keys used to authenticate with linux based VMs.
    PublicKeys []SshPublicKeyResponse
    The list of SSH public keys used to authenticate with linux based VMs.
    publicKeys List<SshPublicKeyResponse>
    The list of SSH public keys used to authenticate with linux based VMs.
    publicKeys SshPublicKeyResponse[]
    The list of SSH public keys used to authenticate with linux based VMs.
    public_keys Sequence[SshPublicKeyResponse]
    The list of SSH public keys used to authenticate with linux based VMs.
    publicKeys List<Property Map>
    The list of SSH public keys used to authenticate with linux based VMs.

    SshPublicKey, SshPublicKeyArgs

    KeyData string
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    Path string
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    KeyData string
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    Path string
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    keyData String
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path String
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    keyData string
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path string
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    key_data str
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path str
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    keyData String
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path String
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys

    SshPublicKeyResponse, SshPublicKeyResponseArgs

    KeyData string
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    Path string
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    KeyData string
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    Path string
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    keyData String
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path String
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    keyData string
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path string
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    key_data str
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path str
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
    keyData String
    SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
    path String
    Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys

    StatusLevelTypes, StatusLevelTypesArgs

    Info
    Info
    Warning
    Warning
    Error
    Error
    StatusLevelTypesInfo
    Info
    StatusLevelTypesWarning
    Warning
    StatusLevelTypesError
    Error
    Info
    Info
    Warning
    Warning
    Error
    Error
    Info
    Info
    Warning
    Warning
    Error
    Error
    INFO
    Info
    WARNING
    Warning
    ERROR
    Error
    "Info"
    Info
    "Warning"
    Warning
    "Error"
    Error

    StorageAccountTypes, StorageAccountTypesArgs

    Standard_LRS
    Standard_LRS
    Premium_LRS
    Premium_LRS
    StandardSSD_LRS
    StandardSSD_LRS
    UltraSSD_LRS
    UltraSSD_LRS
    Premium_ZRS
    Premium_ZRS
    StandardSSD_ZRS
    StandardSSD_ZRS
    PremiumV2_LRS
    PremiumV2_LRS
    StorageAccountTypes_Standard_LRS
    Standard_LRS
    StorageAccountTypes_Premium_LRS
    Premium_LRS
    StorageAccountTypes_StandardSSD_LRS
    StandardSSD_LRS
    StorageAccountTypes_UltraSSD_LRS
    UltraSSD_LRS
    StorageAccountTypes_Premium_ZRS
    Premium_ZRS
    StorageAccountTypes_StandardSSD_ZRS
    StandardSSD_ZRS
    StorageAccountTypes_PremiumV2_LRS
    PremiumV2_LRS
    Standard_LRS
    Standard_LRS
    Premium_LRS
    Premium_LRS
    StandardSSD_LRS
    StandardSSD_LRS
    UltraSSD_LRS
    UltraSSD_LRS
    Premium_ZRS
    Premium_ZRS
    StandardSSD_ZRS
    StandardSSD_ZRS
    PremiumV2_LRS
    PremiumV2_LRS
    Standard_LRS
    Standard_LRS
    Premium_LRS
    Premium_LRS
    StandardSSD_LRS
    StandardSSD_LRS
    UltraSSD_LRS
    UltraSSD_LRS
    Premium_ZRS
    Premium_ZRS
    StandardSSD_ZRS
    StandardSSD_ZRS
    PremiumV2_LRS
    PremiumV2_LRS
    STANDARD_LRS
    Standard_LRS
    PREMIUM_LRS
    Premium_LRS
    STANDARD_SS_D_LRS
    StandardSSD_LRS
    ULTRA_SS_D_LRS
    UltraSSD_LRS
    PREMIUM_ZRS
    Premium_ZRS
    STANDARD_SS_D_ZRS
    StandardSSD_ZRS
    PREMIUM_V2_LRS
    PremiumV2_LRS
    "Standard_LRS"
    Standard_LRS
    "Premium_LRS"
    Premium_LRS
    "StandardSSD_LRS"
    StandardSSD_LRS
    "UltraSSD_LRS"
    UltraSSD_LRS
    "Premium_ZRS"
    Premium_ZRS
    "StandardSSD_ZRS"
    StandardSSD_ZRS
    "PremiumV2_LRS"
    PremiumV2_LRS

    SubResource, SubResourceArgs

    Id string
    Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. Example of a relative ID: $self/frontEndConfigurations/my-frontend.
    Id string
    Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. Example of a relative ID: $self/frontEndConfigurations/my-frontend.
    id String
    Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. Example of a relative ID: $self/frontEndConfigurations/my-frontend.
    id string
    Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. Example of a relative ID: $self/frontEndConfigurations/my-frontend.
    id str
    Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. Example of a relative ID: $self/frontEndConfigurations/my-frontend.
    id String
    Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. Example of a relative ID: $self/frontEndConfigurations/my-frontend.

    SubResourceResponse, SubResourceResponseArgs

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

    TerminateNotificationProfile, TerminateNotificationProfileArgs

    Enable bool
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    Enable bool
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable Boolean
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable boolean
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    notBeforeTimeout string
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable bool
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    not_before_timeout str
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable Boolean
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)

    TerminateNotificationProfileResponse, TerminateNotificationProfileResponseArgs

    Enable bool
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    Enable bool
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    NotBeforeTimeout string
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable Boolean
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable boolean
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    notBeforeTimeout string
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable bool
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    not_before_timeout str
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
    enable Boolean
    Specifies whether the Terminate Scheduled event is enabled or disabled.
    notBeforeTimeout String
    Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)

    UefiSettings, UefiSettingsArgs

    SecureBootEnabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    VTpmEnabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    SecureBootEnabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    VTpmEnabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secureBootEnabled Boolean
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    vTpmEnabled Boolean
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secureBootEnabled boolean
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    vTpmEnabled boolean
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secure_boot_enabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    v_tpm_enabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secureBootEnabled Boolean
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    vTpmEnabled Boolean
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.

    UefiSettingsResponse, UefiSettingsResponseArgs

    SecureBootEnabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    VTpmEnabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    SecureBootEnabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    VTpmEnabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secureBootEnabled Boolean
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    vTpmEnabled Boolean
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secureBootEnabled boolean
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    vTpmEnabled boolean
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secure_boot_enabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    v_tpm_enabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    secureBootEnabled Boolean
    Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01.
    vTpmEnabled Boolean
    Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01.

    UpgradeMode, UpgradeModeArgs

    Automatic
    Automatic
    Manual
    Manual
    Rolling
    Rolling
    UpgradeModeAutomatic
    Automatic
    UpgradeModeManual
    Manual
    UpgradeModeRolling
    Rolling
    Automatic
    Automatic
    Manual
    Manual
    Rolling
    Rolling
    Automatic
    Automatic
    Manual
    Manual
    Rolling
    Rolling
    AUTOMATIC
    Automatic
    MANUAL
    Manual
    ROLLING
    Rolling
    "Automatic"
    Automatic
    "Manual"
    Manual
    "Rolling"
    Rolling

    UpgradePolicy, UpgradePolicyArgs

    AutomaticOSUpgradePolicy Pulumi.AzureNative.Compute.Inputs.AutomaticOSUpgradePolicy
    Configuration parameters used for performing automatic OS Upgrade.
    Mode Pulumi.AzureNative.Compute.UpgradeMode
    Specifies the mode of an upgrade to virtual machines in the scale set. Possible values are: Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. Automatic - All virtual machines in the scale set are automatically updated at the same time.
    RollingUpgradePolicy Pulumi.AzureNative.Compute.Inputs.RollingUpgradePolicy
    The configuration parameters used while performing a rolling upgrade.
    AutomaticOSUpgradePolicy AutomaticOSUpgradePolicy
    Configuration parameters used for performing automatic OS Upgrade.
    Mode UpgradeMode
    Specifies the mode of an upgrade to virtual machines in the scale set. Possible values are: Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. Automatic - All virtual machines in the scale set are automatically updated at the same time.
    RollingUpgradePolicy RollingUpgradePolicy
    The configuration parameters used while performing a rolling upgrade.
    automaticOSUpgradePolicy AutomaticOSUpgradePolicy
    Configuration parameters used for performing automatic OS Upgrade.
    mode UpgradeMode
    Specifies the mode of an upgrade to virtual machines in the scale set. Possible values are: Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. Automatic - All virtual machines in the scale set are automatically updated at the same time.
    rollingUpgradePolicy RollingUpgradePolicy
    The configuration parameters used while performing a rolling upgrade.
    automaticOSUpgradePolicy AutomaticOSUpgradePolicy
    Configuration parameters used for performing automatic OS Upgrade.
    mode UpgradeMode
    Specifies the mode of an upgrade to virtual machines in the scale set. Possible values are: Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. Automatic - All virtual machines in the scale set are automatically updated at the same time.
    rollingUpgradePolicy RollingUpgradePolicy
    The configuration parameters used while performing a rolling upgrade.
    automatic_os_upgrade_policy AutomaticOSUpgradePolicy
    Configuration parameters used for performing automatic OS Upgrade.
    mode UpgradeMode
    Specifies the mode of an upgrade to virtual machines in the scale set. Possible values are: Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. Automatic - All virtual machines in the scale set are automatically updated at the same time.
    rolling_upgrade_policy RollingUpgradePolicy
    The configuration parameters used while performing a rolling upgrade.
    automaticOSUpgradePolicy Property Map
    Configuration parameters used for performing automatic OS Upgrade.
    mode "Automatic" | "Manual" | "Rolling"
    Specifies the mode of an upgrade to virtual machines in the scale set. Possible values are: Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. Automatic - All virtual machines in the scale set are automatically updated at the same time.
    rollingUpgradePolicy Property Map
    The configuration parameters used while performing a rolling upgrade.

    UpgradePolicyResponse, UpgradePolicyResponseArgs

    AutomaticOSUpgradePolicy Pulumi.AzureNative.Compute.Inputs.AutomaticOSUpgradePolicyResponse
    Configuration parameters used for performing automatic OS Upgrade.
    Mode string
    Specifies the mode of an upgrade to virtual machines in the scale set. Possible values are: Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. Automatic - All virtual machines in the scale set are automatically updated at the same time.
    RollingUpgradePolicy Pulumi.AzureNative.Compute.Inputs.RollingUpgradePolicyResponse
    The configuration parameters used while performing a rolling upgrade.
    AutomaticOSUpgradePolicy AutomaticOSUpgradePolicyResponse
    Configuration parameters used for performing automatic OS Upgrade.
    Mode string
    Specifies the mode of an upgrade to virtual machines in the scale set. Possible values are: Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. Automatic - All virtual machines in the scale set are automatically updated at the same time.
    RollingUpgradePolicy RollingUpgradePolicyResponse
    The configuration parameters used while performing a rolling upgrade.
    automaticOSUpgradePolicy AutomaticOSUpgradePolicyResponse
    Configuration parameters used for performing automatic OS Upgrade.
    mode String
    Specifies the mode of an upgrade to virtual machines in the scale set. Possible values are: Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. Automatic - All virtual machines in the scale set are automatically updated at the same time.
    rollingUpgradePolicy RollingUpgradePolicyResponse
    The configuration parameters used while performing a rolling upgrade.
    automaticOSUpgradePolicy AutomaticOSUpgradePolicyResponse
    Configuration parameters used for performing automatic OS Upgrade.
    mode string
    Specifies the mode of an upgrade to virtual machines in the scale set. Possible values are: Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. Automatic - All virtual machines in the scale set are automatically updated at the same time.
    rollingUpgradePolicy RollingUpgradePolicyResponse
    The configuration parameters used while performing a rolling upgrade.
    automatic_os_upgrade_policy AutomaticOSUpgradePolicyResponse
    Configuration parameters used for performing automatic OS Upgrade.
    mode str
    Specifies the mode of an upgrade to virtual machines in the scale set. Possible values are: Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. Automatic - All virtual machines in the scale set are automatically updated at the same time.
    rolling_upgrade_policy RollingUpgradePolicyResponse
    The configuration parameters used while performing a rolling upgrade.
    automaticOSUpgradePolicy Property Map
    Configuration parameters used for performing automatic OS Upgrade.
    mode String
    Specifies the mode of an upgrade to virtual machines in the scale set. Possible values are: Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. Automatic - All virtual machines in the scale set are automatically updated at the same time.
    rollingUpgradePolicy Property Map
    The configuration parameters used while performing a rolling upgrade.

    UserAssignedIdentitiesResponseUserAssignedIdentities, UserAssignedIdentitiesResponseUserAssignedIdentitiesArgs

    ClientId string
    The client id of user assigned identity.
    PrincipalId string
    The principal id of user assigned identity.
    ClientId string
    The client id of user assigned identity.
    PrincipalId string
    The principal id of user assigned identity.
    clientId String
    The client id of user assigned identity.
    principalId String
    The principal id of user assigned identity.
    clientId string
    The client id of user assigned identity.
    principalId string
    The principal id of user assigned identity.
    client_id str
    The client id of user assigned identity.
    principal_id str
    The principal id of user assigned identity.
    clientId String
    The client id of user assigned identity.
    principalId String
    The principal id of user assigned identity.

    VMDiskSecurityProfile, VMDiskSecurityProfileArgs

    DiskEncryptionSet Pulumi.AzureNative.Compute.Inputs.DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    SecurityEncryptionType string | Pulumi.AzureNative.Compute.SecurityEncryptionTypes
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    DiskEncryptionSet DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    SecurityEncryptionType string | SecurityEncryptionTypes
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    diskEncryptionSet DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    securityEncryptionType String | SecurityEncryptionTypes
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    diskEncryptionSet DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    securityEncryptionType string | SecurityEncryptionTypes
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    disk_encryption_set DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    security_encryption_type str | SecurityEncryptionTypes
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    diskEncryptionSet Property Map
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    securityEncryptionType String | "VMGuestStateOnly" | "DiskWithVMGuestState"
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.

    VMDiskSecurityProfileResponse, VMDiskSecurityProfileResponseArgs

    DiskEncryptionSet Pulumi.AzureNative.Compute.Inputs.DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    SecurityEncryptionType string
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    DiskEncryptionSet DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    SecurityEncryptionType string
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    diskEncryptionSet DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    securityEncryptionType String
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    diskEncryptionSet DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    securityEncryptionType string
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    disk_encryption_set DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    security_encryption_type str
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.
    diskEncryptionSet Property Map
    Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob.
    securityEncryptionType String
    Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. Note: It can be set for only Confidential VMs.

    VMGalleryApplication, VMGalleryApplicationArgs

    PackageReferenceId string
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    ConfigurationReference string
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    EnableAutomaticUpgrade bool
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    Order int
    Optional, Specifies the order in which the packages have to be installed
    Tags string
    Optional, Specifies a passthrough value for more generic context.
    TreatFailureAsDeploymentFailure bool
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    PackageReferenceId string
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    ConfigurationReference string
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    EnableAutomaticUpgrade bool
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    Order int
    Optional, Specifies the order in which the packages have to be installed
    Tags string
    Optional, Specifies a passthrough value for more generic context.
    TreatFailureAsDeploymentFailure bool
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    packageReferenceId String
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configurationReference String
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enableAutomaticUpgrade Boolean
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order Integer
    Optional, Specifies the order in which the packages have to be installed
    tags String
    Optional, Specifies a passthrough value for more generic context.
    treatFailureAsDeploymentFailure Boolean
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    packageReferenceId string
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configurationReference string
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enableAutomaticUpgrade boolean
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order number
    Optional, Specifies the order in which the packages have to be installed
    tags string
    Optional, Specifies a passthrough value for more generic context.
    treatFailureAsDeploymentFailure boolean
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    package_reference_id str
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configuration_reference str
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enable_automatic_upgrade bool
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order int
    Optional, Specifies the order in which the packages have to be installed
    tags str
    Optional, Specifies a passthrough value for more generic context.
    treat_failure_as_deployment_failure bool
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    packageReferenceId String
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configurationReference String
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enableAutomaticUpgrade Boolean
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order Number
    Optional, Specifies the order in which the packages have to be installed
    tags String
    Optional, Specifies a passthrough value for more generic context.
    treatFailureAsDeploymentFailure Boolean
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment

    VMGalleryApplicationResponse, VMGalleryApplicationResponseArgs

    PackageReferenceId string
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    ConfigurationReference string
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    EnableAutomaticUpgrade bool
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    Order int
    Optional, Specifies the order in which the packages have to be installed
    Tags string
    Optional, Specifies a passthrough value for more generic context.
    TreatFailureAsDeploymentFailure bool
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    PackageReferenceId string
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    ConfigurationReference string
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    EnableAutomaticUpgrade bool
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    Order int
    Optional, Specifies the order in which the packages have to be installed
    Tags string
    Optional, Specifies a passthrough value for more generic context.
    TreatFailureAsDeploymentFailure bool
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    packageReferenceId String
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configurationReference String
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enableAutomaticUpgrade Boolean
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order Integer
    Optional, Specifies the order in which the packages have to be installed
    tags String
    Optional, Specifies a passthrough value for more generic context.
    treatFailureAsDeploymentFailure Boolean
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    packageReferenceId string
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configurationReference string
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enableAutomaticUpgrade boolean
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order number
    Optional, Specifies the order in which the packages have to be installed
    tags string
    Optional, Specifies a passthrough value for more generic context.
    treatFailureAsDeploymentFailure boolean
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    package_reference_id str
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configuration_reference str
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enable_automatic_upgrade bool
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order int
    Optional, Specifies the order in which the packages have to be installed
    tags str
    Optional, Specifies a passthrough value for more generic context.
    treat_failure_as_deployment_failure bool
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment
    packageReferenceId String
    Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
    configurationReference String
    Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
    enableAutomaticUpgrade Boolean
    If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
    order Number
    Optional, Specifies the order in which the packages have to be installed
    tags String
    Optional, Specifies a passthrough value for more generic context.
    treatFailureAsDeploymentFailure Boolean
    Optional, If true, any failure for any operation in the VmApplication will fail the deployment

    VMSizeProperties, VMSizePropertiesArgs

    VCPUsAvailable int
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    VCPUsPerCore int
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    VCPUsAvailable int
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    VCPUsPerCore int
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    vCPUsAvailable Integer
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    vCPUsPerCore Integer
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    vCPUsAvailable number
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    vCPUsPerCore number
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    v_cpus_available int
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    v_cpus_per_core int
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    vCPUsAvailable Number
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    vCPUsPerCore Number
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.

    VMSizePropertiesResponse, VMSizePropertiesResponseArgs

    VCPUsAvailable int
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    VCPUsPerCore int
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    VCPUsAvailable int
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    VCPUsPerCore int
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    vCPUsAvailable Integer
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    vCPUsPerCore Integer
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    vCPUsAvailable number
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    vCPUsPerCore number
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    v_cpus_available int
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    v_cpus_per_core int
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.
    vCPUsAvailable Number
    Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of List all available virtual machine sizes in a region.
    vCPUsPerCore Number
    Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of List all available virtual machine sizes in a region. Setting this property to 1 also means that hyper-threading is disabled.

    VaultCertificate, VaultCertificateArgs

    CertificateStore string
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    CertificateStore string
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificateStore String
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificateStore string
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificate_store str
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificate_url str
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificateStore String
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.

    VaultCertificateResponse, VaultCertificateResponseArgs

    CertificateStore string
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    CertificateStore string
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificateStore String
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificateStore string
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificate_store str
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificate_url str
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    certificateStore String
    For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.

    VaultSecretGroup, VaultSecretGroupArgs

    SourceVault Pulumi.AzureNative.Compute.Inputs.SubResource
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    VaultCertificates List<Pulumi.AzureNative.Compute.Inputs.VaultCertificate>
    The list of key vault references in SourceVault which contain certificates.
    SourceVault SubResource
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    VaultCertificates []VaultCertificate
    The list of key vault references in SourceVault which contain certificates.
    sourceVault SubResource
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vaultCertificates List<VaultCertificate>
    The list of key vault references in SourceVault which contain certificates.
    sourceVault SubResource
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vaultCertificates VaultCertificate[]
    The list of key vault references in SourceVault which contain certificates.
    source_vault SubResource
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vault_certificates Sequence[VaultCertificate]
    The list of key vault references in SourceVault which contain certificates.
    sourceVault Property Map
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vaultCertificates List<Property Map>
    The list of key vault references in SourceVault which contain certificates.

    VaultSecretGroupResponse, VaultSecretGroupResponseArgs

    SourceVault Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    VaultCertificates List<Pulumi.AzureNative.Compute.Inputs.VaultCertificateResponse>
    The list of key vault references in SourceVault which contain certificates.
    SourceVault SubResourceResponse
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    VaultCertificates []VaultCertificateResponse
    The list of key vault references in SourceVault which contain certificates.
    sourceVault SubResourceResponse
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vaultCertificates List<VaultCertificateResponse>
    The list of key vault references in SourceVault which contain certificates.
    sourceVault SubResourceResponse
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vaultCertificates VaultCertificateResponse[]
    The list of key vault references in SourceVault which contain certificates.
    source_vault SubResourceResponse
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vault_certificates Sequence[VaultCertificateResponse]
    The list of key vault references in SourceVault which contain certificates.
    sourceVault Property Map
    The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
    vaultCertificates List<Property Map>
    The list of key vault references in SourceVault which contain certificates.

    VirtualHardDisk, VirtualHardDiskArgs

    Uri string
    Specifies the virtual hard disk's uri.
    Uri string
    Specifies the virtual hard disk's uri.
    uri String
    Specifies the virtual hard disk's uri.
    uri string
    Specifies the virtual hard disk's uri.
    uri str
    Specifies the virtual hard disk's uri.
    uri String
    Specifies the virtual hard disk's uri.

    VirtualHardDiskResponse, VirtualHardDiskResponseArgs

    Uri string
    Specifies the virtual hard disk's uri.
    Uri string
    Specifies the virtual hard disk's uri.
    uri String
    Specifies the virtual hard disk's uri.
    uri string
    Specifies the virtual hard disk's uri.
    uri str
    Specifies the virtual hard disk's uri.
    uri String
    Specifies the virtual hard disk's uri.

    VirtualMachineEvictionPolicyTypes, VirtualMachineEvictionPolicyTypesArgs

    Deallocate
    Deallocate
    Delete
    Delete
    VirtualMachineEvictionPolicyTypesDeallocate
    Deallocate
    VirtualMachineEvictionPolicyTypesDelete
    Delete
    Deallocate
    Deallocate
    Delete
    Delete
    Deallocate
    Deallocate
    Delete
    Delete
    DEALLOCATE
    Deallocate
    DELETE
    Delete
    "Deallocate"
    Deallocate
    "Delete"
    Delete

    VirtualMachineExtension, VirtualMachineExtensionArgs

    AutoUpgradeMinorVersion bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    EnableAutomaticUpgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    ForceUpdateTag string
    How the extension handler should be forced to update even if the extension configuration has not changed.
    InstanceView Pulumi.AzureNative.Compute.Inputs.VirtualMachineExtensionInstanceView
    The virtual machine extension instance view.
    Location string
    Resource location
    ProtectedSettings object
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    ProtectedSettingsFromKeyVault Pulumi.AzureNative.Compute.Inputs.KeyVaultSecretReference
    The extensions protected settings that are passed by reference, and consumed from key vault
    ProvisionAfterExtensions List<string>
    Collection of extension names after which this extension needs to be provisioned.
    Publisher string
    The name of the extension handler publisher.
    Settings object
    Json formatted public settings for the extension.
    SuppressFailures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    Tags Dictionary<string, string>
    Resource tags
    Type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    TypeHandlerVersion string
    Specifies the version of the script handler.
    AutoUpgradeMinorVersion bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    EnableAutomaticUpgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    ForceUpdateTag string
    How the extension handler should be forced to update even if the extension configuration has not changed.
    InstanceView VirtualMachineExtensionInstanceView
    The virtual machine extension instance view.
    Location string
    Resource location
    ProtectedSettings interface{}
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    ProtectedSettingsFromKeyVault KeyVaultSecretReference
    The extensions protected settings that are passed by reference, and consumed from key vault
    ProvisionAfterExtensions []string
    Collection of extension names after which this extension needs to be provisioned.
    Publisher string
    The name of the extension handler publisher.
    Settings interface{}
    Json formatted public settings for the extension.
    SuppressFailures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    Tags map[string]string
    Resource tags
    Type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    TypeHandlerVersion string
    Specifies the version of the script handler.
    autoUpgradeMinorVersion Boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade Boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag String
    How the extension handler should be forced to update even if the extension configuration has not changed.
    instanceView VirtualMachineExtensionInstanceView
    The virtual machine extension instance view.
    location String
    Resource location
    protectedSettings Object
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault KeyVaultSecretReference
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions List<String>
    Collection of extension names after which this extension needs to be provisioned.
    publisher String
    The name of the extension handler publisher.
    settings Object
    Json formatted public settings for the extension.
    suppressFailures Boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    tags Map<String,String>
    Resource tags
    type String
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion String
    Specifies the version of the script handler.
    autoUpgradeMinorVersion boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag string
    How the extension handler should be forced to update even if the extension configuration has not changed.
    instanceView VirtualMachineExtensionInstanceView
    The virtual machine extension instance view.
    location string
    Resource location
    protectedSettings any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault KeyVaultSecretReference
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions string[]
    Collection of extension names after which this extension needs to be provisioned.
    publisher string
    The name of the extension handler publisher.
    settings any
    Json formatted public settings for the extension.
    suppressFailures boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    tags {[key: string]: string}
    Resource tags
    type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion string
    Specifies the version of the script handler.
    auto_upgrade_minor_version bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enable_automatic_upgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    force_update_tag str
    How the extension handler should be forced to update even if the extension configuration has not changed.
    instance_view VirtualMachineExtensionInstanceView
    The virtual machine extension instance view.
    location str
    Resource location
    protected_settings Any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protected_settings_from_key_vault KeyVaultSecretReference
    The extensions protected settings that are passed by reference, and consumed from key vault
    provision_after_extensions Sequence[str]
    Collection of extension names after which this extension needs to be provisioned.
    publisher str
    The name of the extension handler publisher.
    settings Any
    Json formatted public settings for the extension.
    suppress_failures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    tags Mapping[str, str]
    Resource tags
    type str
    Specifies the type of the extension; an example is "CustomScriptExtension".
    type_handler_version str
    Specifies the version of the script handler.
    autoUpgradeMinorVersion Boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade Boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag String
    How the extension handler should be forced to update even if the extension configuration has not changed.
    instanceView Property Map
    The virtual machine extension instance view.
    location String
    Resource location
    protectedSettings Any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault Property Map
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions List<String>
    Collection of extension names after which this extension needs to be provisioned.
    publisher String
    The name of the extension handler publisher.
    settings Any
    Json formatted public settings for the extension.
    suppressFailures Boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    tags Map<String>
    Resource tags
    type String
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion String
    Specifies the version of the script handler.

    VirtualMachineExtensionInstanceView, VirtualMachineExtensionInstanceViewArgs

    Name string
    The virtual machine extension name.
    Statuses List<Pulumi.AzureNative.Compute.Inputs.InstanceViewStatus>
    The resource status information.
    Substatuses List<Pulumi.AzureNative.Compute.Inputs.InstanceViewStatus>
    The resource status information.
    Type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    TypeHandlerVersion string
    Specifies the version of the script handler.
    Name string
    The virtual machine extension name.
    Statuses []InstanceViewStatus
    The resource status information.
    Substatuses []InstanceViewStatus
    The resource status information.
    Type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    TypeHandlerVersion string
    Specifies the version of the script handler.
    name String
    The virtual machine extension name.
    statuses List<InstanceViewStatus>
    The resource status information.
    substatuses List<InstanceViewStatus>
    The resource status information.
    type String
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion String
    Specifies the version of the script handler.
    name string
    The virtual machine extension name.
    statuses InstanceViewStatus[]
    The resource status information.
    substatuses InstanceViewStatus[]
    The resource status information.
    type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion string
    Specifies the version of the script handler.
    name str
    The virtual machine extension name.
    statuses Sequence[InstanceViewStatus]
    The resource status information.
    substatuses Sequence[InstanceViewStatus]
    The resource status information.
    type str
    Specifies the type of the extension; an example is "CustomScriptExtension".
    type_handler_version str
    Specifies the version of the script handler.
    name String
    The virtual machine extension name.
    statuses List<Property Map>
    The resource status information.
    substatuses List<Property Map>
    The resource status information.
    type String
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion String
    Specifies the version of the script handler.

    VirtualMachineExtensionInstanceViewResponse, VirtualMachineExtensionInstanceViewResponseArgs

    Name string
    The virtual machine extension name.
    Statuses List<Pulumi.AzureNative.Compute.Inputs.InstanceViewStatusResponse>
    The resource status information.
    Substatuses List<Pulumi.AzureNative.Compute.Inputs.InstanceViewStatusResponse>
    The resource status information.
    Type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    TypeHandlerVersion string
    Specifies the version of the script handler.
    Name string
    The virtual machine extension name.
    Statuses []InstanceViewStatusResponse
    The resource status information.
    Substatuses []InstanceViewStatusResponse
    The resource status information.
    Type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    TypeHandlerVersion string
    Specifies the version of the script handler.
    name String
    The virtual machine extension name.
    statuses List<InstanceViewStatusResponse>
    The resource status information.
    substatuses List<InstanceViewStatusResponse>
    The resource status information.
    type String
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion String
    Specifies the version of the script handler.
    name string
    The virtual machine extension name.
    statuses InstanceViewStatusResponse[]
    The resource status information.
    substatuses InstanceViewStatusResponse[]
    The resource status information.
    type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion string
    Specifies the version of the script handler.
    name str
    The virtual machine extension name.
    statuses Sequence[InstanceViewStatusResponse]
    The resource status information.
    substatuses Sequence[InstanceViewStatusResponse]
    The resource status information.
    type str
    Specifies the type of the extension; an example is "CustomScriptExtension".
    type_handler_version str
    Specifies the version of the script handler.
    name String
    The virtual machine extension name.
    statuses List<Property Map>
    The resource status information.
    substatuses List<Property Map>
    The resource status information.
    type String
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion String
    Specifies the version of the script handler.

    VirtualMachineExtensionResponse, VirtualMachineExtensionResponseArgs

    Id string
    Resource Id
    Name string
    Resource name
    ProvisioningState string
    The provisioning state, which only appears in the response.
    Type string
    Resource type
    AutoUpgradeMinorVersion bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    EnableAutomaticUpgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    ForceUpdateTag string
    How the extension handler should be forced to update even if the extension configuration has not changed.
    InstanceView Pulumi.AzureNative.Compute.Inputs.VirtualMachineExtensionInstanceViewResponse
    The virtual machine extension instance view.
    Location string
    Resource location
    ProtectedSettings object
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    ProtectedSettingsFromKeyVault Pulumi.AzureNative.Compute.Inputs.KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    ProvisionAfterExtensions List<string>
    Collection of extension names after which this extension needs to be provisioned.
    Publisher string
    The name of the extension handler publisher.
    Settings object
    Json formatted public settings for the extension.
    SuppressFailures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    Tags Dictionary<string, string>
    Resource tags
    TypeHandlerVersion string
    Specifies the version of the script handler.
    Id string
    Resource Id
    Name string
    Resource name
    ProvisioningState string
    The provisioning state, which only appears in the response.
    Type string
    Resource type
    AutoUpgradeMinorVersion bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    EnableAutomaticUpgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    ForceUpdateTag string
    How the extension handler should be forced to update even if the extension configuration has not changed.
    InstanceView VirtualMachineExtensionInstanceViewResponse
    The virtual machine extension instance view.
    Location string
    Resource location
    ProtectedSettings interface{}
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    ProtectedSettingsFromKeyVault KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    ProvisionAfterExtensions []string
    Collection of extension names after which this extension needs to be provisioned.
    Publisher string
    The name of the extension handler publisher.
    Settings interface{}
    Json formatted public settings for the extension.
    SuppressFailures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    Tags map[string]string
    Resource tags
    TypeHandlerVersion string
    Specifies the version of the script handler.
    id String
    Resource Id
    name String
    Resource name
    provisioningState String
    The provisioning state, which only appears in the response.
    type String
    Resource type
    autoUpgradeMinorVersion Boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade Boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag String
    How the extension handler should be forced to update even if the extension configuration has not changed.
    instanceView VirtualMachineExtensionInstanceViewResponse
    The virtual machine extension instance view.
    location String
    Resource location
    protectedSettings Object
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions List<String>
    Collection of extension names after which this extension needs to be provisioned.
    publisher String
    The name of the extension handler publisher.
    settings Object
    Json formatted public settings for the extension.
    suppressFailures Boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    tags Map<String,String>
    Resource tags
    typeHandlerVersion String
    Specifies the version of the script handler.
    id string
    Resource Id
    name string
    Resource name
    provisioningState string
    The provisioning state, which only appears in the response.
    type string
    Resource type
    autoUpgradeMinorVersion boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag string
    How the extension handler should be forced to update even if the extension configuration has not changed.
    instanceView VirtualMachineExtensionInstanceViewResponse
    The virtual machine extension instance view.
    location string
    Resource location
    protectedSettings any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions string[]
    Collection of extension names after which this extension needs to be provisioned.
    publisher string
    The name of the extension handler publisher.
    settings any
    Json formatted public settings for the extension.
    suppressFailures boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    tags {[key: string]: string}
    Resource tags
    typeHandlerVersion string
    Specifies the version of the script handler.
    id str
    Resource Id
    name str
    Resource name
    provisioning_state str
    The provisioning state, which only appears in the response.
    type str
    Resource type
    auto_upgrade_minor_version bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enable_automatic_upgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    force_update_tag str
    How the extension handler should be forced to update even if the extension configuration has not changed.
    instance_view VirtualMachineExtensionInstanceViewResponse
    The virtual machine extension instance view.
    location str
    Resource location
    protected_settings Any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protected_settings_from_key_vault KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    provision_after_extensions Sequence[str]
    Collection of extension names after which this extension needs to be provisioned.
    publisher str
    The name of the extension handler publisher.
    settings Any
    Json formatted public settings for the extension.
    suppress_failures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    tags Mapping[str, str]
    Resource tags
    type_handler_version str
    Specifies the version of the script handler.
    id String
    Resource Id
    name String
    Resource name
    provisioningState String
    The provisioning state, which only appears in the response.
    type String
    Resource type
    autoUpgradeMinorVersion Boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade Boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag String
    How the extension handler should be forced to update even if the extension configuration has not changed.
    instanceView Property Map
    The virtual machine extension instance view.
    location String
    Resource location
    protectedSettings Any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault Property Map
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions List<String>
    Collection of extension names after which this extension needs to be provisioned.
    publisher String
    The name of the extension handler publisher.
    settings Any
    Json formatted public settings for the extension.
    suppressFailures Boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    tags Map<String>
    Resource tags
    typeHandlerVersion String
    Specifies the version of the script handler.

    VirtualMachinePriorityTypes, VirtualMachinePriorityTypesArgs

    Regular
    Regular
    Low
    Low
    Spot
    Spot
    VirtualMachinePriorityTypesRegular
    Regular
    VirtualMachinePriorityTypesLow
    Low
    VirtualMachinePriorityTypesSpot
    Spot
    Regular
    Regular
    Low
    Low
    Spot
    Spot
    Regular
    Regular
    Low
    Low
    Spot
    Spot
    REGULAR
    Regular
    LOW
    Low
    SPOT
    Spot
    "Regular"
    Regular
    "Low"
    Low
    "Spot"
    Spot

    VirtualMachineScaleSetDataDisk, VirtualMachineScaleSetDataDiskArgs

    CreateOption string | Pulumi.AzureNative.Compute.DiskCreateOptionTypes
    The create option.
    Lun int
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    Caching Pulumi.AzureNative.Compute.CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string | Pulumi.AzureNative.Compute.DiskDeleteOptionTypes
    Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the data disk is deleted when the VMSS Flex VM is deleted. Detach If this value is used, the data disk is retained after VMSS Flex VM is deleted. The default value is set to Delete.
    DiskIOPSReadWrite double
    Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    DiskMBpsReadWrite double
    Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    ManagedDisk Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParameters
    The managed disk parameters.
    Name string
    The disk name.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    CreateOption string | DiskCreateOptionTypes
    The create option.
    Lun int
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    Caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string | DiskDeleteOptionTypes
    Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the data disk is deleted when the VMSS Flex VM is deleted. Detach If this value is used, the data disk is retained after VMSS Flex VM is deleted. The default value is set to Delete.
    DiskIOPSReadWrite float64
    Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    DiskMBpsReadWrite float64
    Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    ManagedDisk VirtualMachineScaleSetManagedDiskParameters
    The managed disk parameters.
    Name string
    The disk name.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String | DiskCreateOptionTypes
    The create option.
    lun Integer
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String | DiskDeleteOptionTypes
    Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the data disk is deleted when the VMSS Flex VM is deleted. Detach If this value is used, the data disk is retained after VMSS Flex VM is deleted. The default value is set to Delete.
    diskIOPSReadWrite Double
    Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    diskMBpsReadWrite Double
    Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    diskSizeGB Integer
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    managedDisk VirtualMachineScaleSetManagedDiskParameters
    The managed disk parameters.
    name String
    The disk name.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption string | DiskCreateOptionTypes
    The create option.
    lun number
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    deleteOption string | DiskDeleteOptionTypes
    Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the data disk is deleted when the VMSS Flex VM is deleted. Detach If this value is used, the data disk is retained after VMSS Flex VM is deleted. The default value is set to Delete.
    diskIOPSReadWrite number
    Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    diskMBpsReadWrite number
    Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    diskSizeGB number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    managedDisk VirtualMachineScaleSetManagedDiskParameters
    The managed disk parameters.
    name string
    The disk name.
    writeAcceleratorEnabled boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    create_option str | DiskCreateOptionTypes
    The create option.
    lun int
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    delete_option str | DiskDeleteOptionTypes
    Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the data disk is deleted when the VMSS Flex VM is deleted. Detach If this value is used, the data disk is retained after VMSS Flex VM is deleted. The default value is set to Delete.
    disk_iops_read_write float
    Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    disk_m_bps_read_write float
    Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    disk_size_gb int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    managed_disk VirtualMachineScaleSetManagedDiskParameters
    The managed disk parameters.
    name str
    The disk name.
    write_accelerator_enabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String | "FromImage" | "Empty" | "Attach"
    The create option.
    lun Number
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching "None" | "ReadOnly" | "ReadWrite"
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String | "Delete" | "Detach"
    Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the data disk is deleted when the VMSS Flex VM is deleted. Detach If this value is used, the data disk is retained after VMSS Flex VM is deleted. The default value is set to Delete.
    diskIOPSReadWrite Number
    Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    diskMBpsReadWrite Number
    Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    diskSizeGB Number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    managedDisk Property Map
    The managed disk parameters.
    name String
    The disk name.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.

    VirtualMachineScaleSetDataDiskResponse, VirtualMachineScaleSetDataDiskResponseArgs

    CreateOption string
    The create option.
    Lun int
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    Caching string
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string
    Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the data disk is deleted when the VMSS Flex VM is deleted. Detach If this value is used, the data disk is retained after VMSS Flex VM is deleted. The default value is set to Delete.
    DiskIOPSReadWrite double
    Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    DiskMBpsReadWrite double
    Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    ManagedDisk Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersResponse
    The managed disk parameters.
    Name string
    The disk name.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    CreateOption string
    The create option.
    Lun int
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    Caching string
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string
    Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the data disk is deleted when the VMSS Flex VM is deleted. Detach If this value is used, the data disk is retained after VMSS Flex VM is deleted. The default value is set to Delete.
    DiskIOPSReadWrite float64
    Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    DiskMBpsReadWrite float64
    Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    ManagedDisk VirtualMachineScaleSetManagedDiskParametersResponse
    The managed disk parameters.
    Name string
    The disk name.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String
    The create option.
    lun Integer
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching String
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String
    Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the data disk is deleted when the VMSS Flex VM is deleted. Detach If this value is used, the data disk is retained after VMSS Flex VM is deleted. The default value is set to Delete.
    diskIOPSReadWrite Double
    Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    diskMBpsReadWrite Double
    Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    diskSizeGB Integer
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    managedDisk VirtualMachineScaleSetManagedDiskParametersResponse
    The managed disk parameters.
    name String
    The disk name.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption string
    The create option.
    lun number
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching string
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    deleteOption string
    Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the data disk is deleted when the VMSS Flex VM is deleted. Detach If this value is used, the data disk is retained after VMSS Flex VM is deleted. The default value is set to Delete.
    diskIOPSReadWrite number
    Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    diskMBpsReadWrite number
    Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    diskSizeGB number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    managedDisk VirtualMachineScaleSetManagedDiskParametersResponse
    The managed disk parameters.
    name string
    The disk name.
    writeAcceleratorEnabled boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    create_option str
    The create option.
    lun int
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching str
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    delete_option str
    Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the data disk is deleted when the VMSS Flex VM is deleted. Detach If this value is used, the data disk is retained after VMSS Flex VM is deleted. The default value is set to Delete.
    disk_iops_read_write float
    Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    disk_m_bps_read_write float
    Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    disk_size_gb int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    managed_disk VirtualMachineScaleSetManagedDiskParametersResponse
    The managed disk parameters.
    name str
    The disk name.
    write_accelerator_enabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String
    The create option.
    lun Number
    Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
    caching String
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String
    Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the data disk is deleted when the VMSS Flex VM is deleted. Detach If this value is used, the data disk is retained after VMSS Flex VM is deleted. The default value is set to Delete.
    diskIOPSReadWrite Number
    Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    diskMBpsReadWrite Number
    Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB.
    diskSizeGB Number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    managedDisk Property Map
    The managed disk parameters.
    name String
    The disk name.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.

    VirtualMachineScaleSetExtension, VirtualMachineScaleSetExtensionArgs

    AutoUpgradeMinorVersion bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    EnableAutomaticUpgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    ForceUpdateTag string
    If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
    Name string
    The name of the extension.
    ProtectedSettings object
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    ProtectedSettingsFromKeyVault Pulumi.AzureNative.Compute.Inputs.KeyVaultSecretReference
    The extensions protected settings that are passed by reference, and consumed from key vault
    ProvisionAfterExtensions List<string>
    Collection of extension names after which this extension needs to be provisioned.
    Publisher string
    The name of the extension handler publisher.
    Settings object
    Json formatted public settings for the extension.
    SuppressFailures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    Type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    TypeHandlerVersion string
    Specifies the version of the script handler.
    AutoUpgradeMinorVersion bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    EnableAutomaticUpgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    ForceUpdateTag string
    If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
    Name string
    The name of the extension.
    ProtectedSettings interface{}
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    ProtectedSettingsFromKeyVault KeyVaultSecretReference
    The extensions protected settings that are passed by reference, and consumed from key vault
    ProvisionAfterExtensions []string
    Collection of extension names after which this extension needs to be provisioned.
    Publisher string
    The name of the extension handler publisher.
    Settings interface{}
    Json formatted public settings for the extension.
    SuppressFailures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    Type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    TypeHandlerVersion string
    Specifies the version of the script handler.
    autoUpgradeMinorVersion Boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade Boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag String
    If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
    name String
    The name of the extension.
    protectedSettings Object
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault KeyVaultSecretReference
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions List<String>
    Collection of extension names after which this extension needs to be provisioned.
    publisher String
    The name of the extension handler publisher.
    settings Object
    Json formatted public settings for the extension.
    suppressFailures Boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    type String
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion String
    Specifies the version of the script handler.
    autoUpgradeMinorVersion boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag string
    If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
    name string
    The name of the extension.
    protectedSettings any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault KeyVaultSecretReference
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions string[]
    Collection of extension names after which this extension needs to be provisioned.
    publisher string
    The name of the extension handler publisher.
    settings any
    Json formatted public settings for the extension.
    suppressFailures boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    type string
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion string
    Specifies the version of the script handler.
    auto_upgrade_minor_version bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enable_automatic_upgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    force_update_tag str
    If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
    name str
    The name of the extension.
    protected_settings Any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protected_settings_from_key_vault KeyVaultSecretReference
    The extensions protected settings that are passed by reference, and consumed from key vault
    provision_after_extensions Sequence[str]
    Collection of extension names after which this extension needs to be provisioned.
    publisher str
    The name of the extension handler publisher.
    settings Any
    Json formatted public settings for the extension.
    suppress_failures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    type str
    Specifies the type of the extension; an example is "CustomScriptExtension".
    type_handler_version str
    Specifies the version of the script handler.
    autoUpgradeMinorVersion Boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade Boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag String
    If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
    name String
    The name of the extension.
    protectedSettings Any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault Property Map
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions List<String>
    Collection of extension names after which this extension needs to be provisioned.
    publisher String
    The name of the extension handler publisher.
    settings Any
    Json formatted public settings for the extension.
    suppressFailures Boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    type String
    Specifies the type of the extension; an example is "CustomScriptExtension".
    typeHandlerVersion String
    Specifies the version of the script handler.

    VirtualMachineScaleSetExtensionProfile, VirtualMachineScaleSetExtensionProfileArgs

    Extensions List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetExtension>
    The virtual machine scale set child extension resources.
    ExtensionsTimeBudget string
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    Extensions []VirtualMachineScaleSetExtensionType
    The virtual machine scale set child extension resources.
    ExtensionsTimeBudget string
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    extensions List<VirtualMachineScaleSetExtension>
    The virtual machine scale set child extension resources.
    extensionsTimeBudget String
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    extensions VirtualMachineScaleSetExtension[]
    The virtual machine scale set child extension resources.
    extensionsTimeBudget string
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    extensions Sequence[VirtualMachineScaleSetExtension]
    The virtual machine scale set child extension resources.
    extensions_time_budget str
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    extensions List<Property Map>
    The virtual machine scale set child extension resources.
    extensionsTimeBudget String
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.

    VirtualMachineScaleSetExtensionProfileResponse, VirtualMachineScaleSetExtensionProfileResponseArgs

    Extensions List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionResponse>
    The virtual machine scale set child extension resources.
    ExtensionsTimeBudget string
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    Extensions []VirtualMachineScaleSetExtensionResponse
    The virtual machine scale set child extension resources.
    ExtensionsTimeBudget string
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    extensions List<VirtualMachineScaleSetExtensionResponse>
    The virtual machine scale set child extension resources.
    extensionsTimeBudget String
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    extensions VirtualMachineScaleSetExtensionResponse[]
    The virtual machine scale set child extension resources.
    extensionsTimeBudget string
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    extensions Sequence[VirtualMachineScaleSetExtensionResponse]
    The virtual machine scale set child extension resources.
    extensions_time_budget str
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
    extensions List<Property Map>
    The virtual machine scale set child extension resources.
    extensionsTimeBudget String
    Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.

    VirtualMachineScaleSetExtensionResponse, VirtualMachineScaleSetExtensionResponseArgs

    Id string
    Resource Id
    ProvisioningState string
    The provisioning state, which only appears in the response.
    Type string
    Resource type
    AutoUpgradeMinorVersion bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    EnableAutomaticUpgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    ForceUpdateTag string
    If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
    Name string
    The name of the extension.
    ProtectedSettings object
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    ProtectedSettingsFromKeyVault Pulumi.AzureNative.Compute.Inputs.KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    ProvisionAfterExtensions List<string>
    Collection of extension names after which this extension needs to be provisioned.
    Publisher string
    The name of the extension handler publisher.
    Settings object
    Json formatted public settings for the extension.
    SuppressFailures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    TypeHandlerVersion string
    Specifies the version of the script handler.
    Id string
    Resource Id
    ProvisioningState string
    The provisioning state, which only appears in the response.
    Type string
    Resource type
    AutoUpgradeMinorVersion bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    EnableAutomaticUpgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    ForceUpdateTag string
    If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
    Name string
    The name of the extension.
    ProtectedSettings interface{}
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    ProtectedSettingsFromKeyVault KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    ProvisionAfterExtensions []string
    Collection of extension names after which this extension needs to be provisioned.
    Publisher string
    The name of the extension handler publisher.
    Settings interface{}
    Json formatted public settings for the extension.
    SuppressFailures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    TypeHandlerVersion string
    Specifies the version of the script handler.
    id String
    Resource Id
    provisioningState String
    The provisioning state, which only appears in the response.
    type String
    Resource type
    autoUpgradeMinorVersion Boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade Boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag String
    If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
    name String
    The name of the extension.
    protectedSettings Object
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions List<String>
    Collection of extension names after which this extension needs to be provisioned.
    publisher String
    The name of the extension handler publisher.
    settings Object
    Json formatted public settings for the extension.
    suppressFailures Boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    typeHandlerVersion String
    Specifies the version of the script handler.
    id string
    Resource Id
    provisioningState string
    The provisioning state, which only appears in the response.
    type string
    Resource type
    autoUpgradeMinorVersion boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag string
    If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
    name string
    The name of the extension.
    protectedSettings any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions string[]
    Collection of extension names after which this extension needs to be provisioned.
    publisher string
    The name of the extension handler publisher.
    settings any
    Json formatted public settings for the extension.
    suppressFailures boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    typeHandlerVersion string
    Specifies the version of the script handler.
    id str
    Resource Id
    provisioning_state str
    The provisioning state, which only appears in the response.
    type str
    Resource type
    auto_upgrade_minor_version bool
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enable_automatic_upgrade bool
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    force_update_tag str
    If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
    name str
    The name of the extension.
    protected_settings Any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protected_settings_from_key_vault KeyVaultSecretReferenceResponse
    The extensions protected settings that are passed by reference, and consumed from key vault
    provision_after_extensions Sequence[str]
    Collection of extension names after which this extension needs to be provisioned.
    publisher str
    The name of the extension handler publisher.
    settings Any
    Json formatted public settings for the extension.
    suppress_failures bool
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    type_handler_version str
    Specifies the version of the script handler.
    id String
    Resource Id
    provisioningState String
    The provisioning state, which only appears in the response.
    type String
    Resource type
    autoUpgradeMinorVersion Boolean
    Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
    enableAutomaticUpgrade Boolean
    Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
    forceUpdateTag String
    If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
    name String
    The name of the extension.
    protectedSettings Any
    The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
    protectedSettingsFromKeyVault Property Map
    The extensions protected settings that are passed by reference, and consumed from key vault
    provisionAfterExtensions List<String>
    Collection of extension names after which this extension needs to be provisioned.
    publisher String
    The name of the extension handler publisher.
    settings Any
    Json formatted public settings for the extension.
    suppressFailures Boolean
    Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
    typeHandlerVersion String
    Specifies the version of the script handler.

    VirtualMachineScaleSetHardwareProfile, VirtualMachineScaleSetHardwareProfileArgs

    VmSizeProperties Pulumi.AzureNative.Compute.Inputs.VMSizeProperties
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in VM Customization for more details.
    VmSizeProperties VMSizeProperties
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in VM Customization for more details.
    vmSizeProperties VMSizeProperties
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in VM Customization for more details.
    vmSizeProperties VMSizeProperties
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in VM Customization for more details.
    vm_size_properties VMSizeProperties
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in VM Customization for more details.
    vmSizeProperties Property Map
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in VM Customization for more details.

    VirtualMachineScaleSetHardwareProfileResponse, VirtualMachineScaleSetHardwareProfileResponseArgs

    VmSizeProperties Pulumi.AzureNative.Compute.Inputs.VMSizePropertiesResponse
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in VM Customization for more details.
    VmSizeProperties VMSizePropertiesResponse
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in VM Customization for more details.
    vmSizeProperties VMSizePropertiesResponse
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in VM Customization for more details.
    vmSizeProperties VMSizePropertiesResponse
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in VM Customization for more details.
    vm_size_properties VMSizePropertiesResponse
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in VM Customization for more details.
    vmSizeProperties Property Map
    Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in VM Customization for more details.

    VirtualMachineScaleSetIPConfiguration, VirtualMachineScaleSetIPConfigurationArgs

    Name string
    The IP configuration name.
    ApplicationGatewayBackendAddressPools List<Pulumi.AzureNative.Compute.Inputs.SubResource>
    Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
    ApplicationSecurityGroups List<Pulumi.AzureNative.Compute.Inputs.SubResource>
    Specifies an array of references to application security group.
    LoadBalancerBackendAddressPools List<Pulumi.AzureNative.Compute.Inputs.SubResource>
    Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    LoadBalancerInboundNatPools List<Pulumi.AzureNative.Compute.Inputs.SubResource>
    Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    PrivateIPAddressVersion string | Pulumi.AzureNative.Compute.IPVersion
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPAddressConfiguration Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfiguration
    The publicIPAddressConfiguration.
    Subnet Pulumi.AzureNative.Compute.Inputs.ApiEntityReference
    Specifies the identifier of the subnet.
    Name string
    The IP configuration name.
    ApplicationGatewayBackendAddressPools []SubResource
    Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
    ApplicationSecurityGroups []SubResource
    Specifies an array of references to application security group.
    LoadBalancerBackendAddressPools []SubResource
    Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    LoadBalancerInboundNatPools []SubResource
    Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    PrivateIPAddressVersion string | IPVersion
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPAddressConfiguration VirtualMachineScaleSetPublicIPAddressConfiguration
    The publicIPAddressConfiguration.
    Subnet ApiEntityReference
    Specifies the identifier of the subnet.
    name String
    The IP configuration name.
    applicationGatewayBackendAddressPools List<SubResource>
    Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
    applicationSecurityGroups List<SubResource>
    Specifies an array of references to application security group.
    loadBalancerBackendAddressPools List<SubResource>
    Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    loadBalancerInboundNatPools List<SubResource>
    Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    privateIPAddressVersion String | IPVersion
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAddressConfiguration VirtualMachineScaleSetPublicIPAddressConfiguration
    The publicIPAddressConfiguration.
    subnet ApiEntityReference
    Specifies the identifier of the subnet.
    name string
    The IP configuration name.
    applicationGatewayBackendAddressPools SubResource[]
    Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
    applicationSecurityGroups SubResource[]
    Specifies an array of references to application security group.
    loadBalancerBackendAddressPools SubResource[]
    Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    loadBalancerInboundNatPools SubResource[]
    Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    primary boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    privateIPAddressVersion string | IPVersion
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAddressConfiguration VirtualMachineScaleSetPublicIPAddressConfiguration
    The publicIPAddressConfiguration.
    subnet ApiEntityReference
    Specifies the identifier of the subnet.
    name str
    The IP configuration name.
    application_gateway_backend_address_pools Sequence[SubResource]
    Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
    application_security_groups Sequence[SubResource]
    Specifies an array of references to application security group.
    load_balancer_backend_address_pools Sequence[SubResource]
    Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    load_balancer_inbound_nat_pools Sequence[SubResource]
    Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    private_ip_address_version str | IPVersion
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    public_ip_address_configuration VirtualMachineScaleSetPublicIPAddressConfiguration
    The publicIPAddressConfiguration.
    subnet ApiEntityReference
    Specifies the identifier of the subnet.
    name String
    The IP configuration name.
    applicationGatewayBackendAddressPools List<Property Map>
    Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
    applicationSecurityGroups List<Property Map>
    Specifies an array of references to application security group.
    loadBalancerBackendAddressPools List<Property Map>
    Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    loadBalancerInboundNatPools List<Property Map>
    Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    privateIPAddressVersion String | "IPv4" | "IPv6"
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAddressConfiguration Property Map
    The publicIPAddressConfiguration.
    subnet Property Map
    Specifies the identifier of the subnet.

    VirtualMachineScaleSetIPConfigurationResponse, VirtualMachineScaleSetIPConfigurationResponseArgs

    Name string
    The IP configuration name.
    ApplicationGatewayBackendAddressPools List<Pulumi.AzureNative.Compute.Inputs.SubResourceResponse>
    Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
    ApplicationSecurityGroups List<Pulumi.AzureNative.Compute.Inputs.SubResourceResponse>
    Specifies an array of references to application security group.
    LoadBalancerBackendAddressPools List<Pulumi.AzureNative.Compute.Inputs.SubResourceResponse>
    Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    LoadBalancerInboundNatPools List<Pulumi.AzureNative.Compute.Inputs.SubResourceResponse>
    Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    PrivateIPAddressVersion string
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPAddressConfiguration Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfigurationResponse
    The publicIPAddressConfiguration.
    Subnet Pulumi.AzureNative.Compute.Inputs.ApiEntityReferenceResponse
    Specifies the identifier of the subnet.
    Name string
    The IP configuration name.
    ApplicationGatewayBackendAddressPools []SubResourceResponse
    Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
    ApplicationSecurityGroups []SubResourceResponse
    Specifies an array of references to application security group.
    LoadBalancerBackendAddressPools []SubResourceResponse
    Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    LoadBalancerInboundNatPools []SubResourceResponse
    Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    PrivateIPAddressVersion string
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPAddressConfiguration VirtualMachineScaleSetPublicIPAddressConfigurationResponse
    The publicIPAddressConfiguration.
    Subnet ApiEntityReferenceResponse
    Specifies the identifier of the subnet.
    name String
    The IP configuration name.
    applicationGatewayBackendAddressPools List<SubResourceResponse>
    Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
    applicationSecurityGroups List<SubResourceResponse>
    Specifies an array of references to application security group.
    loadBalancerBackendAddressPools List<SubResourceResponse>
    Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    loadBalancerInboundNatPools List<SubResourceResponse>
    Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    privateIPAddressVersion String
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAddressConfiguration VirtualMachineScaleSetPublicIPAddressConfigurationResponse
    The publicIPAddressConfiguration.
    subnet ApiEntityReferenceResponse
    Specifies the identifier of the subnet.
    name string
    The IP configuration name.
    applicationGatewayBackendAddressPools SubResourceResponse[]
    Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
    applicationSecurityGroups SubResourceResponse[]
    Specifies an array of references to application security group.
    loadBalancerBackendAddressPools SubResourceResponse[]
    Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    loadBalancerInboundNatPools SubResourceResponse[]
    Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    primary boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    privateIPAddressVersion string
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAddressConfiguration VirtualMachineScaleSetPublicIPAddressConfigurationResponse
    The publicIPAddressConfiguration.
    subnet ApiEntityReferenceResponse
    Specifies the identifier of the subnet.
    name str
    The IP configuration name.
    application_gateway_backend_address_pools Sequence[SubResourceResponse]
    Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
    application_security_groups Sequence[SubResourceResponse]
    Specifies an array of references to application security group.
    load_balancer_backend_address_pools Sequence[SubResourceResponse]
    Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    load_balancer_inbound_nat_pools Sequence[SubResourceResponse]
    Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    private_ip_address_version str
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    public_ip_address_configuration VirtualMachineScaleSetPublicIPAddressConfigurationResponse
    The publicIPAddressConfiguration.
    subnet ApiEntityReferenceResponse
    Specifies the identifier of the subnet.
    name String
    The IP configuration name.
    applicationGatewayBackendAddressPools List<Property Map>
    Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
    applicationSecurityGroups List<Property Map>
    Specifies an array of references to application security group.
    loadBalancerBackendAddressPools List<Property Map>
    Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    loadBalancerInboundNatPools List<Property Map>
    Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    privateIPAddressVersion String
    Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPAddressConfiguration Property Map
    The publicIPAddressConfiguration.
    subnet Property Map
    Specifies the identifier of the subnet.

    VirtualMachineScaleSetIdentity, VirtualMachineScaleSetIdentityArgs

    Type Pulumi.AzureNative.Compute.ResourceIdentityType
    The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
    UserAssignedIdentities List<string>
    The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    Type ResourceIdentityType
    The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
    UserAssignedIdentities []string
    The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    type ResourceIdentityType
    The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
    userAssignedIdentities List<String>
    The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    type ResourceIdentityType
    The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
    userAssignedIdentities string[]
    The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    type ResourceIdentityType
    The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
    user_assigned_identities Sequence[str]
    The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    type "SystemAssigned" | "UserAssigned" | "SystemAssigned, UserAssigned" | "None"
    The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
    userAssignedIdentities List<String>
    The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

    VirtualMachineScaleSetIdentityResponse, VirtualMachineScaleSetIdentityResponseArgs

    PrincipalId string
    The principal id of virtual machine scale set identity. This property will only be provided for a system assigned identity.
    TenantId string
    The tenant id associated with the virtual machine scale set. This property will only be provided for a system assigned identity.
    Type string
    The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
    UserAssignedIdentities Dictionary<string, Pulumi.AzureNative.Compute.Inputs.UserAssignedIdentitiesResponseUserAssignedIdentities>
    The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    PrincipalId string
    The principal id of virtual machine scale set identity. This property will only be provided for a system assigned identity.
    TenantId string
    The tenant id associated with the virtual machine scale set. This property will only be provided for a system assigned identity.
    Type string
    The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
    UserAssignedIdentities map[string]UserAssignedIdentitiesResponseUserAssignedIdentities
    The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    principalId String
    The principal id of virtual machine scale set identity. This property will only be provided for a system assigned identity.
    tenantId String
    The tenant id associated with the virtual machine scale set. This property will only be provided for a system assigned identity.
    type String
    The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
    userAssignedIdentities Map<String,UserAssignedIdentitiesResponseUserAssignedIdentities>
    The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    principalId string
    The principal id of virtual machine scale set identity. This property will only be provided for a system assigned identity.
    tenantId string
    The tenant id associated with the virtual machine scale set. This property will only be provided for a system assigned identity.
    type string
    The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
    userAssignedIdentities {[key: string]: UserAssignedIdentitiesResponseUserAssignedIdentities}
    The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    principal_id str
    The principal id of virtual machine scale set identity. This property will only be provided for a system assigned identity.
    tenant_id str
    The tenant id associated with the virtual machine scale set. This property will only be provided for a system assigned identity.
    type str
    The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
    user_assigned_identities Mapping[str, UserAssignedIdentitiesResponseUserAssignedIdentities]
    The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
    principalId String
    The principal id of virtual machine scale set identity. This property will only be provided for a system assigned identity.
    tenantId String
    The tenant id associated with the virtual machine scale set. This property will only be provided for a system assigned identity.
    type String
    The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
    userAssignedIdentities Map<Property Map>
    The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

    VirtualMachineScaleSetIpTag, VirtualMachineScaleSetIpTagArgs

    IpTagType string
    IP tag type. Example: FirstPartyUsage.
    Tag string
    IP tag associated with the public IP. Example: SQL, Storage etc.
    IpTagType string
    IP tag type. Example: FirstPartyUsage.
    Tag string
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ipTagType String
    IP tag type. Example: FirstPartyUsage.
    tag String
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ipTagType string
    IP tag type. Example: FirstPartyUsage.
    tag string
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ip_tag_type str
    IP tag type. Example: FirstPartyUsage.
    tag str
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ipTagType String
    IP tag type. Example: FirstPartyUsage.
    tag String
    IP tag associated with the public IP. Example: SQL, Storage etc.

    VirtualMachineScaleSetIpTagResponse, VirtualMachineScaleSetIpTagResponseArgs

    IpTagType string
    IP tag type. Example: FirstPartyUsage.
    Tag string
    IP tag associated with the public IP. Example: SQL, Storage etc.
    IpTagType string
    IP tag type. Example: FirstPartyUsage.
    Tag string
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ipTagType String
    IP tag type. Example: FirstPartyUsage.
    tag String
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ipTagType string
    IP tag type. Example: FirstPartyUsage.
    tag string
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ip_tag_type str
    IP tag type. Example: FirstPartyUsage.
    tag str
    IP tag associated with the public IP. Example: SQL, Storage etc.
    ipTagType String
    IP tag type. Example: FirstPartyUsage.
    tag String
    IP tag associated with the public IP. Example: SQL, Storage etc.

    VirtualMachineScaleSetManagedDiskParameters, VirtualMachineScaleSetManagedDiskParametersArgs

    DiskEncryptionSet Pulumi.AzureNative.Compute.Inputs.DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk.
    SecurityProfile Pulumi.AzureNative.Compute.Inputs.VMDiskSecurityProfile
    Specifies the security profile for the managed disk.
    StorageAccountType string | Pulumi.AzureNative.Compute.StorageAccountTypes
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    DiskEncryptionSet DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk.
    SecurityProfile VMDiskSecurityProfile
    Specifies the security profile for the managed disk.
    StorageAccountType string | StorageAccountTypes
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    diskEncryptionSet DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk.
    securityProfile VMDiskSecurityProfile
    Specifies the security profile for the managed disk.
    storageAccountType String | StorageAccountTypes
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    diskEncryptionSet DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk.
    securityProfile VMDiskSecurityProfile
    Specifies the security profile for the managed disk.
    storageAccountType string | StorageAccountTypes
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    disk_encryption_set DiskEncryptionSetParameters
    Specifies the customer managed disk encryption set resource id for the managed disk.
    security_profile VMDiskSecurityProfile
    Specifies the security profile for the managed disk.
    storage_account_type str | StorageAccountTypes
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    diskEncryptionSet Property Map
    Specifies the customer managed disk encryption set resource id for the managed disk.
    securityProfile Property Map
    Specifies the security profile for the managed disk.
    storageAccountType String | "Standard_LRS" | "Premium_LRS" | "StandardSSD_LRS" | "UltraSSD_LRS" | "Premium_ZRS" | "StandardSSD_ZRS" | "PremiumV2_LRS"
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.

    VirtualMachineScaleSetManagedDiskParametersResponse, VirtualMachineScaleSetManagedDiskParametersResponseArgs

    DiskEncryptionSet Pulumi.AzureNative.Compute.Inputs.DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk.
    SecurityProfile Pulumi.AzureNative.Compute.Inputs.VMDiskSecurityProfileResponse
    Specifies the security profile for the managed disk.
    StorageAccountType string
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    DiskEncryptionSet DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk.
    SecurityProfile VMDiskSecurityProfileResponse
    Specifies the security profile for the managed disk.
    StorageAccountType string
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    diskEncryptionSet DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk.
    securityProfile VMDiskSecurityProfileResponse
    Specifies the security profile for the managed disk.
    storageAccountType String
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    diskEncryptionSet DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk.
    securityProfile VMDiskSecurityProfileResponse
    Specifies the security profile for the managed disk.
    storageAccountType string
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    disk_encryption_set DiskEncryptionSetParametersResponse
    Specifies the customer managed disk encryption set resource id for the managed disk.
    security_profile VMDiskSecurityProfileResponse
    Specifies the security profile for the managed disk.
    storage_account_type str
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.
    diskEncryptionSet Property Map
    Specifies the customer managed disk encryption set resource id for the managed disk.
    securityProfile Property Map
    Specifies the security profile for the managed disk.
    storageAccountType String
    Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk.

    VirtualMachineScaleSetNetworkConfiguration, VirtualMachineScaleSetNetworkConfigurationArgs

    IpConfigurations List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfiguration>
    Specifies the IP configurations of the network interface.
    Name string
    The network configuration name.
    DeleteOption string | Pulumi.AzureNative.Compute.DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    DisableTcpStateTracking bool
    Specifies whether the network interface is disabled for tcp state tracking.
    DnsSettings Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationDnsSettings
    The dns settings to be applied on the network interfaces.
    EnableAcceleratedNetworking bool
    Specifies whether the network interface is accelerated networking-enabled.
    EnableFpga bool
    Specifies whether the network interface is FPGA networking-enabled.
    EnableIPForwarding bool
    Whether IP forwarding enabled on this NIC.
    NetworkSecurityGroup Pulumi.AzureNative.Compute.Inputs.SubResource
    The network security group.
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    IpConfigurations []VirtualMachineScaleSetIPConfiguration
    Specifies the IP configurations of the network interface.
    Name string
    The network configuration name.
    DeleteOption string | DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    DisableTcpStateTracking bool
    Specifies whether the network interface is disabled for tcp state tracking.
    DnsSettings VirtualMachineScaleSetNetworkConfigurationDnsSettings
    The dns settings to be applied on the network interfaces.
    EnableAcceleratedNetworking bool
    Specifies whether the network interface is accelerated networking-enabled.
    EnableFpga bool
    Specifies whether the network interface is FPGA networking-enabled.
    EnableIPForwarding bool
    Whether IP forwarding enabled on this NIC.
    NetworkSecurityGroup SubResource
    The network security group.
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ipConfigurations List<VirtualMachineScaleSetIPConfiguration>
    Specifies the IP configurations of the network interface.
    name String
    The network configuration name.
    deleteOption String | DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    disableTcpStateTracking Boolean
    Specifies whether the network interface is disabled for tcp state tracking.
    dnsSettings VirtualMachineScaleSetNetworkConfigurationDnsSettings
    The dns settings to be applied on the network interfaces.
    enableAcceleratedNetworking Boolean
    Specifies whether the network interface is accelerated networking-enabled.
    enableFpga Boolean
    Specifies whether the network interface is FPGA networking-enabled.
    enableIPForwarding Boolean
    Whether IP forwarding enabled on this NIC.
    networkSecurityGroup SubResource
    The network security group.
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ipConfigurations VirtualMachineScaleSetIPConfiguration[]
    Specifies the IP configurations of the network interface.
    name string
    The network configuration name.
    deleteOption string | DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    disableTcpStateTracking boolean
    Specifies whether the network interface is disabled for tcp state tracking.
    dnsSettings VirtualMachineScaleSetNetworkConfigurationDnsSettings
    The dns settings to be applied on the network interfaces.
    enableAcceleratedNetworking boolean
    Specifies whether the network interface is accelerated networking-enabled.
    enableFpga boolean
    Specifies whether the network interface is FPGA networking-enabled.
    enableIPForwarding boolean
    Whether IP forwarding enabled on this NIC.
    networkSecurityGroup SubResource
    The network security group.
    primary boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ip_configurations Sequence[VirtualMachineScaleSetIPConfiguration]
    Specifies the IP configurations of the network interface.
    name str
    The network configuration name.
    delete_option str | DeleteOptions
    Specify what happens to the network interface when the VM is deleted
    disable_tcp_state_tracking bool
    Specifies whether the network interface is disabled for tcp state tracking.
    dns_settings VirtualMachineScaleSetNetworkConfigurationDnsSettings
    The dns settings to be applied on the network interfaces.
    enable_accelerated_networking bool
    Specifies whether the network interface is accelerated networking-enabled.
    enable_fpga bool
    Specifies whether the network interface is FPGA networking-enabled.
    enable_ip_forwarding bool
    Whether IP forwarding enabled on this NIC.
    network_security_group SubResource
    The network security group.
    primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ipConfigurations List<Property Map>
    Specifies the IP configurations of the network interface.
    name String
    The network configuration name.
    deleteOption String | "Delete" | "Detach"
    Specify what happens to the network interface when the VM is deleted
    disableTcpStateTracking Boolean
    Specifies whether the network interface is disabled for tcp state tracking.
    dnsSettings Property Map
    The dns settings to be applied on the network interfaces.
    enableAcceleratedNetworking Boolean
    Specifies whether the network interface is accelerated networking-enabled.
    enableFpga Boolean
    Specifies whether the network interface is FPGA networking-enabled.
    enableIPForwarding Boolean
    Whether IP forwarding enabled on this NIC.
    networkSecurityGroup Property Map
    The network security group.
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.

    VirtualMachineScaleSetNetworkConfigurationDnsSettings, VirtualMachineScaleSetNetworkConfigurationDnsSettingsArgs

    DnsServers List<string>
    List of DNS servers IP addresses
    DnsServers []string
    List of DNS servers IP addresses
    dnsServers List<String>
    List of DNS servers IP addresses
    dnsServers string[]
    List of DNS servers IP addresses
    dns_servers Sequence[str]
    List of DNS servers IP addresses
    dnsServers List<String>
    List of DNS servers IP addresses

    VirtualMachineScaleSetNetworkConfigurationDnsSettingsResponse, VirtualMachineScaleSetNetworkConfigurationDnsSettingsResponseArgs

    DnsServers List<string>
    List of DNS servers IP addresses
    DnsServers []string
    List of DNS servers IP addresses
    dnsServers List<String>
    List of DNS servers IP addresses
    dnsServers string[]
    List of DNS servers IP addresses
    dns_servers Sequence[str]
    List of DNS servers IP addresses
    dnsServers List<String>
    List of DNS servers IP addresses

    VirtualMachineScaleSetNetworkConfigurationResponse, VirtualMachineScaleSetNetworkConfigurationResponseArgs

    IpConfigurations List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetIPConfigurationResponse>
    Specifies the IP configurations of the network interface.
    Name string
    The network configuration name.
    DeleteOption string
    Specify what happens to the network interface when the VM is deleted
    DisableTcpStateTracking bool
    Specifies whether the network interface is disabled for tcp state tracking.
    DnsSettings Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationDnsSettingsResponse
    The dns settings to be applied on the network interfaces.
    EnableAcceleratedNetworking bool
    Specifies whether the network interface is accelerated networking-enabled.
    EnableFpga bool
    Specifies whether the network interface is FPGA networking-enabled.
    EnableIPForwarding bool
    Whether IP forwarding enabled on this NIC.
    NetworkSecurityGroup Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    The network security group.
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    IpConfigurations []VirtualMachineScaleSetIPConfigurationResponse
    Specifies the IP configurations of the network interface.
    Name string
    The network configuration name.
    DeleteOption string
    Specify what happens to the network interface when the VM is deleted
    DisableTcpStateTracking bool
    Specifies whether the network interface is disabled for tcp state tracking.
    DnsSettings VirtualMachineScaleSetNetworkConfigurationDnsSettingsResponse
    The dns settings to be applied on the network interfaces.
    EnableAcceleratedNetworking bool
    Specifies whether the network interface is accelerated networking-enabled.
    EnableFpga bool
    Specifies whether the network interface is FPGA networking-enabled.
    EnableIPForwarding bool
    Whether IP forwarding enabled on this NIC.
    NetworkSecurityGroup SubResourceResponse
    The network security group.
    Primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ipConfigurations List<VirtualMachineScaleSetIPConfigurationResponse>
    Specifies the IP configurations of the network interface.
    name String
    The network configuration name.
    deleteOption String
    Specify what happens to the network interface when the VM is deleted
    disableTcpStateTracking Boolean
    Specifies whether the network interface is disabled for tcp state tracking.
    dnsSettings VirtualMachineScaleSetNetworkConfigurationDnsSettingsResponse
    The dns settings to be applied on the network interfaces.
    enableAcceleratedNetworking Boolean
    Specifies whether the network interface is accelerated networking-enabled.
    enableFpga Boolean
    Specifies whether the network interface is FPGA networking-enabled.
    enableIPForwarding Boolean
    Whether IP forwarding enabled on this NIC.
    networkSecurityGroup SubResourceResponse
    The network security group.
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ipConfigurations VirtualMachineScaleSetIPConfigurationResponse[]
    Specifies the IP configurations of the network interface.
    name string
    The network configuration name.
    deleteOption string
    Specify what happens to the network interface when the VM is deleted
    disableTcpStateTracking boolean
    Specifies whether the network interface is disabled for tcp state tracking.
    dnsSettings VirtualMachineScaleSetNetworkConfigurationDnsSettingsResponse
    The dns settings to be applied on the network interfaces.
    enableAcceleratedNetworking boolean
    Specifies whether the network interface is accelerated networking-enabled.
    enableFpga boolean
    Specifies whether the network interface is FPGA networking-enabled.
    enableIPForwarding boolean
    Whether IP forwarding enabled on this NIC.
    networkSecurityGroup SubResourceResponse
    The network security group.
    primary boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ip_configurations Sequence[VirtualMachineScaleSetIPConfigurationResponse]
    Specifies the IP configurations of the network interface.
    name str
    The network configuration name.
    delete_option str
    Specify what happens to the network interface when the VM is deleted
    disable_tcp_state_tracking bool
    Specifies whether the network interface is disabled for tcp state tracking.
    dns_settings VirtualMachineScaleSetNetworkConfigurationDnsSettingsResponse
    The dns settings to be applied on the network interfaces.
    enable_accelerated_networking bool
    Specifies whether the network interface is accelerated networking-enabled.
    enable_fpga bool
    Specifies whether the network interface is FPGA networking-enabled.
    enable_ip_forwarding bool
    Whether IP forwarding enabled on this NIC.
    network_security_group SubResourceResponse
    The network security group.
    primary bool
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.
    ipConfigurations List<Property Map>
    Specifies the IP configurations of the network interface.
    name String
    The network configuration name.
    deleteOption String
    Specify what happens to the network interface when the VM is deleted
    disableTcpStateTracking Boolean
    Specifies whether the network interface is disabled for tcp state tracking.
    dnsSettings Property Map
    The dns settings to be applied on the network interfaces.
    enableAcceleratedNetworking Boolean
    Specifies whether the network interface is accelerated networking-enabled.
    enableFpga Boolean
    Specifies whether the network interface is FPGA networking-enabled.
    enableIPForwarding Boolean
    Whether IP forwarding enabled on this NIC.
    networkSecurityGroup Property Map
    The network security group.
    primary Boolean
    Specifies the primary network interface in case the virtual machine has more than 1 network interface.

    VirtualMachineScaleSetNetworkProfile, VirtualMachineScaleSetNetworkProfileArgs

    HealthProbe Pulumi.AzureNative.Compute.Inputs.ApiEntityReference
    A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
    NetworkApiVersion string | Pulumi.AzureNative.Compute.NetworkApiVersion
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'
    NetworkInterfaceConfigurations List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfiguration>
    The list of network configurations.
    HealthProbe ApiEntityReference
    A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
    NetworkApiVersion string | NetworkApiVersion
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'
    NetworkInterfaceConfigurations []VirtualMachineScaleSetNetworkConfiguration
    The list of network configurations.
    healthProbe ApiEntityReference
    A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
    networkApiVersion String | NetworkApiVersion
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'
    networkInterfaceConfigurations List<VirtualMachineScaleSetNetworkConfiguration>
    The list of network configurations.
    healthProbe ApiEntityReference
    A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
    networkApiVersion string | NetworkApiVersion
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'
    networkInterfaceConfigurations VirtualMachineScaleSetNetworkConfiguration[]
    The list of network configurations.
    health_probe ApiEntityReference
    A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
    network_api_version str | NetworkApiVersion
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'
    network_interface_configurations Sequence[VirtualMachineScaleSetNetworkConfiguration]
    The list of network configurations.
    healthProbe Property Map
    A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
    networkApiVersion String | "2020-11-01"
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'
    networkInterfaceConfigurations List<Property Map>
    The list of network configurations.

    VirtualMachineScaleSetNetworkProfileResponse, VirtualMachineScaleSetNetworkProfileResponseArgs

    HealthProbe Pulumi.AzureNative.Compute.Inputs.ApiEntityReferenceResponse
    A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
    NetworkApiVersion string
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'
    NetworkInterfaceConfigurations List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkConfigurationResponse>
    The list of network configurations.
    HealthProbe ApiEntityReferenceResponse
    A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
    NetworkApiVersion string
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'
    NetworkInterfaceConfigurations []VirtualMachineScaleSetNetworkConfigurationResponse
    The list of network configurations.
    healthProbe ApiEntityReferenceResponse
    A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
    networkApiVersion String
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'
    networkInterfaceConfigurations List<VirtualMachineScaleSetNetworkConfigurationResponse>
    The list of network configurations.
    healthProbe ApiEntityReferenceResponse
    A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
    networkApiVersion string
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'
    networkInterfaceConfigurations VirtualMachineScaleSetNetworkConfigurationResponse[]
    The list of network configurations.
    health_probe ApiEntityReferenceResponse
    A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
    network_api_version str
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'
    network_interface_configurations Sequence[VirtualMachineScaleSetNetworkConfigurationResponse]
    The list of network configurations.
    healthProbe Property Map
    A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'.
    networkApiVersion String
    specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'
    networkInterfaceConfigurations List<Property Map>
    The list of network configurations.

    VirtualMachineScaleSetOSDisk, VirtualMachineScaleSetOSDiskArgs

    CreateOption string | Pulumi.AzureNative.Compute.DiskCreateOptionTypes
    Specifies how the virtual machines in the scale set should be created. The only allowed value is: FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
    Caching Pulumi.AzureNative.Compute.CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string | Pulumi.AzureNative.Compute.DiskDeleteOptionTypes
    Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the OS disk is deleted when VMSS Flex VM is deleted. Detach If this value is used, the OS disk is retained after VMSS Flex VM is deleted. The default value is set to Delete. For an Ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for Ephemeral OS Disk.
    DiffDiskSettings Pulumi.AzureNative.Compute.Inputs.DiffDiskSettings
    Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    Image Pulumi.AzureNative.Compute.Inputs.VirtualHardDisk
    Specifies information about the unmanaged user image to base the scale set on.
    ManagedDisk Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParameters
    The managed disk parameters.
    Name string
    The disk name.
    OsType Pulumi.AzureNative.Compute.OperatingSystemTypes
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    VhdContainers List<string>
    Specifies the container urls that are used to store operating system disks for the scale set.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    CreateOption string | DiskCreateOptionTypes
    Specifies how the virtual machines in the scale set should be created. The only allowed value is: FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
    Caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string | DiskDeleteOptionTypes
    Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the OS disk is deleted when VMSS Flex VM is deleted. Detach If this value is used, the OS disk is retained after VMSS Flex VM is deleted. The default value is set to Delete. For an Ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for Ephemeral OS Disk.
    DiffDiskSettings DiffDiskSettings
    Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    Image VirtualHardDisk
    Specifies information about the unmanaged user image to base the scale set on.
    ManagedDisk VirtualMachineScaleSetManagedDiskParameters
    The managed disk parameters.
    Name string
    The disk name.
    OsType OperatingSystemTypes
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    VhdContainers []string
    Specifies the container urls that are used to store operating system disks for the scale set.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String | DiskCreateOptionTypes
    Specifies how the virtual machines in the scale set should be created. The only allowed value is: FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
    caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String | DiskDeleteOptionTypes
    Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the OS disk is deleted when VMSS Flex VM is deleted. Detach If this value is used, the OS disk is retained after VMSS Flex VM is deleted. The default value is set to Delete. For an Ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for Ephemeral OS Disk.
    diffDiskSettings DiffDiskSettings
    Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
    diskSizeGB Integer
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image VirtualHardDisk
    Specifies information about the unmanaged user image to base the scale set on.
    managedDisk VirtualMachineScaleSetManagedDiskParameters
    The managed disk parameters.
    name String
    The disk name.
    osType OperatingSystemTypes
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhdContainers List<String>
    Specifies the container urls that are used to store operating system disks for the scale set.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption string | DiskCreateOptionTypes
    Specifies how the virtual machines in the scale set should be created. The only allowed value is: FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
    caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    deleteOption string | DiskDeleteOptionTypes
    Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the OS disk is deleted when VMSS Flex VM is deleted. Detach If this value is used, the OS disk is retained after VMSS Flex VM is deleted. The default value is set to Delete. For an Ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for Ephemeral OS Disk.
    diffDiskSettings DiffDiskSettings
    Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
    diskSizeGB number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image VirtualHardDisk
    Specifies information about the unmanaged user image to base the scale set on.
    managedDisk VirtualMachineScaleSetManagedDiskParameters
    The managed disk parameters.
    name string
    The disk name.
    osType OperatingSystemTypes
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhdContainers string[]
    Specifies the container urls that are used to store operating system disks for the scale set.
    writeAcceleratorEnabled boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    create_option str | DiskCreateOptionTypes
    Specifies how the virtual machines in the scale set should be created. The only allowed value is: FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
    caching CachingTypes
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    delete_option str | DiskDeleteOptionTypes
    Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the OS disk is deleted when VMSS Flex VM is deleted. Detach If this value is used, the OS disk is retained after VMSS Flex VM is deleted. The default value is set to Delete. For an Ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for Ephemeral OS Disk.
    diff_disk_settings DiffDiskSettings
    Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
    disk_size_gb int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image VirtualHardDisk
    Specifies information about the unmanaged user image to base the scale set on.
    managed_disk VirtualMachineScaleSetManagedDiskParameters
    The managed disk parameters.
    name str
    The disk name.
    os_type OperatingSystemTypes
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhd_containers Sequence[str]
    Specifies the container urls that are used to store operating system disks for the scale set.
    write_accelerator_enabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String | "FromImage" | "Empty" | "Attach"
    Specifies how the virtual machines in the scale set should be created. The only allowed value is: FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
    caching "None" | "ReadOnly" | "ReadWrite"
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String | "Delete" | "Detach"
    Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the OS disk is deleted when VMSS Flex VM is deleted. Detach If this value is used, the OS disk is retained after VMSS Flex VM is deleted. The default value is set to Delete. For an Ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for Ephemeral OS Disk.
    diffDiskSettings Property Map
    Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
    diskSizeGB Number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image Property Map
    Specifies information about the unmanaged user image to base the scale set on.
    managedDisk Property Map
    The managed disk parameters.
    name String
    The disk name.
    osType "Windows" | "Linux"
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhdContainers List<String>
    Specifies the container urls that are used to store operating system disks for the scale set.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.

    VirtualMachineScaleSetOSDiskResponse, VirtualMachineScaleSetOSDiskResponseArgs

    CreateOption string
    Specifies how the virtual machines in the scale set should be created. The only allowed value is: FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
    Caching string
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string
    Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the OS disk is deleted when VMSS Flex VM is deleted. Detach If this value is used, the OS disk is retained after VMSS Flex VM is deleted. The default value is set to Delete. For an Ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for Ephemeral OS Disk.
    DiffDiskSettings Pulumi.AzureNative.Compute.Inputs.DiffDiskSettingsResponse
    Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    Image Pulumi.AzureNative.Compute.Inputs.VirtualHardDiskResponse
    Specifies information about the unmanaged user image to base the scale set on.
    ManagedDisk Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetManagedDiskParametersResponse
    The managed disk parameters.
    Name string
    The disk name.
    OsType string
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    VhdContainers List<string>
    Specifies the container urls that are used to store operating system disks for the scale set.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    CreateOption string
    Specifies how the virtual machines in the scale set should be created. The only allowed value is: FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
    Caching string
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    DeleteOption string
    Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the OS disk is deleted when VMSS Flex VM is deleted. Detach If this value is used, the OS disk is retained after VMSS Flex VM is deleted. The default value is set to Delete. For an Ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for Ephemeral OS Disk.
    DiffDiskSettings DiffDiskSettingsResponse
    Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
    DiskSizeGB int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    Image VirtualHardDiskResponse
    Specifies information about the unmanaged user image to base the scale set on.
    ManagedDisk VirtualMachineScaleSetManagedDiskParametersResponse
    The managed disk parameters.
    Name string
    The disk name.
    OsType string
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    VhdContainers []string
    Specifies the container urls that are used to store operating system disks for the scale set.
    WriteAcceleratorEnabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String
    Specifies how the virtual machines in the scale set should be created. The only allowed value is: FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
    caching String
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String
    Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the OS disk is deleted when VMSS Flex VM is deleted. Detach If this value is used, the OS disk is retained after VMSS Flex VM is deleted. The default value is set to Delete. For an Ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for Ephemeral OS Disk.
    diffDiskSettings DiffDiskSettingsResponse
    Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
    diskSizeGB Integer
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image VirtualHardDiskResponse
    Specifies information about the unmanaged user image to base the scale set on.
    managedDisk VirtualMachineScaleSetManagedDiskParametersResponse
    The managed disk parameters.
    name String
    The disk name.
    osType String
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhdContainers List<String>
    Specifies the container urls that are used to store operating system disks for the scale set.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption string
    Specifies how the virtual machines in the scale set should be created. The only allowed value is: FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
    caching string
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    deleteOption string
    Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the OS disk is deleted when VMSS Flex VM is deleted. Detach If this value is used, the OS disk is retained after VMSS Flex VM is deleted. The default value is set to Delete. For an Ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for Ephemeral OS Disk.
    diffDiskSettings DiffDiskSettingsResponse
    Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
    diskSizeGB number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image VirtualHardDiskResponse
    Specifies information about the unmanaged user image to base the scale set on.
    managedDisk VirtualMachineScaleSetManagedDiskParametersResponse
    The managed disk parameters.
    name string
    The disk name.
    osType string
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhdContainers string[]
    Specifies the container urls that are used to store operating system disks for the scale set.
    writeAcceleratorEnabled boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    create_option str
    Specifies how the virtual machines in the scale set should be created. The only allowed value is: FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
    caching str
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    delete_option str
    Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the OS disk is deleted when VMSS Flex VM is deleted. Detach If this value is used, the OS disk is retained after VMSS Flex VM is deleted. The default value is set to Delete. For an Ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for Ephemeral OS Disk.
    diff_disk_settings DiffDiskSettingsResponse
    Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
    disk_size_gb int
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image VirtualHardDiskResponse
    Specifies information about the unmanaged user image to base the scale set on.
    managed_disk VirtualMachineScaleSetManagedDiskParametersResponse
    The managed disk parameters.
    name str
    The disk name.
    os_type str
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhd_containers Sequence[str]
    Specifies the container urls that are used to store operating system disks for the scale set.
    write_accelerator_enabled bool
    Specifies whether writeAccelerator should be enabled or disabled on the disk.
    createOption String
    Specifies how the virtual machines in the scale set should be created. The only allowed value is: FromImage. This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
    caching String
    Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage.
    deleteOption String
    Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only). Possible values: Delete If this value is used, the OS disk is deleted when VMSS Flex VM is deleted. Detach If this value is used, the OS disk is retained after VMSS Flex VM is deleted. The default value is set to Delete. For an Ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for Ephemeral OS Disk.
    diffDiskSettings Property Map
    Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
    diskSizeGB Number
    Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
    image Property Map
    Specifies information about the unmanaged user image to base the scale set on.
    managedDisk Property Map
    The managed disk parameters.
    name String
    The disk name.
    osType String
    This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: Windows, Linux.
    vhdContainers List<String>
    Specifies the container urls that are used to store operating system disks for the scale set.
    writeAcceleratorEnabled Boolean
    Specifies whether writeAccelerator should be enabled or disabled on the disk.

    VirtualMachineScaleSetOSProfile, VirtualMachineScaleSetOSProfileArgs

    AdminPassword string
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    AdminUsername string
    Specifies the name of the administrator account. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters
    AllowExtensionOperations bool
    Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set.
    ComputerNamePrefix string
    Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
    CustomData string
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation
    LinuxConfiguration Pulumi.AzureNative.Compute.Inputs.LinuxConfiguration
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    RequireGuestProvisionSignal bool
    Optional property which must either be set to True or omitted.
    Secrets List<Pulumi.AzureNative.Compute.Inputs.VaultSecretGroup>
    Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    WindowsConfiguration Pulumi.AzureNative.Compute.Inputs.WindowsConfiguration
    Specifies Windows operating system settings on the virtual machine.
    AdminPassword string
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    AdminUsername string
    Specifies the name of the administrator account. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters
    AllowExtensionOperations bool
    Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set.
    ComputerNamePrefix string
    Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
    CustomData string
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation
    LinuxConfiguration LinuxConfiguration
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    RequireGuestProvisionSignal bool
    Optional property which must either be set to True or omitted.
    Secrets []VaultSecretGroup
    Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    WindowsConfiguration WindowsConfiguration
    Specifies Windows operating system settings on the virtual machine.
    adminPassword String
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    adminUsername String
    Specifies the name of the administrator account. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters
    allowExtensionOperations Boolean
    Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set.
    computerNamePrefix String
    Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
    customData String
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation
    linuxConfiguration LinuxConfiguration
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    requireGuestProvisionSignal Boolean
    Optional property which must either be set to True or omitted.
    secrets List<VaultSecretGroup>
    Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windowsConfiguration WindowsConfiguration
    Specifies Windows operating system settings on the virtual machine.
    adminPassword string
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    adminUsername string
    Specifies the name of the administrator account. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters
    allowExtensionOperations boolean
    Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set.
    computerNamePrefix string
    Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
    customData string
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation
    linuxConfiguration LinuxConfiguration
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    requireGuestProvisionSignal boolean
    Optional property which must either be set to True or omitted.
    secrets VaultSecretGroup[]
    Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windowsConfiguration WindowsConfiguration
    Specifies Windows operating system settings on the virtual machine.
    admin_password str
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    admin_username str
    Specifies the name of the administrator account. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters
    allow_extension_operations bool
    Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set.
    computer_name_prefix str
    Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
    custom_data str
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation
    linux_configuration LinuxConfiguration
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    require_guest_provision_signal bool
    Optional property which must either be set to True or omitted.
    secrets Sequence[VaultSecretGroup]
    Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windows_configuration WindowsConfiguration
    Specifies Windows operating system settings on the virtual machine.
    adminPassword String
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    adminUsername String
    Specifies the name of the administrator account. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters
    allowExtensionOperations Boolean
    Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set.
    computerNamePrefix String
    Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
    customData String
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation
    linuxConfiguration Property Map
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    requireGuestProvisionSignal Boolean
    Optional property which must either be set to True or omitted.
    secrets List<Property Map>
    Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windowsConfiguration Property Map
    Specifies Windows operating system settings on the virtual machine.

    VirtualMachineScaleSetOSProfileResponse, VirtualMachineScaleSetOSProfileResponseArgs

    AdminPassword string
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    AdminUsername string
    Specifies the name of the administrator account. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters
    AllowExtensionOperations bool
    Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set.
    ComputerNamePrefix string
    Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
    CustomData string
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation
    LinuxConfiguration Pulumi.AzureNative.Compute.Inputs.LinuxConfigurationResponse
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    RequireGuestProvisionSignal bool
    Optional property which must either be set to True or omitted.
    Secrets List<Pulumi.AzureNative.Compute.Inputs.VaultSecretGroupResponse>
    Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    WindowsConfiguration Pulumi.AzureNative.Compute.Inputs.WindowsConfigurationResponse
    Specifies Windows operating system settings on the virtual machine.
    AdminPassword string
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    AdminUsername string
    Specifies the name of the administrator account. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters
    AllowExtensionOperations bool
    Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set.
    ComputerNamePrefix string
    Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
    CustomData string
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation
    LinuxConfiguration LinuxConfigurationResponse
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    RequireGuestProvisionSignal bool
    Optional property which must either be set to True or omitted.
    Secrets []VaultSecretGroupResponse
    Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    WindowsConfiguration WindowsConfigurationResponse
    Specifies Windows operating system settings on the virtual machine.
    adminPassword String
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    adminUsername String
    Specifies the name of the administrator account. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters
    allowExtensionOperations Boolean
    Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set.
    computerNamePrefix String
    Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
    customData String
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation
    linuxConfiguration LinuxConfigurationResponse
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    requireGuestProvisionSignal Boolean
    Optional property which must either be set to True or omitted.
    secrets List<VaultSecretGroupResponse>
    Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windowsConfiguration WindowsConfigurationResponse
    Specifies Windows operating system settings on the virtual machine.
    adminPassword string
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    adminUsername string
    Specifies the name of the administrator account. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters
    allowExtensionOperations boolean
    Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set.
    computerNamePrefix string
    Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
    customData string
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation
    linuxConfiguration LinuxConfigurationResponse
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    requireGuestProvisionSignal boolean
    Optional property which must either be set to True or omitted.
    secrets VaultSecretGroupResponse[]
    Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windowsConfiguration WindowsConfigurationResponse
    Specifies Windows operating system settings on the virtual machine.
    admin_password str
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    admin_username str
    Specifies the name of the administrator account. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters
    allow_extension_operations bool
    Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set.
    computer_name_prefix str
    Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
    custom_data str
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation
    linux_configuration LinuxConfigurationResponse
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    require_guest_provision_signal bool
    Optional property which must either be set to True or omitted.
    secrets Sequence[VaultSecretGroupResponse]
    Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windows_configuration WindowsConfigurationResponse
    Specifies Windows operating system settings on the virtual machine.
    adminPassword String
    Specifies the password of the administrator account. Minimum-length (Windows): 8 characters Minimum-length (Linux): 6 characters Max-length (Windows): 123 characters Max-length (Linux): 72 characters Complexity requirements: 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\W_]) **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
    adminUsername String
    Specifies the name of the administrator account. Windows-only restriction: Cannot end in "." Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". Minimum-length (Linux): 1 character Max-length (Linux): 64 characters Max-length (Windows): 20 characters
    allowExtensionOperations Boolean
    Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set.
    computerNamePrefix String
    Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
    customData String
    Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation
    linuxConfiguration Property Map
    Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
    requireGuestProvisionSignal Boolean
    Optional property which must either be set to True or omitted.
    secrets List<Property Map>
    Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    windowsConfiguration Property Map
    Specifies Windows operating system settings on the virtual machine.

    VirtualMachineScaleSetPublicIPAddressConfiguration, VirtualMachineScaleSetPublicIPAddressConfigurationArgs

    Name string
    The publicIP address configuration name.
    DeleteOption string | Pulumi.AzureNative.Compute.DeleteOptions
    Specify what happens to the public IP when the VM is deleted
    DnsSettings Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings
    The dns settings to be applied on the publicIP addresses .
    IdleTimeoutInMinutes int
    The idle timeout of the public IP address.
    IpTags List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetIpTag>
    The list of IP tags associated with the public IP address.
    PublicIPAddressVersion string | Pulumi.AzureNative.Compute.IPVersion
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPPrefix Pulumi.AzureNative.Compute.Inputs.SubResource
    The PublicIPPrefix from which to allocate publicIP addresses.
    Sku Pulumi.AzureNative.Compute.Inputs.PublicIPAddressSku
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    Name string
    The publicIP address configuration name.
    DeleteOption string | DeleteOptions
    Specify what happens to the public IP when the VM is deleted
    DnsSettings VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings
    The dns settings to be applied on the publicIP addresses .
    IdleTimeoutInMinutes int
    The idle timeout of the public IP address.
    IpTags []VirtualMachineScaleSetIpTag
    The list of IP tags associated with the public IP address.
    PublicIPAddressVersion string | IPVersion
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPPrefix SubResource
    The PublicIPPrefix from which to allocate publicIP addresses.
    Sku PublicIPAddressSku
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name String
    The publicIP address configuration name.
    deleteOption String | DeleteOptions
    Specify what happens to the public IP when the VM is deleted
    dnsSettings VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings
    The dns settings to be applied on the publicIP addresses .
    idleTimeoutInMinutes Integer
    The idle timeout of the public IP address.
    ipTags List<VirtualMachineScaleSetIpTag>
    The list of IP tags associated with the public IP address.
    publicIPAddressVersion String | IPVersion
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPPrefix SubResource
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku PublicIPAddressSku
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name string
    The publicIP address configuration name.
    deleteOption string | DeleteOptions
    Specify what happens to the public IP when the VM is deleted
    dnsSettings VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings
    The dns settings to be applied on the publicIP addresses .
    idleTimeoutInMinutes number
    The idle timeout of the public IP address.
    ipTags VirtualMachineScaleSetIpTag[]
    The list of IP tags associated with the public IP address.
    publicIPAddressVersion string | IPVersion
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPPrefix SubResource
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku PublicIPAddressSku
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name str
    The publicIP address configuration name.
    delete_option str | DeleteOptions
    Specify what happens to the public IP when the VM is deleted
    dns_settings VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings
    The dns settings to be applied on the publicIP addresses .
    idle_timeout_in_minutes int
    The idle timeout of the public IP address.
    ip_tags Sequence[VirtualMachineScaleSetIpTag]
    The list of IP tags associated with the public IP address.
    public_ip_address_version str | IPVersion
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    public_ip_prefix SubResource
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku PublicIPAddressSku
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name String
    The publicIP address configuration name.
    deleteOption String | "Delete" | "Detach"
    Specify what happens to the public IP when the VM is deleted
    dnsSettings Property Map
    The dns settings to be applied on the publicIP addresses .
    idleTimeoutInMinutes Number
    The idle timeout of the public IP address.
    ipTags List<Property Map>
    The list of IP tags associated with the public IP address.
    publicIPAddressVersion String | "IPv4" | "IPv6"
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPPrefix Property Map
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku Property Map
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.

    VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings, VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsArgs

    DomainNameLabel string
    The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created
    DomainNameLabel string
    The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created
    domainNameLabel String
    The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created
    domainNameLabel string
    The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created
    domain_name_label str
    The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created
    domainNameLabel String
    The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created

    VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsResponse, VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsResponseArgs

    DomainNameLabel string
    The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created
    DomainNameLabel string
    The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created
    domainNameLabel String
    The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created
    domainNameLabel string
    The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created
    domain_name_label str
    The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created
    domainNameLabel String
    The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created

    VirtualMachineScaleSetPublicIPAddressConfigurationResponse, VirtualMachineScaleSetPublicIPAddressConfigurationResponseArgs

    Name string
    The publicIP address configuration name.
    DeleteOption string
    Specify what happens to the public IP when the VM is deleted
    DnsSettings Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsResponse
    The dns settings to be applied on the publicIP addresses .
    IdleTimeoutInMinutes int
    The idle timeout of the public IP address.
    IpTags List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetIpTagResponse>
    The list of IP tags associated with the public IP address.
    PublicIPAddressVersion string
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPPrefix Pulumi.AzureNative.Compute.Inputs.SubResourceResponse
    The PublicIPPrefix from which to allocate publicIP addresses.
    Sku Pulumi.AzureNative.Compute.Inputs.PublicIPAddressSkuResponse
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    Name string
    The publicIP address configuration name.
    DeleteOption string
    Specify what happens to the public IP when the VM is deleted
    DnsSettings VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsResponse
    The dns settings to be applied on the publicIP addresses .
    IdleTimeoutInMinutes int
    The idle timeout of the public IP address.
    IpTags []VirtualMachineScaleSetIpTagResponse
    The list of IP tags associated with the public IP address.
    PublicIPAddressVersion string
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    PublicIPPrefix SubResourceResponse
    The PublicIPPrefix from which to allocate publicIP addresses.
    Sku PublicIPAddressSkuResponse
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name String
    The publicIP address configuration name.
    deleteOption String
    Specify what happens to the public IP when the VM is deleted
    dnsSettings VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsResponse
    The dns settings to be applied on the publicIP addresses .
    idleTimeoutInMinutes Integer
    The idle timeout of the public IP address.
    ipTags List<VirtualMachineScaleSetIpTagResponse>
    The list of IP tags associated with the public IP address.
    publicIPAddressVersion String
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPPrefix SubResourceResponse
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku PublicIPAddressSkuResponse
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name string
    The publicIP address configuration name.
    deleteOption string
    Specify what happens to the public IP when the VM is deleted
    dnsSettings VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsResponse
    The dns settings to be applied on the publicIP addresses .
    idleTimeoutInMinutes number
    The idle timeout of the public IP address.
    ipTags VirtualMachineScaleSetIpTagResponse[]
    The list of IP tags associated with the public IP address.
    publicIPAddressVersion string
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPPrefix SubResourceResponse
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku PublicIPAddressSkuResponse
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name str
    The publicIP address configuration name.
    delete_option str
    Specify what happens to the public IP when the VM is deleted
    dns_settings VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsResponse
    The dns settings to be applied on the publicIP addresses .
    idle_timeout_in_minutes int
    The idle timeout of the public IP address.
    ip_tags Sequence[VirtualMachineScaleSetIpTagResponse]
    The list of IP tags associated with the public IP address.
    public_ip_address_version str
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    public_ip_prefix SubResourceResponse
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku PublicIPAddressSkuResponse
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
    name String
    The publicIP address configuration name.
    deleteOption String
    Specify what happens to the public IP when the VM is deleted
    dnsSettings Property Map
    The dns settings to be applied on the publicIP addresses .
    idleTimeoutInMinutes Number
    The idle timeout of the public IP address.
    ipTags List<Property Map>
    The list of IP tags associated with the public IP address.
    publicIPAddressVersion String
    Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
    publicIPPrefix Property Map
    The PublicIPPrefix from which to allocate publicIP addresses.
    sku Property Map
    Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.

    VirtualMachineScaleSetScaleInRules, VirtualMachineScaleSetScaleInRulesArgs

    Default
    Default
    OldestVM
    OldestVM
    NewestVM
    NewestVM
    VirtualMachineScaleSetScaleInRulesDefault
    Default
    VirtualMachineScaleSetScaleInRulesOldestVM
    OldestVM
    VirtualMachineScaleSetScaleInRulesNewestVM
    NewestVM
    Default
    Default
    OldestVM
    OldestVM
    NewestVM
    NewestVM
    Default
    Default
    OldestVM
    OldestVM
    NewestVM
    NewestVM
    DEFAULT
    Default
    OLDEST_VM
    OldestVM
    NEWEST_VM
    NewestVM
    "Default"
    Default
    "OldestVM"
    OldestVM
    "NewestVM"
    NewestVM

    VirtualMachineScaleSetStorageProfile, VirtualMachineScaleSetStorageProfileArgs

    DataDisks List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDisk>
    Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    DiskControllerType List<Union<string, Pulumi.AzureNative.Compute.DiskControllerTypes>>
    ImageReference Pulumi.AzureNative.Compute.Inputs.ImageReference
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    OsDisk Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDisk
    Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    DataDisks []VirtualMachineScaleSetDataDisk
    Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    DiskControllerType []string
    ImageReference ImageReference
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    OsDisk VirtualMachineScaleSetOSDisk
    Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    dataDisks List<VirtualMachineScaleSetDataDisk>
    Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    diskControllerType List<Either<String,DiskControllerTypes>>
    imageReference ImageReference
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    osDisk VirtualMachineScaleSetOSDisk
    Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    dataDisks VirtualMachineScaleSetDataDisk[]
    Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    diskControllerType (string | DiskControllerTypes)[]
    imageReference ImageReference
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    osDisk VirtualMachineScaleSetOSDisk
    Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    data_disks Sequence[VirtualMachineScaleSetDataDisk]
    Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    disk_controller_type Sequence[Union[str, DiskControllerTypes]]
    image_reference ImageReference
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    os_disk VirtualMachineScaleSetOSDisk
    Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    dataDisks List<Property Map>
    Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    diskControllerType List<String | "SCSI" | "NVMe">
    imageReference Property Map
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    osDisk Property Map
    Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.

    VirtualMachineScaleSetStorageProfileResponse, VirtualMachineScaleSetStorageProfileResponseArgs

    DataDisks List<Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetDataDiskResponse>
    Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    DiskControllerType List<string>
    ImageReference Pulumi.AzureNative.Compute.Inputs.ImageReferenceResponse
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    OsDisk Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetOSDiskResponse
    Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    DataDisks []VirtualMachineScaleSetDataDiskResponse
    Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    DiskControllerType []string
    ImageReference ImageReferenceResponse
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    OsDisk VirtualMachineScaleSetOSDiskResponse
    Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    dataDisks List<VirtualMachineScaleSetDataDiskResponse>
    Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    diskControllerType List<String>
    imageReference ImageReferenceResponse
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    osDisk VirtualMachineScaleSetOSDiskResponse
    Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    dataDisks VirtualMachineScaleSetDataDiskResponse[]
    Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    diskControllerType string[]
    imageReference ImageReferenceResponse
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    osDisk VirtualMachineScaleSetOSDiskResponse
    Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    data_disks Sequence[VirtualMachineScaleSetDataDiskResponse]
    Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    disk_controller_type Sequence[str]
    image_reference ImageReferenceResponse
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    os_disk VirtualMachineScaleSetOSDiskResponse
    Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    dataDisks List<Property Map>
    Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.
    diskControllerType List<String>
    imageReference Property Map
    Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    osDisk Property Map
    Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see About disks and VHDs for Azure virtual machines.

    VirtualMachineScaleSetVMProfile, VirtualMachineScaleSetVMProfileArgs

    ApplicationProfile Pulumi.AzureNative.Compute.Inputs.ApplicationProfile
    Specifies the gallery applications that should be made available to the VM/VMSS
    BillingProfile Pulumi.AzureNative.Compute.Inputs.BillingProfile
    Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01.
    CapacityReservation Pulumi.AzureNative.Compute.Inputs.CapacityReservationProfile
    Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01.
    DiagnosticsProfile Pulumi.AzureNative.Compute.Inputs.DiagnosticsProfile
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    EvictionPolicy string | Pulumi.AzureNative.Compute.VirtualMachineEvictionPolicyTypes
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    ExtensionProfile Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionProfile
    Specifies a collection of settings for extensions installed on virtual machines in the scale set.
    HardwareProfile Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetHardwareProfile
    Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01.
    LicenseType string
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    NetworkProfile Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfile
    Specifies properties of the network interfaces of the virtual machines in the scale set.
    OsProfile Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfile
    Specifies the operating system settings for the virtual machines in the scale set.
    Priority string | Pulumi.AzureNative.Compute.VirtualMachinePriorityTypes
    Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview.
    ScheduledEventsProfile Pulumi.AzureNative.Compute.Inputs.ScheduledEventsProfile
    Specifies Scheduled Event related configurations.
    SecurityPostureReference Pulumi.AzureNative.Compute.Inputs.SecurityPostureReference
    Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01
    SecurityProfile Pulumi.AzureNative.Compute.Inputs.SecurityProfile
    Specifies the Security related profile settings for the virtual machines in the scale set.
    ServiceArtifactReference Pulumi.AzureNative.Compute.Inputs.ServiceArtifactReference
    Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01
    StorageProfile Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfile
    Specifies the storage settings for the virtual machine disks.
    UserData string
    UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    ApplicationProfile ApplicationProfile
    Specifies the gallery applications that should be made available to the VM/VMSS
    BillingProfile BillingProfile
    Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01.
    CapacityReservation CapacityReservationProfile
    Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01.
    DiagnosticsProfile DiagnosticsProfile
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    EvictionPolicy string | VirtualMachineEvictionPolicyTypes
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    ExtensionProfile VirtualMachineScaleSetExtensionProfile
    Specifies a collection of settings for extensions installed on virtual machines in the scale set.
    HardwareProfile VirtualMachineScaleSetHardwareProfile
    Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01.
    LicenseType string
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    NetworkProfile VirtualMachineScaleSetNetworkProfile
    Specifies properties of the network interfaces of the virtual machines in the scale set.
    OsProfile VirtualMachineScaleSetOSProfile
    Specifies the operating system settings for the virtual machines in the scale set.
    Priority string | VirtualMachinePriorityTypes
    Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview.
    ScheduledEventsProfile ScheduledEventsProfile
    Specifies Scheduled Event related configurations.
    SecurityPostureReference SecurityPostureReference
    Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01
    SecurityProfile SecurityProfile
    Specifies the Security related profile settings for the virtual machines in the scale set.
    ServiceArtifactReference ServiceArtifactReference
    Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01
    StorageProfile VirtualMachineScaleSetStorageProfile
    Specifies the storage settings for the virtual machine disks.
    UserData string
    UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    applicationProfile ApplicationProfile
    Specifies the gallery applications that should be made available to the VM/VMSS
    billingProfile BillingProfile
    Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01.
    capacityReservation CapacityReservationProfile
    Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01.
    diagnosticsProfile DiagnosticsProfile
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    evictionPolicy String | VirtualMachineEvictionPolicyTypes
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    extensionProfile VirtualMachineScaleSetExtensionProfile
    Specifies a collection of settings for extensions installed on virtual machines in the scale set.
    hardwareProfile VirtualMachineScaleSetHardwareProfile
    Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01.
    licenseType String
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    networkProfile VirtualMachineScaleSetNetworkProfile
    Specifies properties of the network interfaces of the virtual machines in the scale set.
    osProfile VirtualMachineScaleSetOSProfile
    Specifies the operating system settings for the virtual machines in the scale set.
    priority String | VirtualMachinePriorityTypes
    Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview.
    scheduledEventsProfile ScheduledEventsProfile
    Specifies Scheduled Event related configurations.
    securityPostureReference SecurityPostureReference
    Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01
    securityProfile SecurityProfile
    Specifies the Security related profile settings for the virtual machines in the scale set.
    serviceArtifactReference ServiceArtifactReference
    Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01
    storageProfile VirtualMachineScaleSetStorageProfile
    Specifies the storage settings for the virtual machine disks.
    userData String
    UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    applicationProfile ApplicationProfile
    Specifies the gallery applications that should be made available to the VM/VMSS
    billingProfile BillingProfile
    Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01.
    capacityReservation CapacityReservationProfile
    Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01.
    diagnosticsProfile DiagnosticsProfile
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    evictionPolicy string | VirtualMachineEvictionPolicyTypes
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    extensionProfile VirtualMachineScaleSetExtensionProfile
    Specifies a collection of settings for extensions installed on virtual machines in the scale set.
    hardwareProfile VirtualMachineScaleSetHardwareProfile
    Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01.
    licenseType string
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    networkProfile VirtualMachineScaleSetNetworkProfile
    Specifies properties of the network interfaces of the virtual machines in the scale set.
    osProfile VirtualMachineScaleSetOSProfile
    Specifies the operating system settings for the virtual machines in the scale set.
    priority string | VirtualMachinePriorityTypes
    Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview.
    scheduledEventsProfile ScheduledEventsProfile
    Specifies Scheduled Event related configurations.
    securityPostureReference SecurityPostureReference
    Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01
    securityProfile SecurityProfile
    Specifies the Security related profile settings for the virtual machines in the scale set.
    serviceArtifactReference ServiceArtifactReference
    Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01
    storageProfile VirtualMachineScaleSetStorageProfile
    Specifies the storage settings for the virtual machine disks.
    userData string
    UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    application_profile ApplicationProfile
    Specifies the gallery applications that should be made available to the VM/VMSS
    billing_profile BillingProfile
    Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01.
    capacity_reservation CapacityReservationProfile
    Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01.
    diagnostics_profile DiagnosticsProfile
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    eviction_policy str | VirtualMachineEvictionPolicyTypes
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    extension_profile VirtualMachineScaleSetExtensionProfile
    Specifies a collection of settings for extensions installed on virtual machines in the scale set.
    hardware_profile VirtualMachineScaleSetHardwareProfile
    Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01.
    license_type str
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    network_profile VirtualMachineScaleSetNetworkProfile
    Specifies properties of the network interfaces of the virtual machines in the scale set.
    os_profile VirtualMachineScaleSetOSProfile
    Specifies the operating system settings for the virtual machines in the scale set.
    priority str | VirtualMachinePriorityTypes
    Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview.
    scheduled_events_profile ScheduledEventsProfile
    Specifies Scheduled Event related configurations.
    security_posture_reference SecurityPostureReference
    Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01
    security_profile SecurityProfile
    Specifies the Security related profile settings for the virtual machines in the scale set.
    service_artifact_reference ServiceArtifactReference
    Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01
    storage_profile VirtualMachineScaleSetStorageProfile
    Specifies the storage settings for the virtual machine disks.
    user_data str
    UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    applicationProfile Property Map
    Specifies the gallery applications that should be made available to the VM/VMSS
    billingProfile Property Map
    Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01.
    capacityReservation Property Map
    Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01.
    diagnosticsProfile Property Map
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    evictionPolicy String | "Deallocate" | "Delete"
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    extensionProfile Property Map
    Specifies a collection of settings for extensions installed on virtual machines in the scale set.
    hardwareProfile Property Map
    Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01.
    licenseType String
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    networkProfile Property Map
    Specifies properties of the network interfaces of the virtual machines in the scale set.
    osProfile Property Map
    Specifies the operating system settings for the virtual machines in the scale set.
    priority String | "Regular" | "Low" | "Spot"
    Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview.
    scheduledEventsProfile Property Map
    Specifies Scheduled Event related configurations.
    securityPostureReference Property Map
    Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01
    securityProfile Property Map
    Specifies the Security related profile settings for the virtual machines in the scale set.
    serviceArtifactReference Property Map
    Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01
    storageProfile Property Map
    Specifies the storage settings for the virtual machine disks.
    userData String
    UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.

    VirtualMachineScaleSetVMProfileResponse, VirtualMachineScaleSetVMProfileResponseArgs

    ApplicationProfile Pulumi.AzureNative.Compute.Inputs.ApplicationProfileResponse
    Specifies the gallery applications that should be made available to the VM/VMSS
    BillingProfile Pulumi.AzureNative.Compute.Inputs.BillingProfileResponse
    Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01.
    CapacityReservation Pulumi.AzureNative.Compute.Inputs.CapacityReservationProfileResponse
    Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01.
    DiagnosticsProfile Pulumi.AzureNative.Compute.Inputs.DiagnosticsProfileResponse
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    EvictionPolicy string
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    ExtensionProfile Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetExtensionProfileResponse
    Specifies a collection of settings for extensions installed on virtual machines in the scale set.
    HardwareProfile Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetHardwareProfileResponse
    Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01.
    LicenseType string
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    NetworkProfile Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetNetworkProfileResponse
    Specifies properties of the network interfaces of the virtual machines in the scale set.
    OsProfile Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetOSProfileResponse
    Specifies the operating system settings for the virtual machines in the scale set.
    Priority string
    Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview.
    ScheduledEventsProfile Pulumi.AzureNative.Compute.Inputs.ScheduledEventsProfileResponse
    Specifies Scheduled Event related configurations.
    SecurityPostureReference Pulumi.AzureNative.Compute.Inputs.SecurityPostureReferenceResponse
    Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01
    SecurityProfile Pulumi.AzureNative.Compute.Inputs.SecurityProfileResponse
    Specifies the Security related profile settings for the virtual machines in the scale set.
    ServiceArtifactReference Pulumi.AzureNative.Compute.Inputs.ServiceArtifactReferenceResponse
    Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01
    StorageProfile Pulumi.AzureNative.Compute.Inputs.VirtualMachineScaleSetStorageProfileResponse
    Specifies the storage settings for the virtual machine disks.
    UserData string
    UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    ApplicationProfile ApplicationProfileResponse
    Specifies the gallery applications that should be made available to the VM/VMSS
    BillingProfile BillingProfileResponse
    Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01.
    CapacityReservation CapacityReservationProfileResponse
    Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01.
    DiagnosticsProfile DiagnosticsProfileResponse
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    EvictionPolicy string
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    ExtensionProfile VirtualMachineScaleSetExtensionProfileResponse
    Specifies a collection of settings for extensions installed on virtual machines in the scale set.
    HardwareProfile VirtualMachineScaleSetHardwareProfileResponse
    Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01.
    LicenseType string
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    NetworkProfile VirtualMachineScaleSetNetworkProfileResponse
    Specifies properties of the network interfaces of the virtual machines in the scale set.
    OsProfile VirtualMachineScaleSetOSProfileResponse
    Specifies the operating system settings for the virtual machines in the scale set.
    Priority string
    Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview.
    ScheduledEventsProfile ScheduledEventsProfileResponse
    Specifies Scheduled Event related configurations.
    SecurityPostureReference SecurityPostureReferenceResponse
    Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01
    SecurityProfile SecurityProfileResponse
    Specifies the Security related profile settings for the virtual machines in the scale set.
    ServiceArtifactReference ServiceArtifactReferenceResponse
    Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01
    StorageProfile VirtualMachineScaleSetStorageProfileResponse
    Specifies the storage settings for the virtual machine disks.
    UserData string
    UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    applicationProfile ApplicationProfileResponse
    Specifies the gallery applications that should be made available to the VM/VMSS
    billingProfile BillingProfileResponse
    Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01.
    capacityReservation CapacityReservationProfileResponse
    Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01.
    diagnosticsProfile DiagnosticsProfileResponse
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    evictionPolicy String
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    extensionProfile VirtualMachineScaleSetExtensionProfileResponse
    Specifies a collection of settings for extensions installed on virtual machines in the scale set.
    hardwareProfile VirtualMachineScaleSetHardwareProfileResponse
    Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01.
    licenseType String
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    networkProfile VirtualMachineScaleSetNetworkProfileResponse
    Specifies properties of the network interfaces of the virtual machines in the scale set.
    osProfile VirtualMachineScaleSetOSProfileResponse
    Specifies the operating system settings for the virtual machines in the scale set.
    priority String
    Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview.
    scheduledEventsProfile ScheduledEventsProfileResponse
    Specifies Scheduled Event related configurations.
    securityPostureReference SecurityPostureReferenceResponse
    Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01
    securityProfile SecurityProfileResponse
    Specifies the Security related profile settings for the virtual machines in the scale set.
    serviceArtifactReference ServiceArtifactReferenceResponse
    Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01
    storageProfile VirtualMachineScaleSetStorageProfileResponse
    Specifies the storage settings for the virtual machine disks.
    userData String
    UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    applicationProfile ApplicationProfileResponse
    Specifies the gallery applications that should be made available to the VM/VMSS
    billingProfile BillingProfileResponse
    Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01.
    capacityReservation CapacityReservationProfileResponse
    Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01.
    diagnosticsProfile DiagnosticsProfileResponse
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    evictionPolicy string
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    extensionProfile VirtualMachineScaleSetExtensionProfileResponse
    Specifies a collection of settings for extensions installed on virtual machines in the scale set.
    hardwareProfile VirtualMachineScaleSetHardwareProfileResponse
    Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01.
    licenseType string
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    networkProfile VirtualMachineScaleSetNetworkProfileResponse
    Specifies properties of the network interfaces of the virtual machines in the scale set.
    osProfile VirtualMachineScaleSetOSProfileResponse
    Specifies the operating system settings for the virtual machines in the scale set.
    priority string
    Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview.
    scheduledEventsProfile ScheduledEventsProfileResponse
    Specifies Scheduled Event related configurations.
    securityPostureReference SecurityPostureReferenceResponse
    Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01
    securityProfile SecurityProfileResponse
    Specifies the Security related profile settings for the virtual machines in the scale set.
    serviceArtifactReference ServiceArtifactReferenceResponse
    Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01
    storageProfile VirtualMachineScaleSetStorageProfileResponse
    Specifies the storage settings for the virtual machine disks.
    userData string
    UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    application_profile ApplicationProfileResponse
    Specifies the gallery applications that should be made available to the VM/VMSS
    billing_profile BillingProfileResponse
    Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01.
    capacity_reservation CapacityReservationProfileResponse
    Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01.
    diagnostics_profile DiagnosticsProfileResponse
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    eviction_policy str
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    extension_profile VirtualMachineScaleSetExtensionProfileResponse
    Specifies a collection of settings for extensions installed on virtual machines in the scale set.
    hardware_profile VirtualMachineScaleSetHardwareProfileResponse
    Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01.
    license_type str
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    network_profile VirtualMachineScaleSetNetworkProfileResponse
    Specifies properties of the network interfaces of the virtual machines in the scale set.
    os_profile VirtualMachineScaleSetOSProfileResponse
    Specifies the operating system settings for the virtual machines in the scale set.
    priority str
    Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview.
    scheduled_events_profile ScheduledEventsProfileResponse
    Specifies Scheduled Event related configurations.
    security_posture_reference SecurityPostureReferenceResponse
    Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01
    security_profile SecurityProfileResponse
    Specifies the Security related profile settings for the virtual machines in the scale set.
    service_artifact_reference ServiceArtifactReferenceResponse
    Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01
    storage_profile VirtualMachineScaleSetStorageProfileResponse
    Specifies the storage settings for the virtual machine disks.
    user_data str
    UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
    applicationProfile Property Map
    Specifies the gallery applications that should be made available to the VM/VMSS
    billingProfile Property Map
    Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01.
    capacityReservation Property Map
    Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01.
    diagnosticsProfile Property Map
    Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
    evictionPolicy String
    Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
    extensionProfile Property Map
    Specifies a collection of settings for extensions installed on virtual machines in the scale set.
    hardwareProfile Property Map
    Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01.
    licenseType String
    Specifies that the image or disk that is being used was licensed on-premises. Possible values for Windows Server operating system are: Windows_Client Windows_Server Possible values for Linux Server operating system are: RHEL_BYOS (for RHEL) SLES_BYOS (for SUSE) For more information, see Azure Hybrid Use Benefit for Windows Server Azure Hybrid Use Benefit for Linux Server Minimum api-version: 2015-06-15
    networkProfile Property Map
    Specifies properties of the network interfaces of the virtual machines in the scale set.
    osProfile Property Map
    Specifies the operating system settings for the virtual machines in the scale set.
    priority String
    Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview.
    scheduledEventsProfile Property Map
    Specifies Scheduled Event related configurations.
    securityPostureReference Property Map
    Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01
    securityProfile Property Map
    Specifies the Security related profile settings for the virtual machines in the scale set.
    serviceArtifactReference Property Map
    Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01
    storageProfile Property Map
    Specifies the storage settings for the virtual machine disks.
    userData String
    UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.

    WinRMConfiguration, WinRMConfigurationArgs

    Listeners List<Pulumi.AzureNative.Compute.Inputs.WinRMListener>
    The list of Windows Remote Management listeners
    Listeners []WinRMListener
    The list of Windows Remote Management listeners
    listeners List<WinRMListener>
    The list of Windows Remote Management listeners
    listeners WinRMListener[]
    The list of Windows Remote Management listeners
    listeners Sequence[WinRMListener]
    The list of Windows Remote Management listeners
    listeners List<Property Map>
    The list of Windows Remote Management listeners

    WinRMConfigurationResponse, WinRMConfigurationResponseArgs

    Listeners List<Pulumi.AzureNative.Compute.Inputs.WinRMListenerResponse>
    The list of Windows Remote Management listeners
    Listeners []WinRMListenerResponse
    The list of Windows Remote Management listeners
    listeners List<WinRMListenerResponse>
    The list of Windows Remote Management listeners
    listeners WinRMListenerResponse[]
    The list of Windows Remote Management listeners
    listeners Sequence[WinRMListenerResponse]
    The list of Windows Remote Management listeners
    listeners List<Property Map>
    The list of Windows Remote Management listeners

    WinRMListener, WinRMListenerArgs

    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    Protocol Pulumi.AzureNative.Compute.ProtocolTypes
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    Protocol ProtocolTypes
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol ProtocolTypes
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol ProtocolTypes
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificate_url str
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol ProtocolTypes
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol "Http" | "Https"
    Specifies the protocol of WinRM listener. Possible values are: http, https.

    WinRMListenerResponse, WinRMListenerResponseArgs

    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    Protocol string
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    CertificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    Protocol string
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol String
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificateUrl string
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol string
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificate_url str
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol str
    Specifies the protocol of WinRM listener. Possible values are: http, https.
    certificateUrl String
    This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8: { "data":"", "dataType":"pfx", "password":""} To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the Azure Key Vault virtual machine extension for Windows.
    protocol String
    Specifies the protocol of WinRM listener. Possible values are: http, https.

    WindowsConfiguration, WindowsConfigurationArgs

    AdditionalUnattendContent List<Pulumi.AzureNative.Compute.Inputs.AdditionalUnattendContent>
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    EnableAutomaticUpdates bool
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    PatchSettings Pulumi.AzureNative.Compute.Inputs.PatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    TimeZone string
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    WinRM Pulumi.AzureNative.Compute.Inputs.WinRMConfiguration
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    AdditionalUnattendContent []AdditionalUnattendContent
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    EnableAutomaticUpdates bool
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    PatchSettings PatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    TimeZone string
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    WinRM WinRMConfiguration
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additionalUnattendContent List<AdditionalUnattendContent>
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enableAutomaticUpdates Boolean
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patchSettings PatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    timeZone String
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    winRM WinRMConfiguration
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additionalUnattendContent AdditionalUnattendContent[]
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enableAutomaticUpdates boolean
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enableVMAgentPlatformUpdates boolean
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patchSettings PatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provisionVMAgent boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    timeZone string
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    winRM WinRMConfiguration
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additional_unattend_content Sequence[AdditionalUnattendContent]
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enable_automatic_updates bool
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enable_vm_agent_platform_updates bool
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patch_settings PatchSettings
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    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, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    time_zone str
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    win_rm WinRMConfiguration
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additionalUnattendContent List<Property Map>
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enableAutomaticUpdates Boolean
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patchSettings Property Map
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    timeZone String
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    winRM Property Map
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.

    WindowsConfigurationResponse, WindowsConfigurationResponseArgs

    AdditionalUnattendContent List<Pulumi.AzureNative.Compute.Inputs.AdditionalUnattendContentResponse>
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    EnableAutomaticUpdates bool
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    PatchSettings Pulumi.AzureNative.Compute.Inputs.PatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    TimeZone string
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    WinRM Pulumi.AzureNative.Compute.Inputs.WinRMConfigurationResponse
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    AdditionalUnattendContent []AdditionalUnattendContentResponse
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    EnableAutomaticUpdates bool
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    EnableVMAgentPlatformUpdates bool
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    PatchSettings PatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    ProvisionVMAgent bool
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    TimeZone string
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    WinRM WinRMConfigurationResponse
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additionalUnattendContent List<AdditionalUnattendContentResponse>
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enableAutomaticUpdates Boolean
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patchSettings PatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    timeZone String
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    winRM WinRMConfigurationResponse
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additionalUnattendContent AdditionalUnattendContentResponse[]
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enableAutomaticUpdates boolean
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enableVMAgentPlatformUpdates boolean
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patchSettings PatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provisionVMAgent boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    timeZone string
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    winRM WinRMConfigurationResponse
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additional_unattend_content Sequence[AdditionalUnattendContentResponse]
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enable_automatic_updates bool
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enable_vm_agent_platform_updates bool
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patch_settings PatchSettingsResponse
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    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, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    time_zone str
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    win_rm WinRMConfigurationResponse
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
    additionalUnattendContent List<Property Map>
    Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
    enableAutomaticUpdates Boolean
    Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
    enableVMAgentPlatformUpdates Boolean
    Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false.
    patchSettings Property Map
    [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
    provisionVMAgent Boolean
    Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
    timeZone String
    Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be TimeZoneInfo.Id value from time zones returned by TimeZoneInfo.GetSystemTimeZones.
    winRM Property Map
    Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.

    WindowsPatchAssessmentMode, WindowsPatchAssessmentModeArgs

    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    WindowsPatchAssessmentModeImageDefault
    ImageDefault
    WindowsPatchAssessmentModeAutomaticByPlatform
    AutomaticByPlatform
    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    ImageDefault
    ImageDefault
    AutomaticByPlatform
    AutomaticByPlatform
    IMAGE_DEFAULT
    ImageDefault
    AUTOMATIC_BY_PLATFORM
    AutomaticByPlatform
    "ImageDefault"
    ImageDefault
    "AutomaticByPlatform"
    AutomaticByPlatform

    WindowsVMGuestPatchAutomaticByPlatformRebootSetting, WindowsVMGuestPatchAutomaticByPlatformRebootSettingArgs

    Unknown
    Unknown
    IfRequired
    IfRequired
    Never
    Never
    Always
    Always
    WindowsVMGuestPatchAutomaticByPlatformRebootSettingUnknown
    Unknown
    WindowsVMGuestPatchAutomaticByPlatformRebootSettingIfRequired
    IfRequired
    WindowsVMGuestPatchAutomaticByPlatformRebootSettingNever
    Never
    WindowsVMGuestPatchAutomaticByPlatformRebootSettingAlways
    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

    WindowsVMGuestPatchAutomaticByPlatformSettings, WindowsVMGuestPatchAutomaticByPlatformSettingsArgs

    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string | Pulumi.AzureNative.Compute.WindowsVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    BypassPlatformSafetyChecksOnUserSchedule bool
    Enables customer to schedule patching without accidental upgrades
    RebootSetting string | WindowsVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule Boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting String | WindowsVMGuestPatchAutomaticByPlatformRebootSetting
    Specifies the reboot setting for all AutomaticByPlatform patch installation operations.
    bypassPlatformSafetyChecksOnUserSchedule boolean
    Enables customer to schedule patching without accidental upgrades
    rebootSetting string | WindowsVMGuestPatchAutomaticByPlatformRebootSetting
    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 | WindowsVMGuestPatchAutomaticByPlatformRebootSetting
    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.

    WindowsVMGuestPatchAutomaticByPlatformSettingsResponse, WindowsVMGuestPatchAutomaticByPlatformSettingsResponseArgs

    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.

    WindowsVMGuestPatchMode, WindowsVMGuestPatchModeArgs

    Manual
    Manual
    AutomaticByOS
    AutomaticByOS
    AutomaticByPlatform
    AutomaticByPlatform
    WindowsVMGuestPatchModeManual
    Manual
    WindowsVMGuestPatchModeAutomaticByOS
    AutomaticByOS
    WindowsVMGuestPatchModeAutomaticByPlatform
    AutomaticByPlatform
    Manual
    Manual
    AutomaticByOS
    AutomaticByOS
    AutomaticByPlatform
    AutomaticByPlatform
    Manual
    Manual
    AutomaticByOS
    AutomaticByOS
    AutomaticByPlatform
    AutomaticByPlatform
    MANUAL
    Manual
    AUTOMATIC_BY_OS
    AutomaticByOS
    AUTOMATIC_BY_PLATFORM
    AutomaticByPlatform
    "Manual"
    Manual
    "AutomaticByOS"
    AutomaticByOS
    "AutomaticByPlatform"
    AutomaticByPlatform

    Import

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

    $ pulumi import azure-native:compute:VirtualMachineScaleSet {vmss-name} /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName} 
    

    Package Details

    Repository
    Azure Native pulumi/pulumi-azure-native
    License
    Apache-2.0
    azure-native logo
    This is the latest version of Azure Native. Use the Azure Native v1 docs if using the v1 version of this package.
    Azure Native v2.33.0 published on Friday, Mar 22, 2024 by Pulumi