1. Packages
  2. Azure Classic
  3. API Docs
  4. compute
  5. LinuxVirtualMachineScaleSet

We recommend using Azure Native.

Azure Classic v5.73.0 published on Monday, Apr 22, 2024 by Pulumi

azure.compute.LinuxVirtualMachineScaleSet

Explore with Pulumi AI

azure logo

We recommend using Azure Native.

Azure Classic v5.73.0 published on Monday, Apr 22, 2024 by Pulumi

    Manages a Linux Virtual Machine Scale Set.

    Disclaimers

    NOTE: This provider will automatically update & reimage the nodes in the Scale Set (if Required) during an Update - this behaviour can be configured using the features setting within the Provider block.

    Example Usage

    This example provisions a basic Linux Virtual Machine Scale Set on an internal network.

    import * as pulumi from "@pulumi/pulumi";
    import * as azure from "@pulumi/azure";
    
    const firstPublicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+wWK73dCr+jgQOAxNsHAnNNNMEMWOHYEccp6wJm2gotpr9katuF/ZAdou5AaW1C61slRkHRkpRRX9FA9CYBiitZgvCCz+3nWNN7l/Up54Zps/pHWGZLHNJZRYyAB6j5yVLMVHIHriY49d/GZTZVNB8GoJv9Gakwc/fuEZYYl4YDFiGMBP///TzlI4jhiJzjKnEvqPFki5p2ZRJqcbCiF4pJrxUQR/RXqVFQdbRLZgYfJ8xGB878RENq3yQ39d8dVOkq4edbkzwcUmwwwkYVPIoDGsYLaRHnG+To7FvMeyO7xDVQkMKzopTQV8AuKpyvpqu0a9pWOMaiCyDytO7GGN you@me.com";
    const example = new azure.core.ResourceGroup("example", {
        name: "example-resources",
        location: "West Europe",
    });
    const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
        name: "example-network",
        resourceGroupName: example.name,
        location: example.location,
        addressSpaces: ["10.0.0.0/16"],
    });
    const internal = new azure.network.Subnet("internal", {
        name: "internal",
        resourceGroupName: example.name,
        virtualNetworkName: exampleVirtualNetwork.name,
        addressPrefixes: ["10.0.2.0/24"],
    });
    const exampleLinuxVirtualMachineScaleSet = new azure.compute.LinuxVirtualMachineScaleSet("example", {
        name: "example-vmss",
        resourceGroupName: example.name,
        location: example.location,
        sku: "Standard_F2",
        instances: 1,
        adminUsername: "adminuser",
        adminSshKeys: [{
            username: "adminuser",
            publicKey: firstPublicKey,
        }],
        sourceImageReference: {
            publisher: "Canonical",
            offer: "0001-com-ubuntu-server-jammy",
            sku: "22_04-lts",
            version: "latest",
        },
        osDisk: {
            storageAccountType: "Standard_LRS",
            caching: "ReadWrite",
        },
        networkInterfaces: [{
            name: "example",
            primary: true,
            ipConfigurations: [{
                name: "internal",
                primary: true,
                subnetId: internal.id,
            }],
        }],
    });
    
    import pulumi
    import pulumi_azure as azure
    
    first_public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+wWK73dCr+jgQOAxNsHAnNNNMEMWOHYEccp6wJm2gotpr9katuF/ZAdou5AaW1C61slRkHRkpRRX9FA9CYBiitZgvCCz+3nWNN7l/Up54Zps/pHWGZLHNJZRYyAB6j5yVLMVHIHriY49d/GZTZVNB8GoJv9Gakwc/fuEZYYl4YDFiGMBP///TzlI4jhiJzjKnEvqPFki5p2ZRJqcbCiF4pJrxUQR/RXqVFQdbRLZgYfJ8xGB878RENq3yQ39d8dVOkq4edbkzwcUmwwwkYVPIoDGsYLaRHnG+To7FvMeyO7xDVQkMKzopTQV8AuKpyvpqu0a9pWOMaiCyDytO7GGN you@me.com"
    example = azure.core.ResourceGroup("example",
        name="example-resources",
        location="West Europe")
    example_virtual_network = azure.network.VirtualNetwork("example",
        name="example-network",
        resource_group_name=example.name,
        location=example.location,
        address_spaces=["10.0.0.0/16"])
    internal = azure.network.Subnet("internal",
        name="internal",
        resource_group_name=example.name,
        virtual_network_name=example_virtual_network.name,
        address_prefixes=["10.0.2.0/24"])
    example_linux_virtual_machine_scale_set = azure.compute.LinuxVirtualMachineScaleSet("example",
        name="example-vmss",
        resource_group_name=example.name,
        location=example.location,
        sku="Standard_F2",
        instances=1,
        admin_username="adminuser",
        admin_ssh_keys=[azure.compute.LinuxVirtualMachineScaleSetAdminSshKeyArgs(
            username="adminuser",
            public_key=first_public_key,
        )],
        source_image_reference=azure.compute.LinuxVirtualMachineScaleSetSourceImageReferenceArgs(
            publisher="Canonical",
            offer="0001-com-ubuntu-server-jammy",
            sku="22_04-lts",
            version="latest",
        ),
        os_disk=azure.compute.LinuxVirtualMachineScaleSetOsDiskArgs(
            storage_account_type="Standard_LRS",
            caching="ReadWrite",
        ),
        network_interfaces=[azure.compute.LinuxVirtualMachineScaleSetNetworkInterfaceArgs(
            name="example",
            primary=True,
            ip_configurations=[azure.compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs(
                name="internal",
                primary=True,
                subnet_id=internal.id,
            )],
        )])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/compute"
    	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
    	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		firstPublicKey := "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+wWK73dCr+jgQOAxNsHAnNNNMEMWOHYEccp6wJm2gotpr9katuF/ZAdou5AaW1C61slRkHRkpRRX9FA9CYBiitZgvCCz+3nWNN7l/Up54Zps/pHWGZLHNJZRYyAB6j5yVLMVHIHriY49d/GZTZVNB8GoJv9Gakwc/fuEZYYl4YDFiGMBP///TzlI4jhiJzjKnEvqPFki5p2ZRJqcbCiF4pJrxUQR/RXqVFQdbRLZgYfJ8xGB878RENq3yQ39d8dVOkq4edbkzwcUmwwwkYVPIoDGsYLaRHnG+To7FvMeyO7xDVQkMKzopTQV8AuKpyvpqu0a9pWOMaiCyDytO7GGN you@me.com"
    		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
    			Name:     pulumi.String("example-resources"),
    			Location: pulumi.String("West Europe"),
    		})
    		if err != nil {
    			return err
    		}
    		exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
    			Name:              pulumi.String("example-network"),
    			ResourceGroupName: example.Name,
    			Location:          example.Location,
    			AddressSpaces: pulumi.StringArray{
    				pulumi.String("10.0.0.0/16"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		internal, err := network.NewSubnet(ctx, "internal", &network.SubnetArgs{
    			Name:               pulumi.String("internal"),
    			ResourceGroupName:  example.Name,
    			VirtualNetworkName: exampleVirtualNetwork.Name,
    			AddressPrefixes: pulumi.StringArray{
    				pulumi.String("10.0.2.0/24"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewLinuxVirtualMachineScaleSet(ctx, "example", &compute.LinuxVirtualMachineScaleSetArgs{
    			Name:              pulumi.String("example-vmss"),
    			ResourceGroupName: example.Name,
    			Location:          example.Location,
    			Sku:               pulumi.String("Standard_F2"),
    			Instances:         pulumi.Int(1),
    			AdminUsername:     pulumi.String("adminuser"),
    			AdminSshKeys: compute.LinuxVirtualMachineScaleSetAdminSshKeyArray{
    				&compute.LinuxVirtualMachineScaleSetAdminSshKeyArgs{
    					Username:  pulumi.String("adminuser"),
    					PublicKey: pulumi.String(firstPublicKey),
    				},
    			},
    			SourceImageReference: &compute.LinuxVirtualMachineScaleSetSourceImageReferenceArgs{
    				Publisher: pulumi.String("Canonical"),
    				Offer:     pulumi.String("0001-com-ubuntu-server-jammy"),
    				Sku:       pulumi.String("22_04-lts"),
    				Version:   pulumi.String("latest"),
    			},
    			OsDisk: &compute.LinuxVirtualMachineScaleSetOsDiskArgs{
    				StorageAccountType: pulumi.String("Standard_LRS"),
    				Caching:            pulumi.String("ReadWrite"),
    			},
    			NetworkInterfaces: compute.LinuxVirtualMachineScaleSetNetworkInterfaceArray{
    				&compute.LinuxVirtualMachineScaleSetNetworkInterfaceArgs{
    					Name:    pulumi.String("example"),
    					Primary: pulumi.Bool(true),
    					IpConfigurations: compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArray{
    						&compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs{
    							Name:     pulumi.String("internal"),
    							Primary:  pulumi.Bool(true),
    							SubnetId: internal.ID(),
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Azure = Pulumi.Azure;
    
    return await Deployment.RunAsync(() => 
    {
        var firstPublicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+wWK73dCr+jgQOAxNsHAnNNNMEMWOHYEccp6wJm2gotpr9katuF/ZAdou5AaW1C61slRkHRkpRRX9FA9CYBiitZgvCCz+3nWNN7l/Up54Zps/pHWGZLHNJZRYyAB6j5yVLMVHIHriY49d/GZTZVNB8GoJv9Gakwc/fuEZYYl4YDFiGMBP///TzlI4jhiJzjKnEvqPFki5p2ZRJqcbCiF4pJrxUQR/RXqVFQdbRLZgYfJ8xGB878RENq3yQ39d8dVOkq4edbkzwcUmwwwkYVPIoDGsYLaRHnG+To7FvMeyO7xDVQkMKzopTQV8AuKpyvpqu0a9pWOMaiCyDytO7GGN you@me.com";
    
        var example = new Azure.Core.ResourceGroup("example", new()
        {
            Name = "example-resources",
            Location = "West Europe",
        });
    
        var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
        {
            Name = "example-network",
            ResourceGroupName = example.Name,
            Location = example.Location,
            AddressSpaces = new[]
            {
                "10.0.0.0/16",
            },
        });
    
        var @internal = new Azure.Network.Subnet("internal", new()
        {
            Name = "internal",
            ResourceGroupName = example.Name,
            VirtualNetworkName = exampleVirtualNetwork.Name,
            AddressPrefixes = new[]
            {
                "10.0.2.0/24",
            },
        });
    
        var exampleLinuxVirtualMachineScaleSet = new Azure.Compute.LinuxVirtualMachineScaleSet("example", new()
        {
            Name = "example-vmss",
            ResourceGroupName = example.Name,
            Location = example.Location,
            Sku = "Standard_F2",
            Instances = 1,
            AdminUsername = "adminuser",
            AdminSshKeys = new[]
            {
                new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetAdminSshKeyArgs
                {
                    Username = "adminuser",
                    PublicKey = firstPublicKey,
                },
            },
            SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetSourceImageReferenceArgs
            {
                Publisher = "Canonical",
                Offer = "0001-com-ubuntu-server-jammy",
                Sku = "22_04-lts",
                Version = "latest",
            },
            OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetOsDiskArgs
            {
                StorageAccountType = "Standard_LRS",
                Caching = "ReadWrite",
            },
            NetworkInterfaces = new[]
            {
                new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceArgs
                {
                    Name = "example",
                    Primary = true,
                    IpConfigurations = new[]
                    {
                        new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs
                        {
                            Name = "internal",
                            Primary = true,
                            SubnetId = @internal.Id,
                        },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azure.core.ResourceGroup;
    import com.pulumi.azure.core.ResourceGroupArgs;
    import com.pulumi.azure.network.VirtualNetwork;
    import com.pulumi.azure.network.VirtualNetworkArgs;
    import com.pulumi.azure.network.Subnet;
    import com.pulumi.azure.network.SubnetArgs;
    import com.pulumi.azure.compute.LinuxVirtualMachineScaleSet;
    import com.pulumi.azure.compute.LinuxVirtualMachineScaleSetArgs;
    import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetAdminSshKeyArgs;
    import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetSourceImageReferenceArgs;
    import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetOsDiskArgs;
    import com.pulumi.azure.compute.inputs.LinuxVirtualMachineScaleSetNetworkInterfaceArgs;
    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) {
            final var firstPublicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+wWK73dCr+jgQOAxNsHAnNNNMEMWOHYEccp6wJm2gotpr9katuF/ZAdou5AaW1C61slRkHRkpRRX9FA9CYBiitZgvCCz+3nWNN7l/Up54Zps/pHWGZLHNJZRYyAB6j5yVLMVHIHriY49d/GZTZVNB8GoJv9Gakwc/fuEZYYl4YDFiGMBP///TzlI4jhiJzjKnEvqPFki5p2ZRJqcbCiF4pJrxUQR/RXqVFQdbRLZgYfJ8xGB878RENq3yQ39d8dVOkq4edbkzwcUmwwwkYVPIoDGsYLaRHnG+To7FvMeyO7xDVQkMKzopTQV8AuKpyvpqu0a9pWOMaiCyDytO7GGN you@me.com";
    
            var example = new ResourceGroup("example", ResourceGroupArgs.builder()        
                .name("example-resources")
                .location("West Europe")
                .build());
    
            var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()        
                .name("example-network")
                .resourceGroupName(example.name())
                .location(example.location())
                .addressSpaces("10.0.0.0/16")
                .build());
    
            var internal = new Subnet("internal", SubnetArgs.builder()        
                .name("internal")
                .resourceGroupName(example.name())
                .virtualNetworkName(exampleVirtualNetwork.name())
                .addressPrefixes("10.0.2.0/24")
                .build());
    
            var exampleLinuxVirtualMachineScaleSet = new LinuxVirtualMachineScaleSet("exampleLinuxVirtualMachineScaleSet", LinuxVirtualMachineScaleSetArgs.builder()        
                .name("example-vmss")
                .resourceGroupName(example.name())
                .location(example.location())
                .sku("Standard_F2")
                .instances(1)
                .adminUsername("adminuser")
                .adminSshKeys(LinuxVirtualMachineScaleSetAdminSshKeyArgs.builder()
                    .username("adminuser")
                    .publicKey(firstPublicKey)
                    .build())
                .sourceImageReference(LinuxVirtualMachineScaleSetSourceImageReferenceArgs.builder()
                    .publisher("Canonical")
                    .offer("0001-com-ubuntu-server-jammy")
                    .sku("22_04-lts")
                    .version("latest")
                    .build())
                .osDisk(LinuxVirtualMachineScaleSetOsDiskArgs.builder()
                    .storageAccountType("Standard_LRS")
                    .caching("ReadWrite")
                    .build())
                .networkInterfaces(LinuxVirtualMachineScaleSetNetworkInterfaceArgs.builder()
                    .name("example")
                    .primary(true)
                    .ipConfigurations(LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs.builder()
                        .name("internal")
                        .primary(true)
                        .subnetId(internal.id())
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      example:
        type: azure:core:ResourceGroup
        properties:
          name: example-resources
          location: West Europe
      exampleVirtualNetwork:
        type: azure:network:VirtualNetwork
        name: example
        properties:
          name: example-network
          resourceGroupName: ${example.name}
          location: ${example.location}
          addressSpaces:
            - 10.0.0.0/16
      internal:
        type: azure:network:Subnet
        properties:
          name: internal
          resourceGroupName: ${example.name}
          virtualNetworkName: ${exampleVirtualNetwork.name}
          addressPrefixes:
            - 10.0.2.0/24
      exampleLinuxVirtualMachineScaleSet:
        type: azure:compute:LinuxVirtualMachineScaleSet
        name: example
        properties:
          name: example-vmss
          resourceGroupName: ${example.name}
          location: ${example.location}
          sku: Standard_F2
          instances: 1
          adminUsername: adminuser
          adminSshKeys:
            - username: adminuser
              publicKey: ${firstPublicKey}
          sourceImageReference:
            publisher: Canonical
            offer: 0001-com-ubuntu-server-jammy
            sku: 22_04-lts
            version: latest
          osDisk:
            storageAccountType: Standard_LRS
            caching: ReadWrite
          networkInterfaces:
            - name: example
              primary: true
              ipConfigurations:
                - name: internal
                  primary: true
                  subnetId: ${internal.id}
    variables:
      firstPublicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+wWK73dCr+jgQOAxNsHAnNNNMEMWOHYEccp6wJm2gotpr9katuF/ZAdou5AaW1C61slRkHRkpRRX9FA9CYBiitZgvCCz+3nWNN7l/Up54Zps/pHWGZLHNJZRYyAB6j5yVLMVHIHriY49d/GZTZVNB8GoJv9Gakwc/fuEZYYl4YDFiGMBP///TzlI4jhiJzjKnEvqPFki5p2ZRJqcbCiF4pJrxUQR/RXqVFQdbRLZgYfJ8xGB878RENq3yQ39d8dVOkq4edbkzwcUmwwwkYVPIoDGsYLaRHnG+To7FvMeyO7xDVQkMKzopTQV8AuKpyvpqu0a9pWOMaiCyDytO7GGN you@me.com
    

    Create LinuxVirtualMachineScaleSet Resource

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

    Constructor syntax

    new LinuxVirtualMachineScaleSet(name: string, args: LinuxVirtualMachineScaleSetArgs, opts?: CustomResourceOptions);
    @overload
    def LinuxVirtualMachineScaleSet(resource_name: str,
                                    args: LinuxVirtualMachineScaleSetArgs,
                                    opts: Optional[ResourceOptions] = None)
    
    @overload
    def LinuxVirtualMachineScaleSet(resource_name: str,
                                    opts: Optional[ResourceOptions] = None,
                                    admin_username: Optional[str] = None,
                                    network_interfaces: Optional[Sequence[LinuxVirtualMachineScaleSetNetworkInterfaceArgs]] = None,
                                    os_disk: Optional[LinuxVirtualMachineScaleSetOsDiskArgs] = None,
                                    resource_group_name: Optional[str] = None,
                                    sku: Optional[str] = None,
                                    host_group_id: Optional[str] = None,
                                    automatic_os_upgrade_policy: Optional[LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs] = None,
                                    location: Optional[str] = None,
                                    automatic_instance_repair: Optional[LinuxVirtualMachineScaleSetAutomaticInstanceRepairArgs] = None,
                                    max_bid_price: Optional[float] = None,
                                    boot_diagnostics: Optional[LinuxVirtualMachineScaleSetBootDiagnosticsArgs] = None,
                                    capacity_reservation_group_id: Optional[str] = None,
                                    computer_name_prefix: Optional[str] = None,
                                    custom_data: Optional[str] = None,
                                    data_disks: Optional[Sequence[LinuxVirtualMachineScaleSetDataDiskArgs]] = None,
                                    disable_password_authentication: Optional[bool] = None,
                                    do_not_run_extensions_on_overprovisioned_machines: Optional[bool] = None,
                                    edge_zone: Optional[str] = None,
                                    encryption_at_host_enabled: Optional[bool] = None,
                                    eviction_policy: Optional[str] = None,
                                    name: Optional[str] = None,
                                    extensions: Optional[Sequence[LinuxVirtualMachineScaleSetExtensionArgs]] = None,
                                    extensions_time_budget: Optional[str] = None,
                                    gallery_application: Optional[Sequence[LinuxVirtualMachineScaleSetGalleryApplicationArgs]] = None,
                                    gallery_applications: Optional[Sequence[LinuxVirtualMachineScaleSetGalleryApplicationArgs]] = None,
                                    health_probe_id: Optional[str] = None,
                                    additional_capabilities: Optional[LinuxVirtualMachineScaleSetAdditionalCapabilitiesArgs] = None,
                                    identity: Optional[LinuxVirtualMachineScaleSetIdentityArgs] = None,
                                    instances: Optional[int] = None,
                                    admin_ssh_keys: Optional[Sequence[LinuxVirtualMachineScaleSetAdminSshKeyArgs]] = None,
                                    admin_password: Optional[str] = None,
                                    extension_operations_enabled: Optional[bool] = None,
                                    overprovision: Optional[bool] = None,
                                    plan: Optional[LinuxVirtualMachineScaleSetPlanArgs] = None,
                                    platform_fault_domain_count: Optional[int] = None,
                                    priority: Optional[str] = None,
                                    provision_vm_agent: Optional[bool] = None,
                                    proximity_placement_group_id: Optional[str] = None,
                                    rolling_upgrade_policy: Optional[LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs] = None,
                                    scale_in: Optional[LinuxVirtualMachineScaleSetScaleInArgs] = None,
                                    scale_in_policy: Optional[str] = None,
                                    secrets: Optional[Sequence[LinuxVirtualMachineScaleSetSecretArgs]] = None,
                                    secure_boot_enabled: Optional[bool] = None,
                                    single_placement_group: Optional[bool] = None,
                                    source_image_id: Optional[str] = None,
                                    source_image_reference: Optional[LinuxVirtualMachineScaleSetSourceImageReferenceArgs] = None,
                                    spot_restore: Optional[LinuxVirtualMachineScaleSetSpotRestoreArgs] = None,
                                    tags: Optional[Mapping[str, str]] = None,
                                    terminate_notification: Optional[LinuxVirtualMachineScaleSetTerminateNotificationArgs] = None,
                                    termination_notification: Optional[LinuxVirtualMachineScaleSetTerminationNotificationArgs] = None,
                                    upgrade_mode: Optional[str] = None,
                                    user_data: Optional[str] = None,
                                    vtpm_enabled: Optional[bool] = None,
                                    zone_balance: Optional[bool] = None,
                                    zones: Optional[Sequence[str]] = None)
    func NewLinuxVirtualMachineScaleSet(ctx *Context, name string, args LinuxVirtualMachineScaleSetArgs, opts ...ResourceOption) (*LinuxVirtualMachineScaleSet, error)
    public LinuxVirtualMachineScaleSet(string name, LinuxVirtualMachineScaleSetArgs args, CustomResourceOptions? opts = null)
    public LinuxVirtualMachineScaleSet(String name, LinuxVirtualMachineScaleSetArgs args)
    public LinuxVirtualMachineScaleSet(String name, LinuxVirtualMachineScaleSetArgs args, CustomResourceOptions options)
    
    type: azure:compute:LinuxVirtualMachineScaleSet
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args LinuxVirtualMachineScaleSetArgs
    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 LinuxVirtualMachineScaleSetArgs
    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 LinuxVirtualMachineScaleSetArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args LinuxVirtualMachineScaleSetArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args LinuxVirtualMachineScaleSetArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

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

    var linuxVirtualMachineScaleSetResource = new Azure.Compute.LinuxVirtualMachineScaleSet("linuxVirtualMachineScaleSetResource", new()
    {
        AdminUsername = "string",
        NetworkInterfaces = new[]
        {
            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceArgs
            {
                IpConfigurations = new[]
                {
                    new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs
                    {
                        Name = "string",
                        ApplicationGatewayBackendAddressPoolIds = new[]
                        {
                            "string",
                        },
                        ApplicationSecurityGroupIds = new[]
                        {
                            "string",
                        },
                        LoadBalancerBackendAddressPoolIds = new[]
                        {
                            "string",
                        },
                        LoadBalancerInboundNatRulesIds = new[]
                        {
                            "string",
                        },
                        Primary = false,
                        PublicIpAddresses = new[]
                        {
                            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressArgs
                            {
                                Name = "string",
                                DomainNameLabel = "string",
                                IdleTimeoutInMinutes = 0,
                                IpTags = new[]
                                {
                                    new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTagArgs
                                    {
                                        Tag = "string",
                                        Type = "string",
                                    },
                                },
                                PublicIpPrefixId = "string",
                                Version = "string",
                            },
                        },
                        SubnetId = "string",
                        Version = "string",
                    },
                },
                Name = "string",
                DnsServers = new[]
                {
                    "string",
                },
                EnableAcceleratedNetworking = false,
                EnableIpForwarding = false,
                NetworkSecurityGroupId = "string",
                Primary = false,
            },
        },
        OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetOsDiskArgs
        {
            Caching = "string",
            StorageAccountType = "string",
            DiffDiskSettings = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetOsDiskDiffDiskSettingsArgs
            {
                Option = "string",
                Placement = "string",
            },
            DiskEncryptionSetId = "string",
            DiskSizeGb = 0,
            SecureVmDiskEncryptionSetId = "string",
            SecurityEncryptionType = "string",
            WriteAcceleratorEnabled = false,
        },
        ResourceGroupName = "string",
        Sku = "string",
        HostGroupId = "string",
        AutomaticOsUpgradePolicy = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs
        {
            DisableAutomaticRollback = false,
            EnableAutomaticOsUpgrade = false,
        },
        Location = "string",
        AutomaticInstanceRepair = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetAutomaticInstanceRepairArgs
        {
            Enabled = false,
            GracePeriod = "string",
        },
        MaxBidPrice = 0,
        BootDiagnostics = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetBootDiagnosticsArgs
        {
            StorageAccountUri = "string",
        },
        CapacityReservationGroupId = "string",
        ComputerNamePrefix = "string",
        CustomData = "string",
        DataDisks = new[]
        {
            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetDataDiskArgs
            {
                Caching = "string",
                DiskSizeGb = 0,
                Lun = 0,
                StorageAccountType = "string",
                CreateOption = "string",
                DiskEncryptionSetId = "string",
                Name = "string",
                UltraSsdDiskIopsReadWrite = 0,
                UltraSsdDiskMbpsReadWrite = 0,
                WriteAcceleratorEnabled = false,
            },
        },
        DisablePasswordAuthentication = false,
        DoNotRunExtensionsOnOverprovisionedMachines = false,
        EdgeZone = "string",
        EncryptionAtHostEnabled = false,
        EvictionPolicy = "string",
        Name = "string",
        Extensions = new[]
        {
            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetExtensionArgs
            {
                Name = "string",
                Publisher = "string",
                Type = "string",
                TypeHandlerVersion = "string",
                AutoUpgradeMinorVersion = false,
                AutomaticUpgradeEnabled = false,
                ForceUpdateTag = "string",
                ProtectedSettings = "string",
                ProtectedSettingsFromKeyVault = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetExtensionProtectedSettingsFromKeyVaultArgs
                {
                    SecretUrl = "string",
                    SourceVaultId = "string",
                },
                ProvisionAfterExtensions = new[]
                {
                    "string",
                },
                Settings = "string",
            },
        },
        ExtensionsTimeBudget = "string",
        GalleryApplication = new[]
        {
            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetGalleryApplicationArgs
            {
                Order = 0,
                Tag = "string",
            },
        },
        HealthProbeId = "string",
        AdditionalCapabilities = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetAdditionalCapabilitiesArgs
        {
            UltraSsdEnabled = false,
        },
        Identity = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetIdentityArgs
        {
            Type = "string",
            IdentityIds = new[]
            {
                "string",
            },
            PrincipalId = "string",
            TenantId = "string",
        },
        Instances = 0,
        AdminSshKeys = new[]
        {
            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetAdminSshKeyArgs
            {
                PublicKey = "string",
                Username = "string",
            },
        },
        AdminPassword = "string",
        ExtensionOperationsEnabled = false,
        Overprovision = false,
        Plan = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetPlanArgs
        {
            Name = "string",
            Product = "string",
            Publisher = "string",
        },
        PlatformFaultDomainCount = 0,
        Priority = "string",
        ProvisionVmAgent = false,
        ProximityPlacementGroupId = "string",
        RollingUpgradePolicy = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs
        {
            MaxBatchInstancePercent = 0,
            MaxUnhealthyInstancePercent = 0,
            MaxUnhealthyUpgradedInstancePercent = 0,
            PauseTimeBetweenBatches = "string",
            CrossZoneUpgradesEnabled = false,
            PrioritizeUnhealthyInstancesEnabled = false,
        },
        ScaleIn = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetScaleInArgs
        {
            ForceDeletionEnabled = false,
            Rule = "string",
        },
        Secrets = new[]
        {
            new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetSecretArgs
            {
                Certificates = new[]
                {
                    new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetSecretCertificateArgs
                    {
                        Url = "string",
                    },
                },
                KeyVaultId = "string",
            },
        },
        SecureBootEnabled = false,
        SinglePlacementGroup = false,
        SourceImageId = "string",
        SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetSourceImageReferenceArgs
        {
            Offer = "string",
            Publisher = "string",
            Sku = "string",
            Version = "string",
        },
        SpotRestore = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetSpotRestoreArgs
        {
            Enabled = false,
            Timeout = "string",
        },
        Tags = 
        {
            { "string", "string" },
        },
        TerminationNotification = new Azure.Compute.Inputs.LinuxVirtualMachineScaleSetTerminationNotificationArgs
        {
            Enabled = false,
            Timeout = "string",
        },
        UpgradeMode = "string",
        UserData = "string",
        VtpmEnabled = false,
        ZoneBalance = false,
        Zones = new[]
        {
            "string",
        },
    });
    
    example, err := compute.NewLinuxVirtualMachineScaleSet(ctx, "linuxVirtualMachineScaleSetResource", &compute.LinuxVirtualMachineScaleSetArgs{
    	AdminUsername: pulumi.String("string"),
    	NetworkInterfaces: compute.LinuxVirtualMachineScaleSetNetworkInterfaceArray{
    		&compute.LinuxVirtualMachineScaleSetNetworkInterfaceArgs{
    			IpConfigurations: compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArray{
    				&compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs{
    					Name: pulumi.String("string"),
    					ApplicationGatewayBackendAddressPoolIds: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					ApplicationSecurityGroupIds: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					LoadBalancerBackendAddressPoolIds: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					LoadBalancerInboundNatRulesIds: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Primary: pulumi.Bool(false),
    					PublicIpAddresses: compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressArray{
    						&compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressArgs{
    							Name:                 pulumi.String("string"),
    							DomainNameLabel:      pulumi.String("string"),
    							IdleTimeoutInMinutes: pulumi.Int(0),
    							IpTags: compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTagArray{
    								&compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTagArgs{
    									Tag:  pulumi.String("string"),
    									Type: pulumi.String("string"),
    								},
    							},
    							PublicIpPrefixId: pulumi.String("string"),
    							Version:          pulumi.String("string"),
    						},
    					},
    					SubnetId: pulumi.String("string"),
    					Version:  pulumi.String("string"),
    				},
    			},
    			Name: pulumi.String("string"),
    			DnsServers: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			EnableAcceleratedNetworking: pulumi.Bool(false),
    			EnableIpForwarding:          pulumi.Bool(false),
    			NetworkSecurityGroupId:      pulumi.String("string"),
    			Primary:                     pulumi.Bool(false),
    		},
    	},
    	OsDisk: &compute.LinuxVirtualMachineScaleSetOsDiskArgs{
    		Caching:            pulumi.String("string"),
    		StorageAccountType: pulumi.String("string"),
    		DiffDiskSettings: &compute.LinuxVirtualMachineScaleSetOsDiskDiffDiskSettingsArgs{
    			Option:    pulumi.String("string"),
    			Placement: pulumi.String("string"),
    		},
    		DiskEncryptionSetId:         pulumi.String("string"),
    		DiskSizeGb:                  pulumi.Int(0),
    		SecureVmDiskEncryptionSetId: pulumi.String("string"),
    		SecurityEncryptionType:      pulumi.String("string"),
    		WriteAcceleratorEnabled:     pulumi.Bool(false),
    	},
    	ResourceGroupName: pulumi.String("string"),
    	Sku:               pulumi.String("string"),
    	HostGroupId:       pulumi.String("string"),
    	AutomaticOsUpgradePolicy: &compute.LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs{
    		DisableAutomaticRollback: pulumi.Bool(false),
    		EnableAutomaticOsUpgrade: pulumi.Bool(false),
    	},
    	Location: pulumi.String("string"),
    	AutomaticInstanceRepair: &compute.LinuxVirtualMachineScaleSetAutomaticInstanceRepairArgs{
    		Enabled:     pulumi.Bool(false),
    		GracePeriod: pulumi.String("string"),
    	},
    	MaxBidPrice: pulumi.Float64(0),
    	BootDiagnostics: &compute.LinuxVirtualMachineScaleSetBootDiagnosticsArgs{
    		StorageAccountUri: pulumi.String("string"),
    	},
    	CapacityReservationGroupId: pulumi.String("string"),
    	ComputerNamePrefix:         pulumi.String("string"),
    	CustomData:                 pulumi.String("string"),
    	DataDisks: compute.LinuxVirtualMachineScaleSetDataDiskArray{
    		&compute.LinuxVirtualMachineScaleSetDataDiskArgs{
    			Caching:                   pulumi.String("string"),
    			DiskSizeGb:                pulumi.Int(0),
    			Lun:                       pulumi.Int(0),
    			StorageAccountType:        pulumi.String("string"),
    			CreateOption:              pulumi.String("string"),
    			DiskEncryptionSetId:       pulumi.String("string"),
    			Name:                      pulumi.String("string"),
    			UltraSsdDiskIopsReadWrite: pulumi.Int(0),
    			UltraSsdDiskMbpsReadWrite: pulumi.Int(0),
    			WriteAcceleratorEnabled:   pulumi.Bool(false),
    		},
    	},
    	DisablePasswordAuthentication:               pulumi.Bool(false),
    	DoNotRunExtensionsOnOverprovisionedMachines: pulumi.Bool(false),
    	EdgeZone:                pulumi.String("string"),
    	EncryptionAtHostEnabled: pulumi.Bool(false),
    	EvictionPolicy:          pulumi.String("string"),
    	Name:                    pulumi.String("string"),
    	Extensions: compute.LinuxVirtualMachineScaleSetExtensionArray{
    		&compute.LinuxVirtualMachineScaleSetExtensionArgs{
    			Name:                    pulumi.String("string"),
    			Publisher:               pulumi.String("string"),
    			Type:                    pulumi.String("string"),
    			TypeHandlerVersion:      pulumi.String("string"),
    			AutoUpgradeMinorVersion: pulumi.Bool(false),
    			AutomaticUpgradeEnabled: pulumi.Bool(false),
    			ForceUpdateTag:          pulumi.String("string"),
    			ProtectedSettings:       pulumi.String("string"),
    			ProtectedSettingsFromKeyVault: &compute.LinuxVirtualMachineScaleSetExtensionProtectedSettingsFromKeyVaultArgs{
    				SecretUrl:     pulumi.String("string"),
    				SourceVaultId: pulumi.String("string"),
    			},
    			ProvisionAfterExtensions: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Settings: pulumi.String("string"),
    		},
    	},
    	ExtensionsTimeBudget: pulumi.String("string"),
    	GalleryApplication: compute.LinuxVirtualMachineScaleSetGalleryApplicationArray{
    		&compute.LinuxVirtualMachineScaleSetGalleryApplicationArgs{
    			Order: pulumi.Int(0),
    			Tag:   pulumi.String("string"),
    		},
    	},
    	HealthProbeId: pulumi.String("string"),
    	AdditionalCapabilities: &compute.LinuxVirtualMachineScaleSetAdditionalCapabilitiesArgs{
    		UltraSsdEnabled: pulumi.Bool(false),
    	},
    	Identity: &compute.LinuxVirtualMachineScaleSetIdentityArgs{
    		Type: pulumi.String("string"),
    		IdentityIds: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		PrincipalId: pulumi.String("string"),
    		TenantId:    pulumi.String("string"),
    	},
    	Instances: pulumi.Int(0),
    	AdminSshKeys: compute.LinuxVirtualMachineScaleSetAdminSshKeyArray{
    		&compute.LinuxVirtualMachineScaleSetAdminSshKeyArgs{
    			PublicKey: pulumi.String("string"),
    			Username:  pulumi.String("string"),
    		},
    	},
    	AdminPassword:              pulumi.String("string"),
    	ExtensionOperationsEnabled: pulumi.Bool(false),
    	Overprovision:              pulumi.Bool(false),
    	Plan: &compute.LinuxVirtualMachineScaleSetPlanArgs{
    		Name:      pulumi.String("string"),
    		Product:   pulumi.String("string"),
    		Publisher: pulumi.String("string"),
    	},
    	PlatformFaultDomainCount:  pulumi.Int(0),
    	Priority:                  pulumi.String("string"),
    	ProvisionVmAgent:          pulumi.Bool(false),
    	ProximityPlacementGroupId: pulumi.String("string"),
    	RollingUpgradePolicy: &compute.LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs{
    		MaxBatchInstancePercent:             pulumi.Int(0),
    		MaxUnhealthyInstancePercent:         pulumi.Int(0),
    		MaxUnhealthyUpgradedInstancePercent: pulumi.Int(0),
    		PauseTimeBetweenBatches:             pulumi.String("string"),
    		CrossZoneUpgradesEnabled:            pulumi.Bool(false),
    		PrioritizeUnhealthyInstancesEnabled: pulumi.Bool(false),
    	},
    	ScaleIn: &compute.LinuxVirtualMachineScaleSetScaleInArgs{
    		ForceDeletionEnabled: pulumi.Bool(false),
    		Rule:                 pulumi.String("string"),
    	},
    	Secrets: compute.LinuxVirtualMachineScaleSetSecretArray{
    		&compute.LinuxVirtualMachineScaleSetSecretArgs{
    			Certificates: compute.LinuxVirtualMachineScaleSetSecretCertificateArray{
    				&compute.LinuxVirtualMachineScaleSetSecretCertificateArgs{
    					Url: pulumi.String("string"),
    				},
    			},
    			KeyVaultId: pulumi.String("string"),
    		},
    	},
    	SecureBootEnabled:    pulumi.Bool(false),
    	SinglePlacementGroup: pulumi.Bool(false),
    	SourceImageId:        pulumi.String("string"),
    	SourceImageReference: &compute.LinuxVirtualMachineScaleSetSourceImageReferenceArgs{
    		Offer:     pulumi.String("string"),
    		Publisher: pulumi.String("string"),
    		Sku:       pulumi.String("string"),
    		Version:   pulumi.String("string"),
    	},
    	SpotRestore: &compute.LinuxVirtualMachineScaleSetSpotRestoreArgs{
    		Enabled: pulumi.Bool(false),
    		Timeout: pulumi.String("string"),
    	},
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	TerminationNotification: &compute.LinuxVirtualMachineScaleSetTerminationNotificationArgs{
    		Enabled: pulumi.Bool(false),
    		Timeout: pulumi.String("string"),
    	},
    	UpgradeMode: pulumi.String("string"),
    	UserData:    pulumi.String("string"),
    	VtpmEnabled: pulumi.Bool(false),
    	ZoneBalance: pulumi.Bool(false),
    	Zones: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    })
    
    var linuxVirtualMachineScaleSetResource = new LinuxVirtualMachineScaleSet("linuxVirtualMachineScaleSetResource", LinuxVirtualMachineScaleSetArgs.builder()        
        .adminUsername("string")
        .networkInterfaces(LinuxVirtualMachineScaleSetNetworkInterfaceArgs.builder()
            .ipConfigurations(LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs.builder()
                .name("string")
                .applicationGatewayBackendAddressPoolIds("string")
                .applicationSecurityGroupIds("string")
                .loadBalancerBackendAddressPoolIds("string")
                .loadBalancerInboundNatRulesIds("string")
                .primary(false)
                .publicIpAddresses(LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressArgs.builder()
                    .name("string")
                    .domainNameLabel("string")
                    .idleTimeoutInMinutes(0)
                    .ipTags(LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTagArgs.builder()
                        .tag("string")
                        .type("string")
                        .build())
                    .publicIpPrefixId("string")
                    .version("string")
                    .build())
                .subnetId("string")
                .version("string")
                .build())
            .name("string")
            .dnsServers("string")
            .enableAcceleratedNetworking(false)
            .enableIpForwarding(false)
            .networkSecurityGroupId("string")
            .primary(false)
            .build())
        .osDisk(LinuxVirtualMachineScaleSetOsDiskArgs.builder()
            .caching("string")
            .storageAccountType("string")
            .diffDiskSettings(LinuxVirtualMachineScaleSetOsDiskDiffDiskSettingsArgs.builder()
                .option("string")
                .placement("string")
                .build())
            .diskEncryptionSetId("string")
            .diskSizeGb(0)
            .secureVmDiskEncryptionSetId("string")
            .securityEncryptionType("string")
            .writeAcceleratorEnabled(false)
            .build())
        .resourceGroupName("string")
        .sku("string")
        .hostGroupId("string")
        .automaticOsUpgradePolicy(LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs.builder()
            .disableAutomaticRollback(false)
            .enableAutomaticOsUpgrade(false)
            .build())
        .location("string")
        .automaticInstanceRepair(LinuxVirtualMachineScaleSetAutomaticInstanceRepairArgs.builder()
            .enabled(false)
            .gracePeriod("string")
            .build())
        .maxBidPrice(0)
        .bootDiagnostics(LinuxVirtualMachineScaleSetBootDiagnosticsArgs.builder()
            .storageAccountUri("string")
            .build())
        .capacityReservationGroupId("string")
        .computerNamePrefix("string")
        .customData("string")
        .dataDisks(LinuxVirtualMachineScaleSetDataDiskArgs.builder()
            .caching("string")
            .diskSizeGb(0)
            .lun(0)
            .storageAccountType("string")
            .createOption("string")
            .diskEncryptionSetId("string")
            .name("string")
            .ultraSsdDiskIopsReadWrite(0)
            .ultraSsdDiskMbpsReadWrite(0)
            .writeAcceleratorEnabled(false)
            .build())
        .disablePasswordAuthentication(false)
        .doNotRunExtensionsOnOverprovisionedMachines(false)
        .edgeZone("string")
        .encryptionAtHostEnabled(false)
        .evictionPolicy("string")
        .name("string")
        .extensions(LinuxVirtualMachineScaleSetExtensionArgs.builder()
            .name("string")
            .publisher("string")
            .type("string")
            .typeHandlerVersion("string")
            .autoUpgradeMinorVersion(false)
            .automaticUpgradeEnabled(false)
            .forceUpdateTag("string")
            .protectedSettings("string")
            .protectedSettingsFromKeyVault(LinuxVirtualMachineScaleSetExtensionProtectedSettingsFromKeyVaultArgs.builder()
                .secretUrl("string")
                .sourceVaultId("string")
                .build())
            .provisionAfterExtensions("string")
            .settings("string")
            .build())
        .extensionsTimeBudget("string")
        .galleryApplication(LinuxVirtualMachineScaleSetGalleryApplicationArgs.builder()
            .order(0)
            .tag("string")
            .build())
        .healthProbeId("string")
        .additionalCapabilities(LinuxVirtualMachineScaleSetAdditionalCapabilitiesArgs.builder()
            .ultraSsdEnabled(false)
            .build())
        .identity(LinuxVirtualMachineScaleSetIdentityArgs.builder()
            .type("string")
            .identityIds("string")
            .principalId("string")
            .tenantId("string")
            .build())
        .instances(0)
        .adminSshKeys(LinuxVirtualMachineScaleSetAdminSshKeyArgs.builder()
            .publicKey("string")
            .username("string")
            .build())
        .adminPassword("string")
        .extensionOperationsEnabled(false)
        .overprovision(false)
        .plan(LinuxVirtualMachineScaleSetPlanArgs.builder()
            .name("string")
            .product("string")
            .publisher("string")
            .build())
        .platformFaultDomainCount(0)
        .priority("string")
        .provisionVmAgent(false)
        .proximityPlacementGroupId("string")
        .rollingUpgradePolicy(LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs.builder()
            .maxBatchInstancePercent(0)
            .maxUnhealthyInstancePercent(0)
            .maxUnhealthyUpgradedInstancePercent(0)
            .pauseTimeBetweenBatches("string")
            .crossZoneUpgradesEnabled(false)
            .prioritizeUnhealthyInstancesEnabled(false)
            .build())
        .scaleIn(LinuxVirtualMachineScaleSetScaleInArgs.builder()
            .forceDeletionEnabled(false)
            .rule("string")
            .build())
        .secrets(LinuxVirtualMachineScaleSetSecretArgs.builder()
            .certificates(LinuxVirtualMachineScaleSetSecretCertificateArgs.builder()
                .url("string")
                .build())
            .keyVaultId("string")
            .build())
        .secureBootEnabled(false)
        .singlePlacementGroup(false)
        .sourceImageId("string")
        .sourceImageReference(LinuxVirtualMachineScaleSetSourceImageReferenceArgs.builder()
            .offer("string")
            .publisher("string")
            .sku("string")
            .version("string")
            .build())
        .spotRestore(LinuxVirtualMachineScaleSetSpotRestoreArgs.builder()
            .enabled(false)
            .timeout("string")
            .build())
        .tags(Map.of("string", "string"))
        .terminationNotification(LinuxVirtualMachineScaleSetTerminationNotificationArgs.builder()
            .enabled(false)
            .timeout("string")
            .build())
        .upgradeMode("string")
        .userData("string")
        .vtpmEnabled(false)
        .zoneBalance(false)
        .zones("string")
        .build());
    
    linux_virtual_machine_scale_set_resource = azure.compute.LinuxVirtualMachineScaleSet("linuxVirtualMachineScaleSetResource",
        admin_username="string",
        network_interfaces=[azure.compute.LinuxVirtualMachineScaleSetNetworkInterfaceArgs(
            ip_configurations=[azure.compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs(
                name="string",
                application_gateway_backend_address_pool_ids=["string"],
                application_security_group_ids=["string"],
                load_balancer_backend_address_pool_ids=["string"],
                load_balancer_inbound_nat_rules_ids=["string"],
                primary=False,
                public_ip_addresses=[azure.compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressArgs(
                    name="string",
                    domain_name_label="string",
                    idle_timeout_in_minutes=0,
                    ip_tags=[azure.compute.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTagArgs(
                        tag="string",
                        type="string",
                    )],
                    public_ip_prefix_id="string",
                    version="string",
                )],
                subnet_id="string",
                version="string",
            )],
            name="string",
            dns_servers=["string"],
            enable_accelerated_networking=False,
            enable_ip_forwarding=False,
            network_security_group_id="string",
            primary=False,
        )],
        os_disk=azure.compute.LinuxVirtualMachineScaleSetOsDiskArgs(
            caching="string",
            storage_account_type="string",
            diff_disk_settings=azure.compute.LinuxVirtualMachineScaleSetOsDiskDiffDiskSettingsArgs(
                option="string",
                placement="string",
            ),
            disk_encryption_set_id="string",
            disk_size_gb=0,
            secure_vm_disk_encryption_set_id="string",
            security_encryption_type="string",
            write_accelerator_enabled=False,
        ),
        resource_group_name="string",
        sku="string",
        host_group_id="string",
        automatic_os_upgrade_policy=azure.compute.LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs(
            disable_automatic_rollback=False,
            enable_automatic_os_upgrade=False,
        ),
        location="string",
        automatic_instance_repair=azure.compute.LinuxVirtualMachineScaleSetAutomaticInstanceRepairArgs(
            enabled=False,
            grace_period="string",
        ),
        max_bid_price=0,
        boot_diagnostics=azure.compute.LinuxVirtualMachineScaleSetBootDiagnosticsArgs(
            storage_account_uri="string",
        ),
        capacity_reservation_group_id="string",
        computer_name_prefix="string",
        custom_data="string",
        data_disks=[azure.compute.LinuxVirtualMachineScaleSetDataDiskArgs(
            caching="string",
            disk_size_gb=0,
            lun=0,
            storage_account_type="string",
            create_option="string",
            disk_encryption_set_id="string",
            name="string",
            ultra_ssd_disk_iops_read_write=0,
            ultra_ssd_disk_mbps_read_write=0,
            write_accelerator_enabled=False,
        )],
        disable_password_authentication=False,
        do_not_run_extensions_on_overprovisioned_machines=False,
        edge_zone="string",
        encryption_at_host_enabled=False,
        eviction_policy="string",
        name="string",
        extensions=[azure.compute.LinuxVirtualMachineScaleSetExtensionArgs(
            name="string",
            publisher="string",
            type="string",
            type_handler_version="string",
            auto_upgrade_minor_version=False,
            automatic_upgrade_enabled=False,
            force_update_tag="string",
            protected_settings="string",
            protected_settings_from_key_vault=azure.compute.LinuxVirtualMachineScaleSetExtensionProtectedSettingsFromKeyVaultArgs(
                secret_url="string",
                source_vault_id="string",
            ),
            provision_after_extensions=["string"],
            settings="string",
        )],
        extensions_time_budget="string",
        gallery_application=[azure.compute.LinuxVirtualMachineScaleSetGalleryApplicationArgs(
            order=0,
            tag="string",
        )],
        health_probe_id="string",
        additional_capabilities=azure.compute.LinuxVirtualMachineScaleSetAdditionalCapabilitiesArgs(
            ultra_ssd_enabled=False,
        ),
        identity=azure.compute.LinuxVirtualMachineScaleSetIdentityArgs(
            type="string",
            identity_ids=["string"],
            principal_id="string",
            tenant_id="string",
        ),
        instances=0,
        admin_ssh_keys=[azure.compute.LinuxVirtualMachineScaleSetAdminSshKeyArgs(
            public_key="string",
            username="string",
        )],
        admin_password="string",
        extension_operations_enabled=False,
        overprovision=False,
        plan=azure.compute.LinuxVirtualMachineScaleSetPlanArgs(
            name="string",
            product="string",
            publisher="string",
        ),
        platform_fault_domain_count=0,
        priority="string",
        provision_vm_agent=False,
        proximity_placement_group_id="string",
        rolling_upgrade_policy=azure.compute.LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs(
            max_batch_instance_percent=0,
            max_unhealthy_instance_percent=0,
            max_unhealthy_upgraded_instance_percent=0,
            pause_time_between_batches="string",
            cross_zone_upgrades_enabled=False,
            prioritize_unhealthy_instances_enabled=False,
        ),
        scale_in=azure.compute.LinuxVirtualMachineScaleSetScaleInArgs(
            force_deletion_enabled=False,
            rule="string",
        ),
        secrets=[azure.compute.LinuxVirtualMachineScaleSetSecretArgs(
            certificates=[azure.compute.LinuxVirtualMachineScaleSetSecretCertificateArgs(
                url="string",
            )],
            key_vault_id="string",
        )],
        secure_boot_enabled=False,
        single_placement_group=False,
        source_image_id="string",
        source_image_reference=azure.compute.LinuxVirtualMachineScaleSetSourceImageReferenceArgs(
            offer="string",
            publisher="string",
            sku="string",
            version="string",
        ),
        spot_restore=azure.compute.LinuxVirtualMachineScaleSetSpotRestoreArgs(
            enabled=False,
            timeout="string",
        ),
        tags={
            "string": "string",
        },
        termination_notification=azure.compute.LinuxVirtualMachineScaleSetTerminationNotificationArgs(
            enabled=False,
            timeout="string",
        ),
        upgrade_mode="string",
        user_data="string",
        vtpm_enabled=False,
        zone_balance=False,
        zones=["string"])
    
    const linuxVirtualMachineScaleSetResource = new azure.compute.LinuxVirtualMachineScaleSet("linuxVirtualMachineScaleSetResource", {
        adminUsername: "string",
        networkInterfaces: [{
            ipConfigurations: [{
                name: "string",
                applicationGatewayBackendAddressPoolIds: ["string"],
                applicationSecurityGroupIds: ["string"],
                loadBalancerBackendAddressPoolIds: ["string"],
                loadBalancerInboundNatRulesIds: ["string"],
                primary: false,
                publicIpAddresses: [{
                    name: "string",
                    domainNameLabel: "string",
                    idleTimeoutInMinutes: 0,
                    ipTags: [{
                        tag: "string",
                        type: "string",
                    }],
                    publicIpPrefixId: "string",
                    version: "string",
                }],
                subnetId: "string",
                version: "string",
            }],
            name: "string",
            dnsServers: ["string"],
            enableAcceleratedNetworking: false,
            enableIpForwarding: false,
            networkSecurityGroupId: "string",
            primary: false,
        }],
        osDisk: {
            caching: "string",
            storageAccountType: "string",
            diffDiskSettings: {
                option: "string",
                placement: "string",
            },
            diskEncryptionSetId: "string",
            diskSizeGb: 0,
            secureVmDiskEncryptionSetId: "string",
            securityEncryptionType: "string",
            writeAcceleratorEnabled: false,
        },
        resourceGroupName: "string",
        sku: "string",
        hostGroupId: "string",
        automaticOsUpgradePolicy: {
            disableAutomaticRollback: false,
            enableAutomaticOsUpgrade: false,
        },
        location: "string",
        automaticInstanceRepair: {
            enabled: false,
            gracePeriod: "string",
        },
        maxBidPrice: 0,
        bootDiagnostics: {
            storageAccountUri: "string",
        },
        capacityReservationGroupId: "string",
        computerNamePrefix: "string",
        customData: "string",
        dataDisks: [{
            caching: "string",
            diskSizeGb: 0,
            lun: 0,
            storageAccountType: "string",
            createOption: "string",
            diskEncryptionSetId: "string",
            name: "string",
            ultraSsdDiskIopsReadWrite: 0,
            ultraSsdDiskMbpsReadWrite: 0,
            writeAcceleratorEnabled: false,
        }],
        disablePasswordAuthentication: false,
        doNotRunExtensionsOnOverprovisionedMachines: false,
        edgeZone: "string",
        encryptionAtHostEnabled: false,
        evictionPolicy: "string",
        name: "string",
        extensions: [{
            name: "string",
            publisher: "string",
            type: "string",
            typeHandlerVersion: "string",
            autoUpgradeMinorVersion: false,
            automaticUpgradeEnabled: false,
            forceUpdateTag: "string",
            protectedSettings: "string",
            protectedSettingsFromKeyVault: {
                secretUrl: "string",
                sourceVaultId: "string",
            },
            provisionAfterExtensions: ["string"],
            settings: "string",
        }],
        extensionsTimeBudget: "string",
        galleryApplication: [{
            order: 0,
            tag: "string",
        }],
        healthProbeId: "string",
        additionalCapabilities: {
            ultraSsdEnabled: false,
        },
        identity: {
            type: "string",
            identityIds: ["string"],
            principalId: "string",
            tenantId: "string",
        },
        instances: 0,
        adminSshKeys: [{
            publicKey: "string",
            username: "string",
        }],
        adminPassword: "string",
        extensionOperationsEnabled: false,
        overprovision: false,
        plan: {
            name: "string",
            product: "string",
            publisher: "string",
        },
        platformFaultDomainCount: 0,
        priority: "string",
        provisionVmAgent: false,
        proximityPlacementGroupId: "string",
        rollingUpgradePolicy: {
            maxBatchInstancePercent: 0,
            maxUnhealthyInstancePercent: 0,
            maxUnhealthyUpgradedInstancePercent: 0,
            pauseTimeBetweenBatches: "string",
            crossZoneUpgradesEnabled: false,
            prioritizeUnhealthyInstancesEnabled: false,
        },
        scaleIn: {
            forceDeletionEnabled: false,
            rule: "string",
        },
        secrets: [{
            certificates: [{
                url: "string",
            }],
            keyVaultId: "string",
        }],
        secureBootEnabled: false,
        singlePlacementGroup: false,
        sourceImageId: "string",
        sourceImageReference: {
            offer: "string",
            publisher: "string",
            sku: "string",
            version: "string",
        },
        spotRestore: {
            enabled: false,
            timeout: "string",
        },
        tags: {
            string: "string",
        },
        terminationNotification: {
            enabled: false,
            timeout: "string",
        },
        upgradeMode: "string",
        userData: "string",
        vtpmEnabled: false,
        zoneBalance: false,
        zones: ["string"],
    });
    
    type: azure:compute:LinuxVirtualMachineScaleSet
    properties:
        additionalCapabilities:
            ultraSsdEnabled: false
        adminPassword: string
        adminSshKeys:
            - publicKey: string
              username: string
        adminUsername: string
        automaticInstanceRepair:
            enabled: false
            gracePeriod: string
        automaticOsUpgradePolicy:
            disableAutomaticRollback: false
            enableAutomaticOsUpgrade: false
        bootDiagnostics:
            storageAccountUri: string
        capacityReservationGroupId: string
        computerNamePrefix: string
        customData: string
        dataDisks:
            - caching: string
              createOption: string
              diskEncryptionSetId: string
              diskSizeGb: 0
              lun: 0
              name: string
              storageAccountType: string
              ultraSsdDiskIopsReadWrite: 0
              ultraSsdDiskMbpsReadWrite: 0
              writeAcceleratorEnabled: false
        disablePasswordAuthentication: false
        doNotRunExtensionsOnOverprovisionedMachines: false
        edgeZone: string
        encryptionAtHostEnabled: false
        evictionPolicy: string
        extensionOperationsEnabled: false
        extensions:
            - autoUpgradeMinorVersion: false
              automaticUpgradeEnabled: false
              forceUpdateTag: string
              name: string
              protectedSettings: string
              protectedSettingsFromKeyVault:
                secretUrl: string
                sourceVaultId: string
              provisionAfterExtensions:
                - string
              publisher: string
              settings: string
              type: string
              typeHandlerVersion: string
        extensionsTimeBudget: string
        galleryApplication:
            - order: 0
              tag: string
        healthProbeId: string
        hostGroupId: string
        identity:
            identityIds:
                - string
            principalId: string
            tenantId: string
            type: string
        instances: 0
        location: string
        maxBidPrice: 0
        name: string
        networkInterfaces:
            - dnsServers:
                - string
              enableAcceleratedNetworking: false
              enableIpForwarding: false
              ipConfigurations:
                - applicationGatewayBackendAddressPoolIds:
                    - string
                  applicationSecurityGroupIds:
                    - string
                  loadBalancerBackendAddressPoolIds:
                    - string
                  loadBalancerInboundNatRulesIds:
                    - string
                  name: string
                  primary: false
                  publicIpAddresses:
                    - domainNameLabel: string
                      idleTimeoutInMinutes: 0
                      ipTags:
                        - tag: string
                          type: string
                      name: string
                      publicIpPrefixId: string
                      version: string
                  subnetId: string
                  version: string
              name: string
              networkSecurityGroupId: string
              primary: false
        osDisk:
            caching: string
            diffDiskSettings:
                option: string
                placement: string
            diskEncryptionSetId: string
            diskSizeGb: 0
            secureVmDiskEncryptionSetId: string
            securityEncryptionType: string
            storageAccountType: string
            writeAcceleratorEnabled: false
        overprovision: false
        plan:
            name: string
            product: string
            publisher: string
        platformFaultDomainCount: 0
        priority: string
        provisionVmAgent: false
        proximityPlacementGroupId: string
        resourceGroupName: string
        rollingUpgradePolicy:
            crossZoneUpgradesEnabled: false
            maxBatchInstancePercent: 0
            maxUnhealthyInstancePercent: 0
            maxUnhealthyUpgradedInstancePercent: 0
            pauseTimeBetweenBatches: string
            prioritizeUnhealthyInstancesEnabled: false
        scaleIn:
            forceDeletionEnabled: false
            rule: string
        secrets:
            - certificates:
                - url: string
              keyVaultId: string
        secureBootEnabled: false
        singlePlacementGroup: false
        sku: string
        sourceImageId: string
        sourceImageReference:
            offer: string
            publisher: string
            sku: string
            version: string
        spotRestore:
            enabled: false
            timeout: string
        tags:
            string: string
        terminationNotification:
            enabled: false
            timeout: string
        upgradeMode: string
        userData: string
        vtpmEnabled: false
        zoneBalance: false
        zones:
            - string
    

    LinuxVirtualMachineScaleSet 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 LinuxVirtualMachineScaleSet resource accepts the following input properties:

    AdminUsername string
    The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.
    NetworkInterfaces List<LinuxVirtualMachineScaleSetNetworkInterface>
    One or more network_interface blocks as defined below.
    OsDisk LinuxVirtualMachineScaleSetOsDisk
    An os_disk block as defined below.
    ResourceGroupName string
    The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.
    Sku string
    The Virtual Machine SKU for the Scale Set, such as Standard_F2.
    AdditionalCapabilities LinuxVirtualMachineScaleSetAdditionalCapabilities
    An additional_capabilities block as defined below.
    AdminPassword string

    The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

    NOTE: When an admin_password is specified disable_password_authentication must be set to false.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    AdminSshKeys List<LinuxVirtualMachineScaleSetAdminSshKey>

    One or more admin_ssh_key blocks as defined below.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    AutomaticInstanceRepair LinuxVirtualMachineScaleSetAutomaticInstanceRepair

    An automatic_instance_repair block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid health_probe_id or an Application Health Extension.

    NOTE: For more information about Automatic Instance Repair, please refer to this doc.

    AutomaticOsUpgradePolicy LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy
    An automatic_os_upgrade_policy block as defined below. This can only be specified when upgrade_mode is set to either Automatic or Rolling.
    BootDiagnostics LinuxVirtualMachineScaleSetBootDiagnostics
    A boot_diagnostics block as defined below.
    CapacityReservationGroupId string

    Specifies the ID of the Capacity Reservation Group which the Virtual Machine Scale Set should be allocated to. Changing this forces a new resource to be created.

    NOTE: capacity_reservation_group_id cannot be used with proximity_placement_group_id

    NOTE: single_placement_group must be set to false when capacity_reservation_group_id is specified.

    ComputerNamePrefix string
    The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name_prefix, then you must specify computer_name_prefix. Changing this forces a new resource to be created.
    CustomData string

    The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

    NOTE: When Custom Data has been configured, it's not possible to remove it without tainting the Virtual Machine Scale Set, due to a limitation of the Azure API.

    DataDisks List<LinuxVirtualMachineScaleSetDataDisk>
    One or more data_disk blocks as defined below.
    DisablePasswordAuthentication bool

    Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

    In general we'd recommend using SSH Keys for authentication rather than Passwords - but there's tradeoff's to each - please see this thread for more information.

    NOTE: When a admin_password is specified disable_password_authentication must be set to false.

    DoNotRunExtensionsOnOverprovisionedMachines bool
    Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.
    EdgeZone string
    Specifies the Edge Zone within the Azure Region where this Linux Virtual Machine Scale Set should exist. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    EncryptionAtHostEnabled bool
    Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?
    EvictionPolicy string

    Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

    NOTE: This can only be configured when priority is set to Spot.

    ExtensionOperationsEnabled bool

    Should extension operations be allowed on the Virtual Machine Scale Set? Possible values are true or false. Defaults to true. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    NOTE: extension_operations_enabled may only be set to false if there are no extensions defined in the extension field.

    Extensions List<LinuxVirtualMachineScaleSetExtension>
    One or more extension blocks as defined below
    ExtensionsTimeBudget string
    Specifies the duration allocated 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. Defaults to PT1H30M.
    GalleryApplication List<LinuxVirtualMachineScaleSetGalleryApplication>
    One or more gallery_application blocks as defined below.
    GalleryApplications List<LinuxVirtualMachineScaleSetGalleryApplication>

    Deprecated: gallery_applications has been renamed to gallery_application and will be deprecated in 4.0

    HealthProbeId string
    The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.
    HostGroupId string
    Specifies the ID of the dedicated host group that the virtual machine scale set resides in. Changing this forces a new resource to be created.
    Identity LinuxVirtualMachineScaleSetIdentity
    An identity block as defined below.
    Instances int

    The number of Virtual Machines in the Scale Set. Defaults to 0.

    NOTE: If you're using AutoScaling, you may wish to use Ignore Changes functionality to ignore changes to this field.

    Location string
    The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.
    MaxBidPrice double

    The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the eviction_policy. Defaults to -1, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.

    NOTE: This can only be configured when priority is set to Spot.

    Name string
    The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    Overprovision bool
    Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to true.
    Plan LinuxVirtualMachineScaleSetPlan

    A plan block as defined below. Changing this forces a new resource to be created.

    NOTE: When using an image from Azure Marketplace a plan must be specified.

    PlatformFaultDomainCount int
    Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    Priority string

    The Priority of this Virtual Machine Scale Set. Possible values are Regular and Spot. Defaults to Regular. Changing this value forces a new resource.

    NOTE: When priority is set to Spot an eviction_policy must be specified.

    ProvisionVmAgent bool
    Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to true. Changing this value forces a new resource to be created.
    ProximityPlacementGroupId string
    The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.
    RollingUpgradePolicy LinuxVirtualMachineScaleSetRollingUpgradePolicy
    A rolling_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling. Changing this forces a new resource to be created.
    ScaleIn LinuxVirtualMachineScaleSetScaleIn
    A scale_in block as defined below.
    ScaleInPolicy string

    Deprecated: scale_in_policy will be removed in favour of the scale_in code block in version 4.0 of the AzureRM Provider.

    Secrets List<LinuxVirtualMachineScaleSetSecret>
    One or more secret blocks as defined below.
    SecureBootEnabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Changing this forces a new resource to be created.
    SinglePlacementGroup bool
    Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to true.
    SourceImageId string

    The ID of an Image which each Virtual Machine in this Scale Set should be based on. Possible Image ID types include Image ID, Shared Image ID, Shared Image Version ID, Community Gallery Image ID, Community Gallery Image Version ID, Shared Gallery Image ID and Shared Gallery Image Version ID.

    NOTE: One of either source_image_id or source_image_reference must be set.

    SourceImageReference LinuxVirtualMachineScaleSetSourceImageReference

    A source_image_reference block as defined below.

    NOTE: One of either source_image_id or source_image_reference must be set.

    SpotRestore LinuxVirtualMachineScaleSetSpotRestore
    A spot_restore block as defined below.
    Tags Dictionary<string, string>
    A mapping of tags which should be assigned to this Virtual Machine Scale Set.
    TerminateNotification LinuxVirtualMachineScaleSetTerminateNotification

    A terminate_notification block as defined below.

    Note: This property has been deprecated in favour of the termination_notification property and will be removed in version 4.0 of the provider.

    Deprecated: terminate_notification has been renamed to termination_notification and will be removed in 4.0.

    TerminationNotification LinuxVirtualMachineScaleSetTerminationNotification
    A termination_notification block as defined below.
    UpgradeMode string
    UserData string
    The Base64-Encoded User Data which should be used for this Virtual Machine Scale Set.
    VtpmEnabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Changing this forces a new resource to be created.
    ZoneBalance bool

    Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to false. Changing this forces a new resource to be created.

    NOTE: This can only be set to true when one or more zones are configured.

    Zones List<string>
    Specifies a list of Availability Zones in which this Linux Virtual Machine Scale Set should be located. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    AdminUsername string
    The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.
    NetworkInterfaces []LinuxVirtualMachineScaleSetNetworkInterfaceArgs
    One or more network_interface blocks as defined below.
    OsDisk LinuxVirtualMachineScaleSetOsDiskArgs
    An os_disk block as defined below.
    ResourceGroupName string
    The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.
    Sku string
    The Virtual Machine SKU for the Scale Set, such as Standard_F2.
    AdditionalCapabilities LinuxVirtualMachineScaleSetAdditionalCapabilitiesArgs
    An additional_capabilities block as defined below.
    AdminPassword string

    The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

    NOTE: When an admin_password is specified disable_password_authentication must be set to false.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    AdminSshKeys []LinuxVirtualMachineScaleSetAdminSshKeyArgs

    One or more admin_ssh_key blocks as defined below.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    AutomaticInstanceRepair LinuxVirtualMachineScaleSetAutomaticInstanceRepairArgs

    An automatic_instance_repair block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid health_probe_id or an Application Health Extension.

    NOTE: For more information about Automatic Instance Repair, please refer to this doc.

    AutomaticOsUpgradePolicy LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs
    An automatic_os_upgrade_policy block as defined below. This can only be specified when upgrade_mode is set to either Automatic or Rolling.
    BootDiagnostics LinuxVirtualMachineScaleSetBootDiagnosticsArgs
    A boot_diagnostics block as defined below.
    CapacityReservationGroupId string

    Specifies the ID of the Capacity Reservation Group which the Virtual Machine Scale Set should be allocated to. Changing this forces a new resource to be created.

    NOTE: capacity_reservation_group_id cannot be used with proximity_placement_group_id

    NOTE: single_placement_group must be set to false when capacity_reservation_group_id is specified.

    ComputerNamePrefix string
    The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name_prefix, then you must specify computer_name_prefix. Changing this forces a new resource to be created.
    CustomData string

    The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

    NOTE: When Custom Data has been configured, it's not possible to remove it without tainting the Virtual Machine Scale Set, due to a limitation of the Azure API.

    DataDisks []LinuxVirtualMachineScaleSetDataDiskArgs
    One or more data_disk blocks as defined below.
    DisablePasswordAuthentication bool

    Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

    In general we'd recommend using SSH Keys for authentication rather than Passwords - but there's tradeoff's to each - please see this thread for more information.

    NOTE: When a admin_password is specified disable_password_authentication must be set to false.

    DoNotRunExtensionsOnOverprovisionedMachines bool
    Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.
    EdgeZone string
    Specifies the Edge Zone within the Azure Region where this Linux Virtual Machine Scale Set should exist. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    EncryptionAtHostEnabled bool
    Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?
    EvictionPolicy string

    Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

    NOTE: This can only be configured when priority is set to Spot.

    ExtensionOperationsEnabled bool

    Should extension operations be allowed on the Virtual Machine Scale Set? Possible values are true or false. Defaults to true. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    NOTE: extension_operations_enabled may only be set to false if there are no extensions defined in the extension field.

    Extensions []LinuxVirtualMachineScaleSetExtensionArgs
    One or more extension blocks as defined below
    ExtensionsTimeBudget string
    Specifies the duration allocated 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. Defaults to PT1H30M.
    GalleryApplication []LinuxVirtualMachineScaleSetGalleryApplicationArgs
    One or more gallery_application blocks as defined below.
    GalleryApplications []LinuxVirtualMachineScaleSetGalleryApplicationArgs

    Deprecated: gallery_applications has been renamed to gallery_application and will be deprecated in 4.0

    HealthProbeId string
    The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.
    HostGroupId string
    Specifies the ID of the dedicated host group that the virtual machine scale set resides in. Changing this forces a new resource to be created.
    Identity LinuxVirtualMachineScaleSetIdentityArgs
    An identity block as defined below.
    Instances int

    The number of Virtual Machines in the Scale Set. Defaults to 0.

    NOTE: If you're using AutoScaling, you may wish to use Ignore Changes functionality to ignore changes to this field.

    Location string
    The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.
    MaxBidPrice float64

    The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the eviction_policy. Defaults to -1, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.

    NOTE: This can only be configured when priority is set to Spot.

    Name string
    The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    Overprovision bool
    Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to true.
    Plan LinuxVirtualMachineScaleSetPlanArgs

    A plan block as defined below. Changing this forces a new resource to be created.

    NOTE: When using an image from Azure Marketplace a plan must be specified.

    PlatformFaultDomainCount int
    Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    Priority string

    The Priority of this Virtual Machine Scale Set. Possible values are Regular and Spot. Defaults to Regular. Changing this value forces a new resource.

    NOTE: When priority is set to Spot an eviction_policy must be specified.

    ProvisionVmAgent bool
    Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to true. Changing this value forces a new resource to be created.
    ProximityPlacementGroupId string
    The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.
    RollingUpgradePolicy LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs
    A rolling_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling. Changing this forces a new resource to be created.
    ScaleIn LinuxVirtualMachineScaleSetScaleInArgs
    A scale_in block as defined below.
    ScaleInPolicy string

    Deprecated: scale_in_policy will be removed in favour of the scale_in code block in version 4.0 of the AzureRM Provider.

    Secrets []LinuxVirtualMachineScaleSetSecretArgs
    One or more secret blocks as defined below.
    SecureBootEnabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Changing this forces a new resource to be created.
    SinglePlacementGroup bool
    Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to true.
    SourceImageId string

    The ID of an Image which each Virtual Machine in this Scale Set should be based on. Possible Image ID types include Image ID, Shared Image ID, Shared Image Version ID, Community Gallery Image ID, Community Gallery Image Version ID, Shared Gallery Image ID and Shared Gallery Image Version ID.

    NOTE: One of either source_image_id or source_image_reference must be set.

    SourceImageReference LinuxVirtualMachineScaleSetSourceImageReferenceArgs

    A source_image_reference block as defined below.

    NOTE: One of either source_image_id or source_image_reference must be set.

    SpotRestore LinuxVirtualMachineScaleSetSpotRestoreArgs
    A spot_restore block as defined below.
    Tags map[string]string
    A mapping of tags which should be assigned to this Virtual Machine Scale Set.
    TerminateNotification LinuxVirtualMachineScaleSetTerminateNotificationArgs

    A terminate_notification block as defined below.

    Note: This property has been deprecated in favour of the termination_notification property and will be removed in version 4.0 of the provider.

    Deprecated: terminate_notification has been renamed to termination_notification and will be removed in 4.0.

    TerminationNotification LinuxVirtualMachineScaleSetTerminationNotificationArgs
    A termination_notification block as defined below.
    UpgradeMode string
    UserData string
    The Base64-Encoded User Data which should be used for this Virtual Machine Scale Set.
    VtpmEnabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Changing this forces a new resource to be created.
    ZoneBalance bool

    Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to false. Changing this forces a new resource to be created.

    NOTE: This can only be set to true when one or more zones are configured.

    Zones []string
    Specifies a list of Availability Zones in which this Linux Virtual Machine Scale Set should be located. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    adminUsername String
    The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.
    networkInterfaces List<LinuxVirtualMachineScaleSetNetworkInterface>
    One or more network_interface blocks as defined below.
    osDisk LinuxVirtualMachineScaleSetOsDisk
    An os_disk block as defined below.
    resourceGroupName String
    The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.
    sku String
    The Virtual Machine SKU for the Scale Set, such as Standard_F2.
    additionalCapabilities LinuxVirtualMachineScaleSetAdditionalCapabilities
    An additional_capabilities block as defined below.
    adminPassword String

    The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

    NOTE: When an admin_password is specified disable_password_authentication must be set to false.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    adminSshKeys List<LinuxVirtualMachineScaleSetAdminSshKey>

    One or more admin_ssh_key blocks as defined below.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    automaticInstanceRepair LinuxVirtualMachineScaleSetAutomaticInstanceRepair

    An automatic_instance_repair block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid health_probe_id or an Application Health Extension.

    NOTE: For more information about Automatic Instance Repair, please refer to this doc.

    automaticOsUpgradePolicy LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy
    An automatic_os_upgrade_policy block as defined below. This can only be specified when upgrade_mode is set to either Automatic or Rolling.
    bootDiagnostics LinuxVirtualMachineScaleSetBootDiagnostics
    A boot_diagnostics block as defined below.
    capacityReservationGroupId String

    Specifies the ID of the Capacity Reservation Group which the Virtual Machine Scale Set should be allocated to. Changing this forces a new resource to be created.

    NOTE: capacity_reservation_group_id cannot be used with proximity_placement_group_id

    NOTE: single_placement_group must be set to false when capacity_reservation_group_id is specified.

    computerNamePrefix String
    The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name_prefix, then you must specify computer_name_prefix. Changing this forces a new resource to be created.
    customData String

    The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

    NOTE: When Custom Data has been configured, it's not possible to remove it without tainting the Virtual Machine Scale Set, due to a limitation of the Azure API.

    dataDisks List<LinuxVirtualMachineScaleSetDataDisk>
    One or more data_disk blocks as defined below.
    disablePasswordAuthentication Boolean

    Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

    In general we'd recommend using SSH Keys for authentication rather than Passwords - but there's tradeoff's to each - please see this thread for more information.

    NOTE: When a admin_password is specified disable_password_authentication must be set to false.

    doNotRunExtensionsOnOverprovisionedMachines Boolean
    Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.
    edgeZone String
    Specifies the Edge Zone within the Azure Region where this Linux Virtual Machine Scale Set should exist. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    encryptionAtHostEnabled Boolean
    Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?
    evictionPolicy String

    Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

    NOTE: This can only be configured when priority is set to Spot.

    extensionOperationsEnabled Boolean

    Should extension operations be allowed on the Virtual Machine Scale Set? Possible values are true or false. Defaults to true. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    NOTE: extension_operations_enabled may only be set to false if there are no extensions defined in the extension field.

    extensions List<LinuxVirtualMachineScaleSetExtension>
    One or more extension blocks as defined below
    extensionsTimeBudget String
    Specifies the duration allocated 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. Defaults to PT1H30M.
    galleryApplication List<LinuxVirtualMachineScaleSetGalleryApplication>
    One or more gallery_application blocks as defined below.
    galleryApplications List<LinuxVirtualMachineScaleSetGalleryApplication>

    Deprecated: gallery_applications has been renamed to gallery_application and will be deprecated in 4.0

    healthProbeId String
    The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.
    hostGroupId String
    Specifies the ID of the dedicated host group that the virtual machine scale set resides in. Changing this forces a new resource to be created.
    identity LinuxVirtualMachineScaleSetIdentity
    An identity block as defined below.
    instances Integer

    The number of Virtual Machines in the Scale Set. Defaults to 0.

    NOTE: If you're using AutoScaling, you may wish to use Ignore Changes functionality to ignore changes to this field.

    location String
    The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.
    maxBidPrice Double

    The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the eviction_policy. Defaults to -1, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.

    NOTE: This can only be configured when priority is set to Spot.

    name String
    The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    overprovision Boolean
    Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to true.
    plan LinuxVirtualMachineScaleSetPlan

    A plan block as defined below. Changing this forces a new resource to be created.

    NOTE: When using an image from Azure Marketplace a plan must be specified.

    platformFaultDomainCount Integer
    Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    priority String

    The Priority of this Virtual Machine Scale Set. Possible values are Regular and Spot. Defaults to Regular. Changing this value forces a new resource.

    NOTE: When priority is set to Spot an eviction_policy must be specified.

    provisionVmAgent Boolean
    Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to true. Changing this value forces a new resource to be created.
    proximityPlacementGroupId String
    The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.
    rollingUpgradePolicy LinuxVirtualMachineScaleSetRollingUpgradePolicy
    A rolling_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling. Changing this forces a new resource to be created.
    scaleIn LinuxVirtualMachineScaleSetScaleIn
    A scale_in block as defined below.
    scaleInPolicy String

    Deprecated: scale_in_policy will be removed in favour of the scale_in code block in version 4.0 of the AzureRM Provider.

    secrets List<LinuxVirtualMachineScaleSetSecret>
    One or more secret blocks as defined below.
    secureBootEnabled Boolean
    Specifies whether secure boot should be enabled on the virtual machine. Changing this forces a new resource to be created.
    singlePlacementGroup Boolean
    Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to true.
    sourceImageId String

    The ID of an Image which each Virtual Machine in this Scale Set should be based on. Possible Image ID types include Image ID, Shared Image ID, Shared Image Version ID, Community Gallery Image ID, Community Gallery Image Version ID, Shared Gallery Image ID and Shared Gallery Image Version ID.

    NOTE: One of either source_image_id or source_image_reference must be set.

    sourceImageReference LinuxVirtualMachineScaleSetSourceImageReference

    A source_image_reference block as defined below.

    NOTE: One of either source_image_id or source_image_reference must be set.

    spotRestore LinuxVirtualMachineScaleSetSpotRestore
    A spot_restore block as defined below.
    tags Map<String,String>
    A mapping of tags which should be assigned to this Virtual Machine Scale Set.
    terminateNotification LinuxVirtualMachineScaleSetTerminateNotification

    A terminate_notification block as defined below.

    Note: This property has been deprecated in favour of the termination_notification property and will be removed in version 4.0 of the provider.

    Deprecated: terminate_notification has been renamed to termination_notification and will be removed in 4.0.

    terminationNotification LinuxVirtualMachineScaleSetTerminationNotification
    A termination_notification block as defined below.
    upgradeMode String
    userData String
    The Base64-Encoded User Data which should be used for this Virtual Machine Scale Set.
    vtpmEnabled Boolean
    Specifies whether vTPM should be enabled on the virtual machine. Changing this forces a new resource to be created.
    zoneBalance Boolean

    Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to false. Changing this forces a new resource to be created.

    NOTE: This can only be set to true when one or more zones are configured.

    zones List<String>
    Specifies a list of Availability Zones in which this Linux Virtual Machine Scale Set should be located. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    adminUsername string
    The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.
    networkInterfaces LinuxVirtualMachineScaleSetNetworkInterface[]
    One or more network_interface blocks as defined below.
    osDisk LinuxVirtualMachineScaleSetOsDisk
    An os_disk block as defined below.
    resourceGroupName string
    The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.
    sku string
    The Virtual Machine SKU for the Scale Set, such as Standard_F2.
    additionalCapabilities LinuxVirtualMachineScaleSetAdditionalCapabilities
    An additional_capabilities block as defined below.
    adminPassword string

    The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

    NOTE: When an admin_password is specified disable_password_authentication must be set to false.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    adminSshKeys LinuxVirtualMachineScaleSetAdminSshKey[]

    One or more admin_ssh_key blocks as defined below.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    automaticInstanceRepair LinuxVirtualMachineScaleSetAutomaticInstanceRepair

    An automatic_instance_repair block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid health_probe_id or an Application Health Extension.

    NOTE: For more information about Automatic Instance Repair, please refer to this doc.

    automaticOsUpgradePolicy LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy
    An automatic_os_upgrade_policy block as defined below. This can only be specified when upgrade_mode is set to either Automatic or Rolling.
    bootDiagnostics LinuxVirtualMachineScaleSetBootDiagnostics
    A boot_diagnostics block as defined below.
    capacityReservationGroupId string

    Specifies the ID of the Capacity Reservation Group which the Virtual Machine Scale Set should be allocated to. Changing this forces a new resource to be created.

    NOTE: capacity_reservation_group_id cannot be used with proximity_placement_group_id

    NOTE: single_placement_group must be set to false when capacity_reservation_group_id is specified.

    computerNamePrefix string
    The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name_prefix, then you must specify computer_name_prefix. Changing this forces a new resource to be created.
    customData string

    The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

    NOTE: When Custom Data has been configured, it's not possible to remove it without tainting the Virtual Machine Scale Set, due to a limitation of the Azure API.

    dataDisks LinuxVirtualMachineScaleSetDataDisk[]
    One or more data_disk blocks as defined below.
    disablePasswordAuthentication boolean

    Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

    In general we'd recommend using SSH Keys for authentication rather than Passwords - but there's tradeoff's to each - please see this thread for more information.

    NOTE: When a admin_password is specified disable_password_authentication must be set to false.

    doNotRunExtensionsOnOverprovisionedMachines boolean
    Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.
    edgeZone string
    Specifies the Edge Zone within the Azure Region where this Linux Virtual Machine Scale Set should exist. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    encryptionAtHostEnabled boolean
    Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?
    evictionPolicy string

    Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

    NOTE: This can only be configured when priority is set to Spot.

    extensionOperationsEnabled boolean

    Should extension operations be allowed on the Virtual Machine Scale Set? Possible values are true or false. Defaults to true. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    NOTE: extension_operations_enabled may only be set to false if there are no extensions defined in the extension field.

    extensions LinuxVirtualMachineScaleSetExtension[]
    One or more extension blocks as defined below
    extensionsTimeBudget string
    Specifies the duration allocated 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. Defaults to PT1H30M.
    galleryApplication LinuxVirtualMachineScaleSetGalleryApplication[]
    One or more gallery_application blocks as defined below.
    galleryApplications LinuxVirtualMachineScaleSetGalleryApplication[]

    Deprecated: gallery_applications has been renamed to gallery_application and will be deprecated in 4.0

    healthProbeId string
    The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.
    hostGroupId string
    Specifies the ID of the dedicated host group that the virtual machine scale set resides in. Changing this forces a new resource to be created.
    identity LinuxVirtualMachineScaleSetIdentity
    An identity block as defined below.
    instances number

    The number of Virtual Machines in the Scale Set. Defaults to 0.

    NOTE: If you're using AutoScaling, you may wish to use Ignore Changes functionality to ignore changes to this field.

    location string
    The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.
    maxBidPrice number

    The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the eviction_policy. Defaults to -1, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.

    NOTE: This can only be configured when priority is set to Spot.

    name string
    The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    overprovision boolean
    Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to true.
    plan LinuxVirtualMachineScaleSetPlan

    A plan block as defined below. Changing this forces a new resource to be created.

    NOTE: When using an image from Azure Marketplace a plan must be specified.

    platformFaultDomainCount number
    Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    priority string

    The Priority of this Virtual Machine Scale Set. Possible values are Regular and Spot. Defaults to Regular. Changing this value forces a new resource.

    NOTE: When priority is set to Spot an eviction_policy must be specified.

    provisionVmAgent boolean
    Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to true. Changing this value forces a new resource to be created.
    proximityPlacementGroupId string
    The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.
    rollingUpgradePolicy LinuxVirtualMachineScaleSetRollingUpgradePolicy
    A rolling_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling. Changing this forces a new resource to be created.
    scaleIn LinuxVirtualMachineScaleSetScaleIn
    A scale_in block as defined below.
    scaleInPolicy string

    Deprecated: scale_in_policy will be removed in favour of the scale_in code block in version 4.0 of the AzureRM Provider.

    secrets LinuxVirtualMachineScaleSetSecret[]
    One or more secret blocks as defined below.
    secureBootEnabled boolean
    Specifies whether secure boot should be enabled on the virtual machine. Changing this forces a new resource to be created.
    singlePlacementGroup boolean
    Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to true.
    sourceImageId string

    The ID of an Image which each Virtual Machine in this Scale Set should be based on. Possible Image ID types include Image ID, Shared Image ID, Shared Image Version ID, Community Gallery Image ID, Community Gallery Image Version ID, Shared Gallery Image ID and Shared Gallery Image Version ID.

    NOTE: One of either source_image_id or source_image_reference must be set.

    sourceImageReference LinuxVirtualMachineScaleSetSourceImageReference

    A source_image_reference block as defined below.

    NOTE: One of either source_image_id or source_image_reference must be set.

    spotRestore LinuxVirtualMachineScaleSetSpotRestore
    A spot_restore block as defined below.
    tags {[key: string]: string}
    A mapping of tags which should be assigned to this Virtual Machine Scale Set.
    terminateNotification LinuxVirtualMachineScaleSetTerminateNotification

    A terminate_notification block as defined below.

    Note: This property has been deprecated in favour of the termination_notification property and will be removed in version 4.0 of the provider.

    Deprecated: terminate_notification has been renamed to termination_notification and will be removed in 4.0.

    terminationNotification LinuxVirtualMachineScaleSetTerminationNotification
    A termination_notification block as defined below.
    upgradeMode string
    userData string
    The Base64-Encoded User Data which should be used for this Virtual Machine Scale Set.
    vtpmEnabled boolean
    Specifies whether vTPM should be enabled on the virtual machine. Changing this forces a new resource to be created.
    zoneBalance boolean

    Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to false. Changing this forces a new resource to be created.

    NOTE: This can only be set to true when one or more zones are configured.

    zones string[]
    Specifies a list of Availability Zones in which this Linux Virtual Machine Scale Set should be located. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    admin_username str
    The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.
    network_interfaces Sequence[LinuxVirtualMachineScaleSetNetworkInterfaceArgs]
    One or more network_interface blocks as defined below.
    os_disk LinuxVirtualMachineScaleSetOsDiskArgs
    An os_disk block as defined below.
    resource_group_name str
    The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.
    sku str
    The Virtual Machine SKU for the Scale Set, such as Standard_F2.
    additional_capabilities LinuxVirtualMachineScaleSetAdditionalCapabilitiesArgs
    An additional_capabilities block as defined below.
    admin_password str

    The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

    NOTE: When an admin_password is specified disable_password_authentication must be set to false.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    admin_ssh_keys Sequence[LinuxVirtualMachineScaleSetAdminSshKeyArgs]

    One or more admin_ssh_key blocks as defined below.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    automatic_instance_repair LinuxVirtualMachineScaleSetAutomaticInstanceRepairArgs

    An automatic_instance_repair block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid health_probe_id or an Application Health Extension.

    NOTE: For more information about Automatic Instance Repair, please refer to this doc.

    automatic_os_upgrade_policy LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs
    An automatic_os_upgrade_policy block as defined below. This can only be specified when upgrade_mode is set to either Automatic or Rolling.
    boot_diagnostics LinuxVirtualMachineScaleSetBootDiagnosticsArgs
    A boot_diagnostics block as defined below.
    capacity_reservation_group_id str

    Specifies the ID of the Capacity Reservation Group which the Virtual Machine Scale Set should be allocated to. Changing this forces a new resource to be created.

    NOTE: capacity_reservation_group_id cannot be used with proximity_placement_group_id

    NOTE: single_placement_group must be set to false when capacity_reservation_group_id is specified.

    computer_name_prefix str
    The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name_prefix, then you must specify computer_name_prefix. Changing this forces a new resource to be created.
    custom_data str

    The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

    NOTE: When Custom Data has been configured, it's not possible to remove it without tainting the Virtual Machine Scale Set, due to a limitation of the Azure API.

    data_disks Sequence[LinuxVirtualMachineScaleSetDataDiskArgs]
    One or more data_disk blocks as defined below.
    disable_password_authentication bool

    Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

    In general we'd recommend using SSH Keys for authentication rather than Passwords - but there's tradeoff's to each - please see this thread for more information.

    NOTE: When a admin_password is specified disable_password_authentication must be set to false.

    do_not_run_extensions_on_overprovisioned_machines bool
    Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.
    edge_zone str
    Specifies the Edge Zone within the Azure Region where this Linux Virtual Machine Scale Set should exist. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    encryption_at_host_enabled bool
    Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?
    eviction_policy str

    Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

    NOTE: This can only be configured when priority is set to Spot.

    extension_operations_enabled bool

    Should extension operations be allowed on the Virtual Machine Scale Set? Possible values are true or false. Defaults to true. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    NOTE: extension_operations_enabled may only be set to false if there are no extensions defined in the extension field.

    extensions Sequence[LinuxVirtualMachineScaleSetExtensionArgs]
    One or more extension blocks as defined below
    extensions_time_budget str
    Specifies the duration allocated 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. Defaults to PT1H30M.
    gallery_application Sequence[LinuxVirtualMachineScaleSetGalleryApplicationArgs]
    One or more gallery_application blocks as defined below.
    gallery_applications Sequence[LinuxVirtualMachineScaleSetGalleryApplicationArgs]

    Deprecated: gallery_applications has been renamed to gallery_application and will be deprecated in 4.0

    health_probe_id str
    The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.
    host_group_id str
    Specifies the ID of the dedicated host group that the virtual machine scale set resides in. Changing this forces a new resource to be created.
    identity LinuxVirtualMachineScaleSetIdentityArgs
    An identity block as defined below.
    instances int

    The number of Virtual Machines in the Scale Set. Defaults to 0.

    NOTE: If you're using AutoScaling, you may wish to use Ignore Changes functionality to ignore changes to this field.

    location str
    The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.
    max_bid_price float

    The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the eviction_policy. Defaults to -1, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.

    NOTE: This can only be configured when priority is set to Spot.

    name str
    The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    overprovision bool
    Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to true.
    plan LinuxVirtualMachineScaleSetPlanArgs

    A plan block as defined below. Changing this forces a new resource to be created.

    NOTE: When using an image from Azure Marketplace a plan must be specified.

    platform_fault_domain_count int
    Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    priority str

    The Priority of this Virtual Machine Scale Set. Possible values are Regular and Spot. Defaults to Regular. Changing this value forces a new resource.

    NOTE: When priority is set to Spot an eviction_policy must be specified.

    provision_vm_agent bool
    Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to true. Changing this value forces a new resource to be created.
    proximity_placement_group_id str
    The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.
    rolling_upgrade_policy LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs
    A rolling_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling. Changing this forces a new resource to be created.
    scale_in LinuxVirtualMachineScaleSetScaleInArgs
    A scale_in block as defined below.
    scale_in_policy str

    Deprecated: scale_in_policy will be removed in favour of the scale_in code block in version 4.0 of the AzureRM Provider.

    secrets Sequence[LinuxVirtualMachineScaleSetSecretArgs]
    One or more secret blocks as defined below.
    secure_boot_enabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Changing this forces a new resource to be created.
    single_placement_group bool
    Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to true.
    source_image_id str

    The ID of an Image which each Virtual Machine in this Scale Set should be based on. Possible Image ID types include Image ID, Shared Image ID, Shared Image Version ID, Community Gallery Image ID, Community Gallery Image Version ID, Shared Gallery Image ID and Shared Gallery Image Version ID.

    NOTE: One of either source_image_id or source_image_reference must be set.

    source_image_reference LinuxVirtualMachineScaleSetSourceImageReferenceArgs

    A source_image_reference block as defined below.

    NOTE: One of either source_image_id or source_image_reference must be set.

    spot_restore LinuxVirtualMachineScaleSetSpotRestoreArgs
    A spot_restore block as defined below.
    tags Mapping[str, str]
    A mapping of tags which should be assigned to this Virtual Machine Scale Set.
    terminate_notification LinuxVirtualMachineScaleSetTerminateNotificationArgs

    A terminate_notification block as defined below.

    Note: This property has been deprecated in favour of the termination_notification property and will be removed in version 4.0 of the provider.

    Deprecated: terminate_notification has been renamed to termination_notification and will be removed in 4.0.

    termination_notification LinuxVirtualMachineScaleSetTerminationNotificationArgs
    A termination_notification block as defined below.
    upgrade_mode str
    user_data str
    The Base64-Encoded User Data which should be used for this Virtual Machine Scale Set.
    vtpm_enabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Changing this forces a new resource to be created.
    zone_balance bool

    Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to false. Changing this forces a new resource to be created.

    NOTE: This can only be set to true when one or more zones are configured.

    zones Sequence[str]
    Specifies a list of Availability Zones in which this Linux Virtual Machine Scale Set should be located. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    adminUsername String
    The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.
    networkInterfaces List<Property Map>
    One or more network_interface blocks as defined below.
    osDisk Property Map
    An os_disk block as defined below.
    resourceGroupName String
    The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.
    sku String
    The Virtual Machine SKU for the Scale Set, such as Standard_F2.
    additionalCapabilities Property Map
    An additional_capabilities block as defined below.
    adminPassword String

    The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

    NOTE: When an admin_password is specified disable_password_authentication must be set to false.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    adminSshKeys List<Property Map>

    One or more admin_ssh_key blocks as defined below.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    automaticInstanceRepair Property Map

    An automatic_instance_repair block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid health_probe_id or an Application Health Extension.

    NOTE: For more information about Automatic Instance Repair, please refer to this doc.

    automaticOsUpgradePolicy Property Map
    An automatic_os_upgrade_policy block as defined below. This can only be specified when upgrade_mode is set to either Automatic or Rolling.
    bootDiagnostics Property Map
    A boot_diagnostics block as defined below.
    capacityReservationGroupId String

    Specifies the ID of the Capacity Reservation Group which the Virtual Machine Scale Set should be allocated to. Changing this forces a new resource to be created.

    NOTE: capacity_reservation_group_id cannot be used with proximity_placement_group_id

    NOTE: single_placement_group must be set to false when capacity_reservation_group_id is specified.

    computerNamePrefix String
    The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name_prefix, then you must specify computer_name_prefix. Changing this forces a new resource to be created.
    customData String

    The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

    NOTE: When Custom Data has been configured, it's not possible to remove it without tainting the Virtual Machine Scale Set, due to a limitation of the Azure API.

    dataDisks List<Property Map>
    One or more data_disk blocks as defined below.
    disablePasswordAuthentication Boolean

    Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

    In general we'd recommend using SSH Keys for authentication rather than Passwords - but there's tradeoff's to each - please see this thread for more information.

    NOTE: When a admin_password is specified disable_password_authentication must be set to false.

    doNotRunExtensionsOnOverprovisionedMachines Boolean
    Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.
    edgeZone String
    Specifies the Edge Zone within the Azure Region where this Linux Virtual Machine Scale Set should exist. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    encryptionAtHostEnabled Boolean
    Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?
    evictionPolicy String

    Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

    NOTE: This can only be configured when priority is set to Spot.

    extensionOperationsEnabled Boolean

    Should extension operations be allowed on the Virtual Machine Scale Set? Possible values are true or false. Defaults to true. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    NOTE: extension_operations_enabled may only be set to false if there are no extensions defined in the extension field.

    extensions List<Property Map>
    One or more extension blocks as defined below
    extensionsTimeBudget String
    Specifies the duration allocated 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. Defaults to PT1H30M.
    galleryApplication List<Property Map>
    One or more gallery_application blocks as defined below.
    galleryApplications List<Property Map>

    Deprecated: gallery_applications has been renamed to gallery_application and will be deprecated in 4.0

    healthProbeId String
    The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.
    hostGroupId String
    Specifies the ID of the dedicated host group that the virtual machine scale set resides in. Changing this forces a new resource to be created.
    identity Property Map
    An identity block as defined below.
    instances Number

    The number of Virtual Machines in the Scale Set. Defaults to 0.

    NOTE: If you're using AutoScaling, you may wish to use Ignore Changes functionality to ignore changes to this field.

    location String
    The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.
    maxBidPrice Number

    The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the eviction_policy. Defaults to -1, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.

    NOTE: This can only be configured when priority is set to Spot.

    name String
    The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    overprovision Boolean
    Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to true.
    plan Property Map

    A plan block as defined below. Changing this forces a new resource to be created.

    NOTE: When using an image from Azure Marketplace a plan must be specified.

    platformFaultDomainCount Number
    Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    priority String

    The Priority of this Virtual Machine Scale Set. Possible values are Regular and Spot. Defaults to Regular. Changing this value forces a new resource.

    NOTE: When priority is set to Spot an eviction_policy must be specified.

    provisionVmAgent Boolean
    Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to true. Changing this value forces a new resource to be created.
    proximityPlacementGroupId String
    The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.
    rollingUpgradePolicy Property Map
    A rolling_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling. Changing this forces a new resource to be created.
    scaleIn Property Map
    A scale_in block as defined below.
    scaleInPolicy String

    Deprecated: scale_in_policy will be removed in favour of the scale_in code block in version 4.0 of the AzureRM Provider.

    secrets List<Property Map>
    One or more secret blocks as defined below.
    secureBootEnabled Boolean
    Specifies whether secure boot should be enabled on the virtual machine. Changing this forces a new resource to be created.
    singlePlacementGroup Boolean
    Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to true.
    sourceImageId String

    The ID of an Image which each Virtual Machine in this Scale Set should be based on. Possible Image ID types include Image ID, Shared Image ID, Shared Image Version ID, Community Gallery Image ID, Community Gallery Image Version ID, Shared Gallery Image ID and Shared Gallery Image Version ID.

    NOTE: One of either source_image_id or source_image_reference must be set.

    sourceImageReference Property Map

    A source_image_reference block as defined below.

    NOTE: One of either source_image_id or source_image_reference must be set.

    spotRestore Property Map
    A spot_restore block as defined below.
    tags Map<String>
    A mapping of tags which should be assigned to this Virtual Machine Scale Set.
    terminateNotification Property Map

    A terminate_notification block as defined below.

    Note: This property has been deprecated in favour of the termination_notification property and will be removed in version 4.0 of the provider.

    Deprecated: terminate_notification has been renamed to termination_notification and will be removed in 4.0.

    terminationNotification Property Map
    A termination_notification block as defined below.
    upgradeMode String
    userData String
    The Base64-Encoded User Data which should be used for this Virtual Machine Scale Set.
    vtpmEnabled Boolean
    Specifies whether vTPM should be enabled on the virtual machine. Changing this forces a new resource to be created.
    zoneBalance Boolean

    Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to false. Changing this forces a new resource to be created.

    NOTE: This can only be set to true when one or more zones are configured.

    zones List<String>
    Specifies a list of Availability Zones in which this Linux Virtual Machine Scale Set should be located. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    Outputs

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

    Id string
    The provider-assigned unique ID for this managed resource.
    UniqueId string
    The Unique ID for this Linux Virtual Machine Scale Set.
    Id string
    The provider-assigned unique ID for this managed resource.
    UniqueId string
    The Unique ID for this Linux Virtual Machine Scale Set.
    id String
    The provider-assigned unique ID for this managed resource.
    uniqueId String
    The Unique ID for this Linux Virtual Machine Scale Set.
    id string
    The provider-assigned unique ID for this managed resource.
    uniqueId string
    The Unique ID for this Linux Virtual Machine Scale Set.
    id str
    The provider-assigned unique ID for this managed resource.
    unique_id str
    The Unique ID for this Linux Virtual Machine Scale Set.
    id String
    The provider-assigned unique ID for this managed resource.
    uniqueId String
    The Unique ID for this Linux Virtual Machine Scale Set.

    Look up Existing LinuxVirtualMachineScaleSet Resource

    Get an existing LinuxVirtualMachineScaleSet resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: LinuxVirtualMachineScaleSetState, opts?: CustomResourceOptions): LinuxVirtualMachineScaleSet
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            additional_capabilities: Optional[LinuxVirtualMachineScaleSetAdditionalCapabilitiesArgs] = None,
            admin_password: Optional[str] = None,
            admin_ssh_keys: Optional[Sequence[LinuxVirtualMachineScaleSetAdminSshKeyArgs]] = None,
            admin_username: Optional[str] = None,
            automatic_instance_repair: Optional[LinuxVirtualMachineScaleSetAutomaticInstanceRepairArgs] = None,
            automatic_os_upgrade_policy: Optional[LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs] = None,
            boot_diagnostics: Optional[LinuxVirtualMachineScaleSetBootDiagnosticsArgs] = None,
            capacity_reservation_group_id: Optional[str] = None,
            computer_name_prefix: Optional[str] = None,
            custom_data: Optional[str] = None,
            data_disks: Optional[Sequence[LinuxVirtualMachineScaleSetDataDiskArgs]] = None,
            disable_password_authentication: Optional[bool] = None,
            do_not_run_extensions_on_overprovisioned_machines: Optional[bool] = None,
            edge_zone: Optional[str] = None,
            encryption_at_host_enabled: Optional[bool] = None,
            eviction_policy: Optional[str] = None,
            extension_operations_enabled: Optional[bool] = None,
            extensions: Optional[Sequence[LinuxVirtualMachineScaleSetExtensionArgs]] = None,
            extensions_time_budget: Optional[str] = None,
            gallery_application: Optional[Sequence[LinuxVirtualMachineScaleSetGalleryApplicationArgs]] = None,
            gallery_applications: Optional[Sequence[LinuxVirtualMachineScaleSetGalleryApplicationArgs]] = None,
            health_probe_id: Optional[str] = None,
            host_group_id: Optional[str] = None,
            identity: Optional[LinuxVirtualMachineScaleSetIdentityArgs] = None,
            instances: Optional[int] = None,
            location: Optional[str] = None,
            max_bid_price: Optional[float] = None,
            name: Optional[str] = None,
            network_interfaces: Optional[Sequence[LinuxVirtualMachineScaleSetNetworkInterfaceArgs]] = None,
            os_disk: Optional[LinuxVirtualMachineScaleSetOsDiskArgs] = None,
            overprovision: Optional[bool] = None,
            plan: Optional[LinuxVirtualMachineScaleSetPlanArgs] = None,
            platform_fault_domain_count: Optional[int] = None,
            priority: Optional[str] = None,
            provision_vm_agent: Optional[bool] = None,
            proximity_placement_group_id: Optional[str] = None,
            resource_group_name: Optional[str] = None,
            rolling_upgrade_policy: Optional[LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs] = None,
            scale_in: Optional[LinuxVirtualMachineScaleSetScaleInArgs] = None,
            scale_in_policy: Optional[str] = None,
            secrets: Optional[Sequence[LinuxVirtualMachineScaleSetSecretArgs]] = None,
            secure_boot_enabled: Optional[bool] = None,
            single_placement_group: Optional[bool] = None,
            sku: Optional[str] = None,
            source_image_id: Optional[str] = None,
            source_image_reference: Optional[LinuxVirtualMachineScaleSetSourceImageReferenceArgs] = None,
            spot_restore: Optional[LinuxVirtualMachineScaleSetSpotRestoreArgs] = None,
            tags: Optional[Mapping[str, str]] = None,
            terminate_notification: Optional[LinuxVirtualMachineScaleSetTerminateNotificationArgs] = None,
            termination_notification: Optional[LinuxVirtualMachineScaleSetTerminationNotificationArgs] = None,
            unique_id: Optional[str] = None,
            upgrade_mode: Optional[str] = None,
            user_data: Optional[str] = None,
            vtpm_enabled: Optional[bool] = None,
            zone_balance: Optional[bool] = None,
            zones: Optional[Sequence[str]] = None) -> LinuxVirtualMachineScaleSet
    func GetLinuxVirtualMachineScaleSet(ctx *Context, name string, id IDInput, state *LinuxVirtualMachineScaleSetState, opts ...ResourceOption) (*LinuxVirtualMachineScaleSet, error)
    public static LinuxVirtualMachineScaleSet Get(string name, Input<string> id, LinuxVirtualMachineScaleSetState? state, CustomResourceOptions? opts = null)
    public static LinuxVirtualMachineScaleSet get(String name, Output<String> id, LinuxVirtualMachineScaleSetState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AdditionalCapabilities LinuxVirtualMachineScaleSetAdditionalCapabilities
    An additional_capabilities block as defined below.
    AdminPassword string

    The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

    NOTE: When an admin_password is specified disable_password_authentication must be set to false.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    AdminSshKeys List<LinuxVirtualMachineScaleSetAdminSshKey>

    One or more admin_ssh_key blocks as defined below.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    AdminUsername string
    The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.
    AutomaticInstanceRepair LinuxVirtualMachineScaleSetAutomaticInstanceRepair

    An automatic_instance_repair block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid health_probe_id or an Application Health Extension.

    NOTE: For more information about Automatic Instance Repair, please refer to this doc.

    AutomaticOsUpgradePolicy LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy
    An automatic_os_upgrade_policy block as defined below. This can only be specified when upgrade_mode is set to either Automatic or Rolling.
    BootDiagnostics LinuxVirtualMachineScaleSetBootDiagnostics
    A boot_diagnostics block as defined below.
    CapacityReservationGroupId string

    Specifies the ID of the Capacity Reservation Group which the Virtual Machine Scale Set should be allocated to. Changing this forces a new resource to be created.

    NOTE: capacity_reservation_group_id cannot be used with proximity_placement_group_id

    NOTE: single_placement_group must be set to false when capacity_reservation_group_id is specified.

    ComputerNamePrefix string
    The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name_prefix, then you must specify computer_name_prefix. Changing this forces a new resource to be created.
    CustomData string

    The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

    NOTE: When Custom Data has been configured, it's not possible to remove it without tainting the Virtual Machine Scale Set, due to a limitation of the Azure API.

    DataDisks List<LinuxVirtualMachineScaleSetDataDisk>
    One or more data_disk blocks as defined below.
    DisablePasswordAuthentication bool

    Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

    In general we'd recommend using SSH Keys for authentication rather than Passwords - but there's tradeoff's to each - please see this thread for more information.

    NOTE: When a admin_password is specified disable_password_authentication must be set to false.

    DoNotRunExtensionsOnOverprovisionedMachines bool
    Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.
    EdgeZone string
    Specifies the Edge Zone within the Azure Region where this Linux Virtual Machine Scale Set should exist. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    EncryptionAtHostEnabled bool
    Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?
    EvictionPolicy string

    Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

    NOTE: This can only be configured when priority is set to Spot.

    ExtensionOperationsEnabled bool

    Should extension operations be allowed on the Virtual Machine Scale Set? Possible values are true or false. Defaults to true. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    NOTE: extension_operations_enabled may only be set to false if there are no extensions defined in the extension field.

    Extensions List<LinuxVirtualMachineScaleSetExtension>
    One or more extension blocks as defined below
    ExtensionsTimeBudget string
    Specifies the duration allocated 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. Defaults to PT1H30M.
    GalleryApplication List<LinuxVirtualMachineScaleSetGalleryApplication>
    One or more gallery_application blocks as defined below.
    GalleryApplications List<LinuxVirtualMachineScaleSetGalleryApplication>

    Deprecated: gallery_applications has been renamed to gallery_application and will be deprecated in 4.0

    HealthProbeId string
    The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.
    HostGroupId string
    Specifies the ID of the dedicated host group that the virtual machine scale set resides in. Changing this forces a new resource to be created.
    Identity LinuxVirtualMachineScaleSetIdentity
    An identity block as defined below.
    Instances int

    The number of Virtual Machines in the Scale Set. Defaults to 0.

    NOTE: If you're using AutoScaling, you may wish to use Ignore Changes functionality to ignore changes to this field.

    Location string
    The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.
    MaxBidPrice double

    The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the eviction_policy. Defaults to -1, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.

    NOTE: This can only be configured when priority is set to Spot.

    Name string
    The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    NetworkInterfaces List<LinuxVirtualMachineScaleSetNetworkInterface>
    One or more network_interface blocks as defined below.
    OsDisk LinuxVirtualMachineScaleSetOsDisk
    An os_disk block as defined below.
    Overprovision bool
    Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to true.
    Plan LinuxVirtualMachineScaleSetPlan

    A plan block as defined below. Changing this forces a new resource to be created.

    NOTE: When using an image from Azure Marketplace a plan must be specified.

    PlatformFaultDomainCount int
    Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    Priority string

    The Priority of this Virtual Machine Scale Set. Possible values are Regular and Spot. Defaults to Regular. Changing this value forces a new resource.

    NOTE: When priority is set to Spot an eviction_policy must be specified.

    ProvisionVmAgent bool
    Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to true. Changing this value forces a new resource to be created.
    ProximityPlacementGroupId string
    The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.
    ResourceGroupName string
    The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.
    RollingUpgradePolicy LinuxVirtualMachineScaleSetRollingUpgradePolicy
    A rolling_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling. Changing this forces a new resource to be created.
    ScaleIn LinuxVirtualMachineScaleSetScaleIn
    A scale_in block as defined below.
    ScaleInPolicy string

    Deprecated: scale_in_policy will be removed in favour of the scale_in code block in version 4.0 of the AzureRM Provider.

    Secrets List<LinuxVirtualMachineScaleSetSecret>
    One or more secret blocks as defined below.
    SecureBootEnabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Changing this forces a new resource to be created.
    SinglePlacementGroup bool
    Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to true.
    Sku string
    The Virtual Machine SKU for the Scale Set, such as Standard_F2.
    SourceImageId string

    The ID of an Image which each Virtual Machine in this Scale Set should be based on. Possible Image ID types include Image ID, Shared Image ID, Shared Image Version ID, Community Gallery Image ID, Community Gallery Image Version ID, Shared Gallery Image ID and Shared Gallery Image Version ID.

    NOTE: One of either source_image_id or source_image_reference must be set.

    SourceImageReference LinuxVirtualMachineScaleSetSourceImageReference

    A source_image_reference block as defined below.

    NOTE: One of either source_image_id or source_image_reference must be set.

    SpotRestore LinuxVirtualMachineScaleSetSpotRestore
    A spot_restore block as defined below.
    Tags Dictionary<string, string>
    A mapping of tags which should be assigned to this Virtual Machine Scale Set.
    TerminateNotification LinuxVirtualMachineScaleSetTerminateNotification

    A terminate_notification block as defined below.

    Note: This property has been deprecated in favour of the termination_notification property and will be removed in version 4.0 of the provider.

    Deprecated: terminate_notification has been renamed to termination_notification and will be removed in 4.0.

    TerminationNotification LinuxVirtualMachineScaleSetTerminationNotification
    A termination_notification block as defined below.
    UniqueId string
    The Unique ID for this Linux Virtual Machine Scale Set.
    UpgradeMode string
    UserData string
    The Base64-Encoded User Data which should be used for this Virtual Machine Scale Set.
    VtpmEnabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Changing this forces a new resource to be created.
    ZoneBalance bool

    Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to false. Changing this forces a new resource to be created.

    NOTE: This can only be set to true when one or more zones are configured.

    Zones List<string>
    Specifies a list of Availability Zones in which this Linux Virtual Machine Scale Set should be located. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    AdditionalCapabilities LinuxVirtualMachineScaleSetAdditionalCapabilitiesArgs
    An additional_capabilities block as defined below.
    AdminPassword string

    The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

    NOTE: When an admin_password is specified disable_password_authentication must be set to false.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    AdminSshKeys []LinuxVirtualMachineScaleSetAdminSshKeyArgs

    One or more admin_ssh_key blocks as defined below.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    AdminUsername string
    The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.
    AutomaticInstanceRepair LinuxVirtualMachineScaleSetAutomaticInstanceRepairArgs

    An automatic_instance_repair block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid health_probe_id or an Application Health Extension.

    NOTE: For more information about Automatic Instance Repair, please refer to this doc.

    AutomaticOsUpgradePolicy LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs
    An automatic_os_upgrade_policy block as defined below. This can only be specified when upgrade_mode is set to either Automatic or Rolling.
    BootDiagnostics LinuxVirtualMachineScaleSetBootDiagnosticsArgs
    A boot_diagnostics block as defined below.
    CapacityReservationGroupId string

    Specifies the ID of the Capacity Reservation Group which the Virtual Machine Scale Set should be allocated to. Changing this forces a new resource to be created.

    NOTE: capacity_reservation_group_id cannot be used with proximity_placement_group_id

    NOTE: single_placement_group must be set to false when capacity_reservation_group_id is specified.

    ComputerNamePrefix string
    The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name_prefix, then you must specify computer_name_prefix. Changing this forces a new resource to be created.
    CustomData string

    The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

    NOTE: When Custom Data has been configured, it's not possible to remove it without tainting the Virtual Machine Scale Set, due to a limitation of the Azure API.

    DataDisks []LinuxVirtualMachineScaleSetDataDiskArgs
    One or more data_disk blocks as defined below.
    DisablePasswordAuthentication bool

    Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

    In general we'd recommend using SSH Keys for authentication rather than Passwords - but there's tradeoff's to each - please see this thread for more information.

    NOTE: When a admin_password is specified disable_password_authentication must be set to false.

    DoNotRunExtensionsOnOverprovisionedMachines bool
    Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.
    EdgeZone string
    Specifies the Edge Zone within the Azure Region where this Linux Virtual Machine Scale Set should exist. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    EncryptionAtHostEnabled bool
    Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?
    EvictionPolicy string

    Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

    NOTE: This can only be configured when priority is set to Spot.

    ExtensionOperationsEnabled bool

    Should extension operations be allowed on the Virtual Machine Scale Set? Possible values are true or false. Defaults to true. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    NOTE: extension_operations_enabled may only be set to false if there are no extensions defined in the extension field.

    Extensions []LinuxVirtualMachineScaleSetExtensionArgs
    One or more extension blocks as defined below
    ExtensionsTimeBudget string
    Specifies the duration allocated 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. Defaults to PT1H30M.
    GalleryApplication []LinuxVirtualMachineScaleSetGalleryApplicationArgs
    One or more gallery_application blocks as defined below.
    GalleryApplications []LinuxVirtualMachineScaleSetGalleryApplicationArgs

    Deprecated: gallery_applications has been renamed to gallery_application and will be deprecated in 4.0

    HealthProbeId string
    The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.
    HostGroupId string
    Specifies the ID of the dedicated host group that the virtual machine scale set resides in. Changing this forces a new resource to be created.
    Identity LinuxVirtualMachineScaleSetIdentityArgs
    An identity block as defined below.
    Instances int

    The number of Virtual Machines in the Scale Set. Defaults to 0.

    NOTE: If you're using AutoScaling, you may wish to use Ignore Changes functionality to ignore changes to this field.

    Location string
    The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.
    MaxBidPrice float64

    The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the eviction_policy. Defaults to -1, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.

    NOTE: This can only be configured when priority is set to Spot.

    Name string
    The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    NetworkInterfaces []LinuxVirtualMachineScaleSetNetworkInterfaceArgs
    One or more network_interface blocks as defined below.
    OsDisk LinuxVirtualMachineScaleSetOsDiskArgs
    An os_disk block as defined below.
    Overprovision bool
    Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to true.
    Plan LinuxVirtualMachineScaleSetPlanArgs

    A plan block as defined below. Changing this forces a new resource to be created.

    NOTE: When using an image from Azure Marketplace a plan must be specified.

    PlatformFaultDomainCount int
    Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    Priority string

    The Priority of this Virtual Machine Scale Set. Possible values are Regular and Spot. Defaults to Regular. Changing this value forces a new resource.

    NOTE: When priority is set to Spot an eviction_policy must be specified.

    ProvisionVmAgent bool
    Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to true. Changing this value forces a new resource to be created.
    ProximityPlacementGroupId string
    The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.
    ResourceGroupName string
    The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.
    RollingUpgradePolicy LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs
    A rolling_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling. Changing this forces a new resource to be created.
    ScaleIn LinuxVirtualMachineScaleSetScaleInArgs
    A scale_in block as defined below.
    ScaleInPolicy string

    Deprecated: scale_in_policy will be removed in favour of the scale_in code block in version 4.0 of the AzureRM Provider.

    Secrets []LinuxVirtualMachineScaleSetSecretArgs
    One or more secret blocks as defined below.
    SecureBootEnabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Changing this forces a new resource to be created.
    SinglePlacementGroup bool
    Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to true.
    Sku string
    The Virtual Machine SKU for the Scale Set, such as Standard_F2.
    SourceImageId string

    The ID of an Image which each Virtual Machine in this Scale Set should be based on. Possible Image ID types include Image ID, Shared Image ID, Shared Image Version ID, Community Gallery Image ID, Community Gallery Image Version ID, Shared Gallery Image ID and Shared Gallery Image Version ID.

    NOTE: One of either source_image_id or source_image_reference must be set.

    SourceImageReference LinuxVirtualMachineScaleSetSourceImageReferenceArgs

    A source_image_reference block as defined below.

    NOTE: One of either source_image_id or source_image_reference must be set.

    SpotRestore LinuxVirtualMachineScaleSetSpotRestoreArgs
    A spot_restore block as defined below.
    Tags map[string]string
    A mapping of tags which should be assigned to this Virtual Machine Scale Set.
    TerminateNotification LinuxVirtualMachineScaleSetTerminateNotificationArgs

    A terminate_notification block as defined below.

    Note: This property has been deprecated in favour of the termination_notification property and will be removed in version 4.0 of the provider.

    Deprecated: terminate_notification has been renamed to termination_notification and will be removed in 4.0.

    TerminationNotification LinuxVirtualMachineScaleSetTerminationNotificationArgs
    A termination_notification block as defined below.
    UniqueId string
    The Unique ID for this Linux Virtual Machine Scale Set.
    UpgradeMode string
    UserData string
    The Base64-Encoded User Data which should be used for this Virtual Machine Scale Set.
    VtpmEnabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Changing this forces a new resource to be created.
    ZoneBalance bool

    Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to false. Changing this forces a new resource to be created.

    NOTE: This can only be set to true when one or more zones are configured.

    Zones []string
    Specifies a list of Availability Zones in which this Linux Virtual Machine Scale Set should be located. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    additionalCapabilities LinuxVirtualMachineScaleSetAdditionalCapabilities
    An additional_capabilities block as defined below.
    adminPassword String

    The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

    NOTE: When an admin_password is specified disable_password_authentication must be set to false.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    adminSshKeys List<LinuxVirtualMachineScaleSetAdminSshKey>

    One or more admin_ssh_key blocks as defined below.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    adminUsername String
    The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.
    automaticInstanceRepair LinuxVirtualMachineScaleSetAutomaticInstanceRepair

    An automatic_instance_repair block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid health_probe_id or an Application Health Extension.

    NOTE: For more information about Automatic Instance Repair, please refer to this doc.

    automaticOsUpgradePolicy LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy
    An automatic_os_upgrade_policy block as defined below. This can only be specified when upgrade_mode is set to either Automatic or Rolling.
    bootDiagnostics LinuxVirtualMachineScaleSetBootDiagnostics
    A boot_diagnostics block as defined below.
    capacityReservationGroupId String

    Specifies the ID of the Capacity Reservation Group which the Virtual Machine Scale Set should be allocated to. Changing this forces a new resource to be created.

    NOTE: capacity_reservation_group_id cannot be used with proximity_placement_group_id

    NOTE: single_placement_group must be set to false when capacity_reservation_group_id is specified.

    computerNamePrefix String
    The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name_prefix, then you must specify computer_name_prefix. Changing this forces a new resource to be created.
    customData String

    The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

    NOTE: When Custom Data has been configured, it's not possible to remove it without tainting the Virtual Machine Scale Set, due to a limitation of the Azure API.

    dataDisks List<LinuxVirtualMachineScaleSetDataDisk>
    One or more data_disk blocks as defined below.
    disablePasswordAuthentication Boolean

    Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

    In general we'd recommend using SSH Keys for authentication rather than Passwords - but there's tradeoff's to each - please see this thread for more information.

    NOTE: When a admin_password is specified disable_password_authentication must be set to false.

    doNotRunExtensionsOnOverprovisionedMachines Boolean
    Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.
    edgeZone String
    Specifies the Edge Zone within the Azure Region where this Linux Virtual Machine Scale Set should exist. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    encryptionAtHostEnabled Boolean
    Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?
    evictionPolicy String

    Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

    NOTE: This can only be configured when priority is set to Spot.

    extensionOperationsEnabled Boolean

    Should extension operations be allowed on the Virtual Machine Scale Set? Possible values are true or false. Defaults to true. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    NOTE: extension_operations_enabled may only be set to false if there are no extensions defined in the extension field.

    extensions List<LinuxVirtualMachineScaleSetExtension>
    One or more extension blocks as defined below
    extensionsTimeBudget String
    Specifies the duration allocated 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. Defaults to PT1H30M.
    galleryApplication List<LinuxVirtualMachineScaleSetGalleryApplication>
    One or more gallery_application blocks as defined below.
    galleryApplications List<LinuxVirtualMachineScaleSetGalleryApplication>

    Deprecated: gallery_applications has been renamed to gallery_application and will be deprecated in 4.0

    healthProbeId String
    The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.
    hostGroupId String
    Specifies the ID of the dedicated host group that the virtual machine scale set resides in. Changing this forces a new resource to be created.
    identity LinuxVirtualMachineScaleSetIdentity
    An identity block as defined below.
    instances Integer

    The number of Virtual Machines in the Scale Set. Defaults to 0.

    NOTE: If you're using AutoScaling, you may wish to use Ignore Changes functionality to ignore changes to this field.

    location String
    The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.
    maxBidPrice Double

    The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the eviction_policy. Defaults to -1, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.

    NOTE: This can only be configured when priority is set to Spot.

    name String
    The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    networkInterfaces List<LinuxVirtualMachineScaleSetNetworkInterface>
    One or more network_interface blocks as defined below.
    osDisk LinuxVirtualMachineScaleSetOsDisk
    An os_disk block as defined below.
    overprovision Boolean
    Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to true.
    plan LinuxVirtualMachineScaleSetPlan

    A plan block as defined below. Changing this forces a new resource to be created.

    NOTE: When using an image from Azure Marketplace a plan must be specified.

    platformFaultDomainCount Integer
    Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    priority String

    The Priority of this Virtual Machine Scale Set. Possible values are Regular and Spot. Defaults to Regular. Changing this value forces a new resource.

    NOTE: When priority is set to Spot an eviction_policy must be specified.

    provisionVmAgent Boolean
    Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to true. Changing this value forces a new resource to be created.
    proximityPlacementGroupId String
    The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.
    resourceGroupName String
    The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.
    rollingUpgradePolicy LinuxVirtualMachineScaleSetRollingUpgradePolicy
    A rolling_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling. Changing this forces a new resource to be created.
    scaleIn LinuxVirtualMachineScaleSetScaleIn
    A scale_in block as defined below.
    scaleInPolicy String

    Deprecated: scale_in_policy will be removed in favour of the scale_in code block in version 4.0 of the AzureRM Provider.

    secrets List<LinuxVirtualMachineScaleSetSecret>
    One or more secret blocks as defined below.
    secureBootEnabled Boolean
    Specifies whether secure boot should be enabled on the virtual machine. Changing this forces a new resource to be created.
    singlePlacementGroup Boolean
    Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to true.
    sku String
    The Virtual Machine SKU for the Scale Set, such as Standard_F2.
    sourceImageId String

    The ID of an Image which each Virtual Machine in this Scale Set should be based on. Possible Image ID types include Image ID, Shared Image ID, Shared Image Version ID, Community Gallery Image ID, Community Gallery Image Version ID, Shared Gallery Image ID and Shared Gallery Image Version ID.

    NOTE: One of either source_image_id or source_image_reference must be set.

    sourceImageReference LinuxVirtualMachineScaleSetSourceImageReference

    A source_image_reference block as defined below.

    NOTE: One of either source_image_id or source_image_reference must be set.

    spotRestore LinuxVirtualMachineScaleSetSpotRestore
    A spot_restore block as defined below.
    tags Map<String,String>
    A mapping of tags which should be assigned to this Virtual Machine Scale Set.
    terminateNotification LinuxVirtualMachineScaleSetTerminateNotification

    A terminate_notification block as defined below.

    Note: This property has been deprecated in favour of the termination_notification property and will be removed in version 4.0 of the provider.

    Deprecated: terminate_notification has been renamed to termination_notification and will be removed in 4.0.

    terminationNotification LinuxVirtualMachineScaleSetTerminationNotification
    A termination_notification block as defined below.
    uniqueId String
    The Unique ID for this Linux Virtual Machine Scale Set.
    upgradeMode String
    userData String
    The Base64-Encoded User Data which should be used for this Virtual Machine Scale Set.
    vtpmEnabled Boolean
    Specifies whether vTPM should be enabled on the virtual machine. Changing this forces a new resource to be created.
    zoneBalance Boolean

    Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to false. Changing this forces a new resource to be created.

    NOTE: This can only be set to true when one or more zones are configured.

    zones List<String>
    Specifies a list of Availability Zones in which this Linux Virtual Machine Scale Set should be located. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    additionalCapabilities LinuxVirtualMachineScaleSetAdditionalCapabilities
    An additional_capabilities block as defined below.
    adminPassword string

    The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

    NOTE: When an admin_password is specified disable_password_authentication must be set to false.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    adminSshKeys LinuxVirtualMachineScaleSetAdminSshKey[]

    One or more admin_ssh_key blocks as defined below.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    adminUsername string
    The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.
    automaticInstanceRepair LinuxVirtualMachineScaleSetAutomaticInstanceRepair

    An automatic_instance_repair block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid health_probe_id or an Application Health Extension.

    NOTE: For more information about Automatic Instance Repair, please refer to this doc.

    automaticOsUpgradePolicy LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy
    An automatic_os_upgrade_policy block as defined below. This can only be specified when upgrade_mode is set to either Automatic or Rolling.
    bootDiagnostics LinuxVirtualMachineScaleSetBootDiagnostics
    A boot_diagnostics block as defined below.
    capacityReservationGroupId string

    Specifies the ID of the Capacity Reservation Group which the Virtual Machine Scale Set should be allocated to. Changing this forces a new resource to be created.

    NOTE: capacity_reservation_group_id cannot be used with proximity_placement_group_id

    NOTE: single_placement_group must be set to false when capacity_reservation_group_id is specified.

    computerNamePrefix string
    The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name_prefix, then you must specify computer_name_prefix. Changing this forces a new resource to be created.
    customData string

    The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

    NOTE: When Custom Data has been configured, it's not possible to remove it without tainting the Virtual Machine Scale Set, due to a limitation of the Azure API.

    dataDisks LinuxVirtualMachineScaleSetDataDisk[]
    One or more data_disk blocks as defined below.
    disablePasswordAuthentication boolean

    Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

    In general we'd recommend using SSH Keys for authentication rather than Passwords - but there's tradeoff's to each - please see this thread for more information.

    NOTE: When a admin_password is specified disable_password_authentication must be set to false.

    doNotRunExtensionsOnOverprovisionedMachines boolean
    Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.
    edgeZone string
    Specifies the Edge Zone within the Azure Region where this Linux Virtual Machine Scale Set should exist. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    encryptionAtHostEnabled boolean
    Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?
    evictionPolicy string

    Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

    NOTE: This can only be configured when priority is set to Spot.

    extensionOperationsEnabled boolean

    Should extension operations be allowed on the Virtual Machine Scale Set? Possible values are true or false. Defaults to true. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    NOTE: extension_operations_enabled may only be set to false if there are no extensions defined in the extension field.

    extensions LinuxVirtualMachineScaleSetExtension[]
    One or more extension blocks as defined below
    extensionsTimeBudget string
    Specifies the duration allocated 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. Defaults to PT1H30M.
    galleryApplication LinuxVirtualMachineScaleSetGalleryApplication[]
    One or more gallery_application blocks as defined below.
    galleryApplications LinuxVirtualMachineScaleSetGalleryApplication[]

    Deprecated: gallery_applications has been renamed to gallery_application and will be deprecated in 4.0

    healthProbeId string
    The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.
    hostGroupId string
    Specifies the ID of the dedicated host group that the virtual machine scale set resides in. Changing this forces a new resource to be created.
    identity LinuxVirtualMachineScaleSetIdentity
    An identity block as defined below.
    instances number

    The number of Virtual Machines in the Scale Set. Defaults to 0.

    NOTE: If you're using AutoScaling, you may wish to use Ignore Changes functionality to ignore changes to this field.

    location string
    The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.
    maxBidPrice number

    The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the eviction_policy. Defaults to -1, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.

    NOTE: This can only be configured when priority is set to Spot.

    name string
    The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    networkInterfaces LinuxVirtualMachineScaleSetNetworkInterface[]
    One or more network_interface blocks as defined below.
    osDisk LinuxVirtualMachineScaleSetOsDisk
    An os_disk block as defined below.
    overprovision boolean
    Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to true.
    plan LinuxVirtualMachineScaleSetPlan

    A plan block as defined below. Changing this forces a new resource to be created.

    NOTE: When using an image from Azure Marketplace a plan must be specified.

    platformFaultDomainCount number
    Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    priority string

    The Priority of this Virtual Machine Scale Set. Possible values are Regular and Spot. Defaults to Regular. Changing this value forces a new resource.

    NOTE: When priority is set to Spot an eviction_policy must be specified.

    provisionVmAgent boolean
    Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to true. Changing this value forces a new resource to be created.
    proximityPlacementGroupId string
    The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.
    resourceGroupName string
    The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.
    rollingUpgradePolicy LinuxVirtualMachineScaleSetRollingUpgradePolicy
    A rolling_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling. Changing this forces a new resource to be created.
    scaleIn LinuxVirtualMachineScaleSetScaleIn
    A scale_in block as defined below.
    scaleInPolicy string

    Deprecated: scale_in_policy will be removed in favour of the scale_in code block in version 4.0 of the AzureRM Provider.

    secrets LinuxVirtualMachineScaleSetSecret[]
    One or more secret blocks as defined below.
    secureBootEnabled boolean
    Specifies whether secure boot should be enabled on the virtual machine. Changing this forces a new resource to be created.
    singlePlacementGroup boolean
    Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to true.
    sku string
    The Virtual Machine SKU for the Scale Set, such as Standard_F2.
    sourceImageId string

    The ID of an Image which each Virtual Machine in this Scale Set should be based on. Possible Image ID types include Image ID, Shared Image ID, Shared Image Version ID, Community Gallery Image ID, Community Gallery Image Version ID, Shared Gallery Image ID and Shared Gallery Image Version ID.

    NOTE: One of either source_image_id or source_image_reference must be set.

    sourceImageReference LinuxVirtualMachineScaleSetSourceImageReference

    A source_image_reference block as defined below.

    NOTE: One of either source_image_id or source_image_reference must be set.

    spotRestore LinuxVirtualMachineScaleSetSpotRestore
    A spot_restore block as defined below.
    tags {[key: string]: string}
    A mapping of tags which should be assigned to this Virtual Machine Scale Set.
    terminateNotification LinuxVirtualMachineScaleSetTerminateNotification

    A terminate_notification block as defined below.

    Note: This property has been deprecated in favour of the termination_notification property and will be removed in version 4.0 of the provider.

    Deprecated: terminate_notification has been renamed to termination_notification and will be removed in 4.0.

    terminationNotification LinuxVirtualMachineScaleSetTerminationNotification
    A termination_notification block as defined below.
    uniqueId string
    The Unique ID for this Linux Virtual Machine Scale Set.
    upgradeMode string
    userData string
    The Base64-Encoded User Data which should be used for this Virtual Machine Scale Set.
    vtpmEnabled boolean
    Specifies whether vTPM should be enabled on the virtual machine. Changing this forces a new resource to be created.
    zoneBalance boolean

    Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to false. Changing this forces a new resource to be created.

    NOTE: This can only be set to true when one or more zones are configured.

    zones string[]
    Specifies a list of Availability Zones in which this Linux Virtual Machine Scale Set should be located. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    additional_capabilities LinuxVirtualMachineScaleSetAdditionalCapabilitiesArgs
    An additional_capabilities block as defined below.
    admin_password str

    The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

    NOTE: When an admin_password is specified disable_password_authentication must be set to false.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    admin_ssh_keys Sequence[LinuxVirtualMachineScaleSetAdminSshKeyArgs]

    One or more admin_ssh_key blocks as defined below.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    admin_username str
    The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.
    automatic_instance_repair LinuxVirtualMachineScaleSetAutomaticInstanceRepairArgs

    An automatic_instance_repair block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid health_probe_id or an Application Health Extension.

    NOTE: For more information about Automatic Instance Repair, please refer to this doc.

    automatic_os_upgrade_policy LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs
    An automatic_os_upgrade_policy block as defined below. This can only be specified when upgrade_mode is set to either Automatic or Rolling.
    boot_diagnostics LinuxVirtualMachineScaleSetBootDiagnosticsArgs
    A boot_diagnostics block as defined below.
    capacity_reservation_group_id str

    Specifies the ID of the Capacity Reservation Group which the Virtual Machine Scale Set should be allocated to. Changing this forces a new resource to be created.

    NOTE: capacity_reservation_group_id cannot be used with proximity_placement_group_id

    NOTE: single_placement_group must be set to false when capacity_reservation_group_id is specified.

    computer_name_prefix str
    The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name_prefix, then you must specify computer_name_prefix. Changing this forces a new resource to be created.
    custom_data str

    The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

    NOTE: When Custom Data has been configured, it's not possible to remove it without tainting the Virtual Machine Scale Set, due to a limitation of the Azure API.

    data_disks Sequence[LinuxVirtualMachineScaleSetDataDiskArgs]
    One or more data_disk blocks as defined below.
    disable_password_authentication bool

    Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

    In general we'd recommend using SSH Keys for authentication rather than Passwords - but there's tradeoff's to each - please see this thread for more information.

    NOTE: When a admin_password is specified disable_password_authentication must be set to false.

    do_not_run_extensions_on_overprovisioned_machines bool
    Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.
    edge_zone str
    Specifies the Edge Zone within the Azure Region where this Linux Virtual Machine Scale Set should exist. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    encryption_at_host_enabled bool
    Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?
    eviction_policy str

    Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

    NOTE: This can only be configured when priority is set to Spot.

    extension_operations_enabled bool

    Should extension operations be allowed on the Virtual Machine Scale Set? Possible values are true or false. Defaults to true. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    NOTE: extension_operations_enabled may only be set to false if there are no extensions defined in the extension field.

    extensions Sequence[LinuxVirtualMachineScaleSetExtensionArgs]
    One or more extension blocks as defined below
    extensions_time_budget str
    Specifies the duration allocated 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. Defaults to PT1H30M.
    gallery_application Sequence[LinuxVirtualMachineScaleSetGalleryApplicationArgs]
    One or more gallery_application blocks as defined below.
    gallery_applications Sequence[LinuxVirtualMachineScaleSetGalleryApplicationArgs]

    Deprecated: gallery_applications has been renamed to gallery_application and will be deprecated in 4.0

    health_probe_id str
    The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.
    host_group_id str
    Specifies the ID of the dedicated host group that the virtual machine scale set resides in. Changing this forces a new resource to be created.
    identity LinuxVirtualMachineScaleSetIdentityArgs
    An identity block as defined below.
    instances int

    The number of Virtual Machines in the Scale Set. Defaults to 0.

    NOTE: If you're using AutoScaling, you may wish to use Ignore Changes functionality to ignore changes to this field.

    location str
    The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.
    max_bid_price float

    The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the eviction_policy. Defaults to -1, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.

    NOTE: This can only be configured when priority is set to Spot.

    name str
    The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    network_interfaces Sequence[LinuxVirtualMachineScaleSetNetworkInterfaceArgs]
    One or more network_interface blocks as defined below.
    os_disk LinuxVirtualMachineScaleSetOsDiskArgs
    An os_disk block as defined below.
    overprovision bool
    Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to true.
    plan LinuxVirtualMachineScaleSetPlanArgs

    A plan block as defined below. Changing this forces a new resource to be created.

    NOTE: When using an image from Azure Marketplace a plan must be specified.

    platform_fault_domain_count int
    Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    priority str

    The Priority of this Virtual Machine Scale Set. Possible values are Regular and Spot. Defaults to Regular. Changing this value forces a new resource.

    NOTE: When priority is set to Spot an eviction_policy must be specified.

    provision_vm_agent bool
    Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to true. Changing this value forces a new resource to be created.
    proximity_placement_group_id str
    The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.
    resource_group_name str
    The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.
    rolling_upgrade_policy LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs
    A rolling_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling. Changing this forces a new resource to be created.
    scale_in LinuxVirtualMachineScaleSetScaleInArgs
    A scale_in block as defined below.
    scale_in_policy str

    Deprecated: scale_in_policy will be removed in favour of the scale_in code block in version 4.0 of the AzureRM Provider.

    secrets Sequence[LinuxVirtualMachineScaleSetSecretArgs]
    One or more secret blocks as defined below.
    secure_boot_enabled bool
    Specifies whether secure boot should be enabled on the virtual machine. Changing this forces a new resource to be created.
    single_placement_group bool
    Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to true.
    sku str
    The Virtual Machine SKU for the Scale Set, such as Standard_F2.
    source_image_id str

    The ID of an Image which each Virtual Machine in this Scale Set should be based on. Possible Image ID types include Image ID, Shared Image ID, Shared Image Version ID, Community Gallery Image ID, Community Gallery Image Version ID, Shared Gallery Image ID and Shared Gallery Image Version ID.

    NOTE: One of either source_image_id or source_image_reference must be set.

    source_image_reference LinuxVirtualMachineScaleSetSourceImageReferenceArgs

    A source_image_reference block as defined below.

    NOTE: One of either source_image_id or source_image_reference must be set.

    spot_restore LinuxVirtualMachineScaleSetSpotRestoreArgs
    A spot_restore block as defined below.
    tags Mapping[str, str]
    A mapping of tags which should be assigned to this Virtual Machine Scale Set.
    terminate_notification LinuxVirtualMachineScaleSetTerminateNotificationArgs

    A terminate_notification block as defined below.

    Note: This property has been deprecated in favour of the termination_notification property and will be removed in version 4.0 of the provider.

    Deprecated: terminate_notification has been renamed to termination_notification and will be removed in 4.0.

    termination_notification LinuxVirtualMachineScaleSetTerminationNotificationArgs
    A termination_notification block as defined below.
    unique_id str
    The Unique ID for this Linux Virtual Machine Scale Set.
    upgrade_mode str
    user_data str
    The Base64-Encoded User Data which should be used for this Virtual Machine Scale Set.
    vtpm_enabled bool
    Specifies whether vTPM should be enabled on the virtual machine. Changing this forces a new resource to be created.
    zone_balance bool

    Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to false. Changing this forces a new resource to be created.

    NOTE: This can only be set to true when one or more zones are configured.

    zones Sequence[str]
    Specifies a list of Availability Zones in which this Linux Virtual Machine Scale Set should be located. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    additionalCapabilities Property Map
    An additional_capabilities block as defined below.
    adminPassword String

    The Password which should be used for the local-administrator on this Virtual Machine. Changing this forces a new resource to be created.

    NOTE: When an admin_password is specified disable_password_authentication must be set to false.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    adminSshKeys List<Property Map>

    One or more admin_ssh_key blocks as defined below.

    NOTE: One of either admin_password or admin_ssh_key must be specified.

    adminUsername String
    The username of the local administrator on each Virtual Machine Scale Set instance. Changing this forces a new resource to be created.
    automaticInstanceRepair Property Map

    An automatic_instance_repair block as defined below. To enable the automatic instance repair, this Virtual Machine Scale Set must have a valid health_probe_id or an Application Health Extension.

    NOTE: For more information about Automatic Instance Repair, please refer to this doc.

    automaticOsUpgradePolicy Property Map
    An automatic_os_upgrade_policy block as defined below. This can only be specified when upgrade_mode is set to either Automatic or Rolling.
    bootDiagnostics Property Map
    A boot_diagnostics block as defined below.
    capacityReservationGroupId String

    Specifies the ID of the Capacity Reservation Group which the Virtual Machine Scale Set should be allocated to. Changing this forces a new resource to be created.

    NOTE: capacity_reservation_group_id cannot be used with proximity_placement_group_id

    NOTE: single_placement_group must be set to false when capacity_reservation_group_id is specified.

    computerNamePrefix String
    The prefix which should be used for the name of the Virtual Machines in this Scale Set. If unspecified this defaults to the value for the name field. If the value of the name field is not a valid computer_name_prefix, then you must specify computer_name_prefix. Changing this forces a new resource to be created.
    customData String

    The Base64-Encoded Custom Data which should be used for this Virtual Machine Scale Set.

    NOTE: When Custom Data has been configured, it's not possible to remove it without tainting the Virtual Machine Scale Set, due to a limitation of the Azure API.

    dataDisks List<Property Map>
    One or more data_disk blocks as defined below.
    disablePasswordAuthentication Boolean

    Should Password Authentication be disabled on this Virtual Machine Scale Set? Defaults to true.

    In general we'd recommend using SSH Keys for authentication rather than Passwords - but there's tradeoff's to each - please see this thread for more information.

    NOTE: When a admin_password is specified disable_password_authentication must be set to false.

    doNotRunExtensionsOnOverprovisionedMachines Boolean
    Should Virtual Machine Extensions be run on Overprovisioned Virtual Machines in the Scale Set? Defaults to false.
    edgeZone String
    Specifies the Edge Zone within the Azure Region where this Linux Virtual Machine Scale Set should exist. Changing this forces a new Linux Virtual Machine Scale Set to be created.
    encryptionAtHostEnabled Boolean
    Should all of the disks (including the temp disk) attached to this Virtual Machine be encrypted by enabling Encryption at Host?
    evictionPolicy String

    Specifies the eviction policy for Virtual Machines in this Scale Set. Possible values are Deallocate and Delete. Changing this forces a new resource to be created.

    NOTE: This can only be configured when priority is set to Spot.

    extensionOperationsEnabled Boolean

    Should extension operations be allowed on the Virtual Machine Scale Set? Possible values are true or false. Defaults to true. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    NOTE: extension_operations_enabled may only be set to false if there are no extensions defined in the extension field.

    extensions List<Property Map>
    One or more extension blocks as defined below
    extensionsTimeBudget String
    Specifies the duration allocated 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. Defaults to PT1H30M.
    galleryApplication List<Property Map>
    One or more gallery_application blocks as defined below.
    galleryApplications List<Property Map>

    Deprecated: gallery_applications has been renamed to gallery_application and will be deprecated in 4.0

    healthProbeId String
    The ID of a Load Balancer Probe which should be used to determine the health of an instance. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling.
    hostGroupId String
    Specifies the ID of the dedicated host group that the virtual machine scale set resides in. Changing this forces a new resource to be created.
    identity Property Map
    An identity block as defined below.
    instances Number

    The number of Virtual Machines in the Scale Set. Defaults to 0.

    NOTE: If you're using AutoScaling, you may wish to use Ignore Changes functionality to ignore changes to this field.

    location String
    The Azure location where the Linux Virtual Machine Scale Set should exist. Changing this forces a new resource to be created.
    maxBidPrice Number

    The maximum price you're willing to pay for each Virtual Machine in this Scale Set, in US Dollars; which must be greater than the current spot price. If this bid price falls below the current spot price the Virtual Machines in the Scale Set will be evicted using the eviction_policy. Defaults to -1, which means that each Virtual Machine in this Scale Set should not be evicted for price reasons.

    NOTE: This can only be configured when priority is set to Spot.

    name String
    The name of the Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    networkInterfaces List<Property Map>
    One or more network_interface blocks as defined below.
    osDisk Property Map
    An os_disk block as defined below.
    overprovision Boolean
    Should Azure over-provision Virtual Machines in this Scale Set? This means that multiple Virtual Machines will be provisioned and Azure will keep the instances which become available first - which improves provisioning success rates and improves deployment time. You're not billed for these over-provisioned VM's and they don't count towards the Subscription Quota. Defaults to true.
    plan Property Map

    A plan block as defined below. Changing this forces a new resource to be created.

    NOTE: When using an image from Azure Marketplace a plan must be specified.

    platformFaultDomainCount Number
    Specifies the number of fault domains that are used by this Linux Virtual Machine Scale Set. Changing this forces a new resource to be created.
    priority String

    The Priority of this Virtual Machine Scale Set. Possible values are Regular and Spot. Defaults to Regular. Changing this value forces a new resource.

    NOTE: When priority is set to Spot an eviction_policy must be specified.

    provisionVmAgent Boolean
    Should the Azure VM Agent be provisioned on each Virtual Machine in the Scale Set? Defaults to true. Changing this value forces a new resource to be created.
    proximityPlacementGroupId String
    The ID of the Proximity Placement Group in which the Virtual Machine Scale Set should be assigned to. Changing this forces a new resource to be created.
    resourceGroupName String
    The name of the Resource Group in which the Linux Virtual Machine Scale Set should be exist. Changing this forces a new resource to be created.
    rollingUpgradePolicy Property Map
    A rolling_upgrade_policy block as defined below. This is Required and can only be specified when upgrade_mode is set to Automatic or Rolling. Changing this forces a new resource to be created.
    scaleIn Property Map
    A scale_in block as defined below.
    scaleInPolicy String

    Deprecated: scale_in_policy will be removed in favour of the scale_in code block in version 4.0 of the AzureRM Provider.

    secrets List<Property Map>
    One or more secret blocks as defined below.
    secureBootEnabled Boolean
    Specifies whether secure boot should be enabled on the virtual machine. Changing this forces a new resource to be created.
    singlePlacementGroup Boolean
    Should this Virtual Machine Scale Set be limited to a Single Placement Group, which means the number of instances will be capped at 100 Virtual Machines. Defaults to true.
    sku String
    The Virtual Machine SKU for the Scale Set, such as Standard_F2.
    sourceImageId String

    The ID of an Image which each Virtual Machine in this Scale Set should be based on. Possible Image ID types include Image ID, Shared Image ID, Shared Image Version ID, Community Gallery Image ID, Community Gallery Image Version ID, Shared Gallery Image ID and Shared Gallery Image Version ID.

    NOTE: One of either source_image_id or source_image_reference must be set.

    sourceImageReference Property Map

    A source_image_reference block as defined below.

    NOTE: One of either source_image_id or source_image_reference must be set.

    spotRestore Property Map
    A spot_restore block as defined below.
    tags Map<String>
    A mapping of tags which should be assigned to this Virtual Machine Scale Set.
    terminateNotification Property Map

    A terminate_notification block as defined below.

    Note: This property has been deprecated in favour of the termination_notification property and will be removed in version 4.0 of the provider.

    Deprecated: terminate_notification has been renamed to termination_notification and will be removed in 4.0.

    terminationNotification Property Map
    A termination_notification block as defined below.
    uniqueId String
    The Unique ID for this Linux Virtual Machine Scale Set.
    upgradeMode String
    userData String
    The Base64-Encoded User Data which should be used for this Virtual Machine Scale Set.
    vtpmEnabled Boolean
    Specifies whether vTPM should be enabled on the virtual machine. Changing this forces a new resource to be created.
    zoneBalance Boolean

    Should the Virtual Machines in this Scale Set be strictly evenly distributed across Availability Zones? Defaults to false. Changing this forces a new resource to be created.

    NOTE: This can only be set to true when one or more zones are configured.

    zones List<String>
    Specifies a list of Availability Zones in which this Linux Virtual Machine Scale Set should be located. Changing this forces a new Linux Virtual Machine Scale Set to be created.

    Supporting Types

    LinuxVirtualMachineScaleSetAdditionalCapabilities, LinuxVirtualMachineScaleSetAdditionalCapabilitiesArgs

    UltraSsdEnabled bool
    Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine Scale Set? Possible values are true or false. Defaults to false. Changing this forces a new resource to be created.
    UltraSsdEnabled bool
    Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine Scale Set? Possible values are true or false. Defaults to false. Changing this forces a new resource to be created.
    ultraSsdEnabled Boolean
    Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine Scale Set? Possible values are true or false. Defaults to false. Changing this forces a new resource to be created.
    ultraSsdEnabled boolean
    Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine Scale Set? Possible values are true or false. Defaults to false. Changing this forces a new resource to be created.
    ultra_ssd_enabled bool
    Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine Scale Set? Possible values are true or false. Defaults to false. Changing this forces a new resource to be created.
    ultraSsdEnabled Boolean
    Should the capacity to enable Data Disks of the UltraSSD_LRS storage account type be supported on this Virtual Machine Scale Set? Possible values are true or false. Defaults to false. Changing this forces a new resource to be created.

    LinuxVirtualMachineScaleSetAdminSshKey, LinuxVirtualMachineScaleSetAdminSshKeyArgs

    PublicKey string
    The Public Key which should be used for authentication, which needs to be at least 2048-bit and in ssh-rsa format.
    Username string

    The Username for which this Public SSH Key should be configured.

    NOTE: The Azure VM Agent only allows creating SSH Keys at the path /home/{username}/.ssh/authorized_keys - as such this public key will be added/appended to the authorized keys file.

    PublicKey string
    The Public Key which should be used for authentication, which needs to be at least 2048-bit and in ssh-rsa format.
    Username string

    The Username for which this Public SSH Key should be configured.

    NOTE: The Azure VM Agent only allows creating SSH Keys at the path /home/{username}/.ssh/authorized_keys - as such this public key will be added/appended to the authorized keys file.

    publicKey String
    The Public Key which should be used for authentication, which needs to be at least 2048-bit and in ssh-rsa format.
    username String

    The Username for which this Public SSH Key should be configured.

    NOTE: The Azure VM Agent only allows creating SSH Keys at the path /home/{username}/.ssh/authorized_keys - as such this public key will be added/appended to the authorized keys file.

    publicKey string
    The Public Key which should be used for authentication, which needs to be at least 2048-bit and in ssh-rsa format.
    username string

    The Username for which this Public SSH Key should be configured.

    NOTE: The Azure VM Agent only allows creating SSH Keys at the path /home/{username}/.ssh/authorized_keys - as such this public key will be added/appended to the authorized keys file.

    public_key str
    The Public Key which should be used for authentication, which needs to be at least 2048-bit and in ssh-rsa format.
    username str

    The Username for which this Public SSH Key should be configured.

    NOTE: The Azure VM Agent only allows creating SSH Keys at the path /home/{username}/.ssh/authorized_keys - as such this public key will be added/appended to the authorized keys file.

    publicKey String
    The Public Key which should be used for authentication, which needs to be at least 2048-bit and in ssh-rsa format.
    username String

    The Username for which this Public SSH Key should be configured.

    NOTE: The Azure VM Agent only allows creating SSH Keys at the path /home/{username}/.ssh/authorized_keys - as such this public key will be added/appended to the authorized keys file.

    LinuxVirtualMachineScaleSetAutomaticInstanceRepair, LinuxVirtualMachineScaleSetAutomaticInstanceRepairArgs

    Enabled bool
    Should the automatic instance repair be enabled on this Virtual Machine Scale Set?
    GracePeriod string
    Amount of time (in minutes, between 30 and 90) for which automatic repairs will be delayed. The grace period starts right after the VM is found unhealthy. The time duration should be specified in ISO 8601 format. Defaults to PT30M.
    Enabled bool
    Should the automatic instance repair be enabled on this Virtual Machine Scale Set?
    GracePeriod string
    Amount of time (in minutes, between 30 and 90) for which automatic repairs will be delayed. The grace period starts right after the VM is found unhealthy. The time duration should be specified in ISO 8601 format. Defaults to PT30M.
    enabled Boolean
    Should the automatic instance repair be enabled on this Virtual Machine Scale Set?
    gracePeriod String
    Amount of time (in minutes, between 30 and 90) for which automatic repairs will be delayed. The grace period starts right after the VM is found unhealthy. The time duration should be specified in ISO 8601 format. Defaults to PT30M.
    enabled boolean
    Should the automatic instance repair be enabled on this Virtual Machine Scale Set?
    gracePeriod string
    Amount of time (in minutes, between 30 and 90) for which automatic repairs will be delayed. The grace period starts right after the VM is found unhealthy. The time duration should be specified in ISO 8601 format. Defaults to PT30M.
    enabled bool
    Should the automatic instance repair be enabled on this Virtual Machine Scale Set?
    grace_period str
    Amount of time (in minutes, between 30 and 90) for which automatic repairs will be delayed. The grace period starts right after the VM is found unhealthy. The time duration should be specified in ISO 8601 format. Defaults to PT30M.
    enabled Boolean
    Should the automatic instance repair be enabled on this Virtual Machine Scale Set?
    gracePeriod String
    Amount of time (in minutes, between 30 and 90) for which automatic repairs will be delayed. The grace period starts right after the VM is found unhealthy. The time duration should be specified in ISO 8601 format. Defaults to PT30M.

    LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicy, LinuxVirtualMachineScaleSetAutomaticOsUpgradePolicyArgs

    DisableAutomaticRollback bool
    Should automatic rollbacks be disabled?
    EnableAutomaticOsUpgrade bool
    Should OS Upgrades automatically be applied to Scale Set instances in a rolling fashion when a newer version of the OS Image becomes available?
    DisableAutomaticRollback bool
    Should automatic rollbacks be disabled?
    EnableAutomaticOsUpgrade bool
    Should OS Upgrades automatically be applied to Scale Set instances in a rolling fashion when a newer version of the OS Image becomes available?
    disableAutomaticRollback Boolean
    Should automatic rollbacks be disabled?
    enableAutomaticOsUpgrade Boolean
    Should OS Upgrades automatically be applied to Scale Set instances in a rolling fashion when a newer version of the OS Image becomes available?
    disableAutomaticRollback boolean
    Should automatic rollbacks be disabled?
    enableAutomaticOsUpgrade boolean
    Should OS Upgrades automatically be applied to Scale Set instances in a rolling fashion when a newer version of the OS Image becomes available?
    disable_automatic_rollback bool
    Should automatic rollbacks be disabled?
    enable_automatic_os_upgrade bool
    Should OS Upgrades automatically be applied to Scale Set instances in a rolling fashion when a newer version of the OS Image becomes available?
    disableAutomaticRollback Boolean
    Should automatic rollbacks be disabled?
    enableAutomaticOsUpgrade Boolean
    Should OS Upgrades automatically be applied to Scale Set instances in a rolling fashion when a newer version of the OS Image becomes available?

    LinuxVirtualMachineScaleSetBootDiagnostics, LinuxVirtualMachineScaleSetBootDiagnosticsArgs

    StorageAccountUri string

    The Primary/Secondary Endpoint for the Azure Storage Account which should be used to store Boot Diagnostics, including Console Output and Screenshots from the Hypervisor.

    NOTE: Passing a null value will utilize a Managed Storage Account to store Boot Diagnostics.

    StorageAccountUri string

    The Primary/Secondary Endpoint for the Azure Storage Account which should be used to store Boot Diagnostics, including Console Output and Screenshots from the Hypervisor.

    NOTE: Passing a null value will utilize a Managed Storage Account to store Boot Diagnostics.

    storageAccountUri String

    The Primary/Secondary Endpoint for the Azure Storage Account which should be used to store Boot Diagnostics, including Console Output and Screenshots from the Hypervisor.

    NOTE: Passing a null value will utilize a Managed Storage Account to store Boot Diagnostics.

    storageAccountUri string

    The Primary/Secondary Endpoint for the Azure Storage Account which should be used to store Boot Diagnostics, including Console Output and Screenshots from the Hypervisor.

    NOTE: Passing a null value will utilize a Managed Storage Account to store Boot Diagnostics.

    storage_account_uri str

    The Primary/Secondary Endpoint for the Azure Storage Account which should be used to store Boot Diagnostics, including Console Output and Screenshots from the Hypervisor.

    NOTE: Passing a null value will utilize a Managed Storage Account to store Boot Diagnostics.

    storageAccountUri String

    The Primary/Secondary Endpoint for the Azure Storage Account which should be used to store Boot Diagnostics, including Console Output and Screenshots from the Hypervisor.

    NOTE: Passing a null value will utilize a Managed Storage Account to store Boot Diagnostics.

    LinuxVirtualMachineScaleSetDataDisk, LinuxVirtualMachineScaleSetDataDiskArgs

    Caching string
    The type of Caching which should be used for this Data Disk. Possible values are None, ReadOnly and ReadWrite.
    DiskSizeGb int
    The size of the Data Disk which should be created.
    Lun int
    The Logical Unit Number of the Data Disk, which must be unique within the Virtual Machine.
    StorageAccountType string

    The Type of Storage Account which should back this Data Disk. Possible values include Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_LRS, PremiumV2_LRS, Premium_ZRS and UltraSSD_LRS.

    NOTE: UltraSSD_LRS is only supported when ultra_ssd_enabled within the additional_capabilities block is enabled.

    CreateOption string
    The create option which should be used for this Data Disk. Possible values are Empty and FromImage. Defaults to Empty. (FromImage should only be used if the source image includes data disks).
    DiskEncryptionSetId string

    The ID of the Disk Encryption Set which should be used to encrypt this Data Disk. Changing this forces a new resource to be created.

    NOTE: The Disk Encryption Set must have the Reader Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault

    NOTE: Disk Encryption Sets are in Public Preview in a limited set of regions

    Name string
    The name of the Data Disk.
    UltraSsdDiskIopsReadWrite int
    Specifies the Read-Write IOPS for this Data Disk. Only settable when storage_account_type is PremiumV2_LRS or UltraSSD_LRS.
    UltraSsdDiskMbpsReadWrite int
    Specifies the bandwidth in MB per second for this Data Disk. Only settable when storage_account_type is PremiumV2_LRS or UltraSSD_LRS.
    WriteAcceleratorEnabled bool

    Should Write Accelerator be enabled for this Data Disk? Defaults to false.

    NOTE: This requires that the storage_account_type is set to Premium_LRS and that caching is set to None.

    Caching string
    The type of Caching which should be used for this Data Disk. Possible values are None, ReadOnly and ReadWrite.
    DiskSizeGb int
    The size of the Data Disk which should be created.
    Lun int
    The Logical Unit Number of the Data Disk, which must be unique within the Virtual Machine.
    StorageAccountType string

    The Type of Storage Account which should back this Data Disk. Possible values include Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_LRS, PremiumV2_LRS, Premium_ZRS and UltraSSD_LRS.

    NOTE: UltraSSD_LRS is only supported when ultra_ssd_enabled within the additional_capabilities block is enabled.

    CreateOption string
    The create option which should be used for this Data Disk. Possible values are Empty and FromImage. Defaults to Empty. (FromImage should only be used if the source image includes data disks).
    DiskEncryptionSetId string

    The ID of the Disk Encryption Set which should be used to encrypt this Data Disk. Changing this forces a new resource to be created.

    NOTE: The Disk Encryption Set must have the Reader Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault

    NOTE: Disk Encryption Sets are in Public Preview in a limited set of regions

    Name string
    The name of the Data Disk.
    UltraSsdDiskIopsReadWrite int
    Specifies the Read-Write IOPS for this Data Disk. Only settable when storage_account_type is PremiumV2_LRS or UltraSSD_LRS.
    UltraSsdDiskMbpsReadWrite int
    Specifies the bandwidth in MB per second for this Data Disk. Only settable when storage_account_type is PremiumV2_LRS or UltraSSD_LRS.
    WriteAcceleratorEnabled bool

    Should Write Accelerator be enabled for this Data Disk? Defaults to false.

    NOTE: This requires that the storage_account_type is set to Premium_LRS and that caching is set to None.

    caching String
    The type of Caching which should be used for this Data Disk. Possible values are None, ReadOnly and ReadWrite.
    diskSizeGb Integer
    The size of the Data Disk which should be created.
    lun Integer
    The Logical Unit Number of the Data Disk, which must be unique within the Virtual Machine.
    storageAccountType String

    The Type of Storage Account which should back this Data Disk. Possible values include Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_LRS, PremiumV2_LRS, Premium_ZRS and UltraSSD_LRS.

    NOTE: UltraSSD_LRS is only supported when ultra_ssd_enabled within the additional_capabilities block is enabled.

    createOption String
    The create option which should be used for this Data Disk. Possible values are Empty and FromImage. Defaults to Empty. (FromImage should only be used if the source image includes data disks).
    diskEncryptionSetId String

    The ID of the Disk Encryption Set which should be used to encrypt this Data Disk. Changing this forces a new resource to be created.

    NOTE: The Disk Encryption Set must have the Reader Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault

    NOTE: Disk Encryption Sets are in Public Preview in a limited set of regions

    name String
    The name of the Data Disk.
    ultraSsdDiskIopsReadWrite Integer
    Specifies the Read-Write IOPS for this Data Disk. Only settable when storage_account_type is PremiumV2_LRS or UltraSSD_LRS.
    ultraSsdDiskMbpsReadWrite Integer
    Specifies the bandwidth in MB per second for this Data Disk. Only settable when storage_account_type is PremiumV2_LRS or UltraSSD_LRS.
    writeAcceleratorEnabled Boolean

    Should Write Accelerator be enabled for this Data Disk? Defaults to false.

    NOTE: This requires that the storage_account_type is set to Premium_LRS and that caching is set to None.

    caching string
    The type of Caching which should be used for this Data Disk. Possible values are None, ReadOnly and ReadWrite.
    diskSizeGb number
    The size of the Data Disk which should be created.
    lun number
    The Logical Unit Number of the Data Disk, which must be unique within the Virtual Machine.
    storageAccountType string

    The Type of Storage Account which should back this Data Disk. Possible values include Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_LRS, PremiumV2_LRS, Premium_ZRS and UltraSSD_LRS.

    NOTE: UltraSSD_LRS is only supported when ultra_ssd_enabled within the additional_capabilities block is enabled.

    createOption string
    The create option which should be used for this Data Disk. Possible values are Empty and FromImage. Defaults to Empty. (FromImage should only be used if the source image includes data disks).
    diskEncryptionSetId string

    The ID of the Disk Encryption Set which should be used to encrypt this Data Disk. Changing this forces a new resource to be created.

    NOTE: The Disk Encryption Set must have the Reader Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault

    NOTE: Disk Encryption Sets are in Public Preview in a limited set of regions

    name string
    The name of the Data Disk.
    ultraSsdDiskIopsReadWrite number
    Specifies the Read-Write IOPS for this Data Disk. Only settable when storage_account_type is PremiumV2_LRS or UltraSSD_LRS.
    ultraSsdDiskMbpsReadWrite number
    Specifies the bandwidth in MB per second for this Data Disk. Only settable when storage_account_type is PremiumV2_LRS or UltraSSD_LRS.
    writeAcceleratorEnabled boolean

    Should Write Accelerator be enabled for this Data Disk? Defaults to false.

    NOTE: This requires that the storage_account_type is set to Premium_LRS and that caching is set to None.

    caching str
    The type of Caching which should be used for this Data Disk. Possible values are None, ReadOnly and ReadWrite.
    disk_size_gb int
    The size of the Data Disk which should be created.
    lun int
    The Logical Unit Number of the Data Disk, which must be unique within the Virtual Machine.
    storage_account_type str

    The Type of Storage Account which should back this Data Disk. Possible values include Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_LRS, PremiumV2_LRS, Premium_ZRS and UltraSSD_LRS.

    NOTE: UltraSSD_LRS is only supported when ultra_ssd_enabled within the additional_capabilities block is enabled.

    create_option str
    The create option which should be used for this Data Disk. Possible values are Empty and FromImage. Defaults to Empty. (FromImage should only be used if the source image includes data disks).
    disk_encryption_set_id str

    The ID of the Disk Encryption Set which should be used to encrypt this Data Disk. Changing this forces a new resource to be created.

    NOTE: The Disk Encryption Set must have the Reader Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault

    NOTE: Disk Encryption Sets are in Public Preview in a limited set of regions

    name str
    The name of the Data Disk.
    ultra_ssd_disk_iops_read_write int
    Specifies the Read-Write IOPS for this Data Disk. Only settable when storage_account_type is PremiumV2_LRS or UltraSSD_LRS.
    ultra_ssd_disk_mbps_read_write int
    Specifies the bandwidth in MB per second for this Data Disk. Only settable when storage_account_type is PremiumV2_LRS or UltraSSD_LRS.
    write_accelerator_enabled bool

    Should Write Accelerator be enabled for this Data Disk? Defaults to false.

    NOTE: This requires that the storage_account_type is set to Premium_LRS and that caching is set to None.

    caching String
    The type of Caching which should be used for this Data Disk. Possible values are None, ReadOnly and ReadWrite.
    diskSizeGb Number
    The size of the Data Disk which should be created.
    lun Number
    The Logical Unit Number of the Data Disk, which must be unique within the Virtual Machine.
    storageAccountType String

    The Type of Storage Account which should back this Data Disk. Possible values include Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_LRS, PremiumV2_LRS, Premium_ZRS and UltraSSD_LRS.

    NOTE: UltraSSD_LRS is only supported when ultra_ssd_enabled within the additional_capabilities block is enabled.

    createOption String
    The create option which should be used for this Data Disk. Possible values are Empty and FromImage. Defaults to Empty. (FromImage should only be used if the source image includes data disks).
    diskEncryptionSetId String

    The ID of the Disk Encryption Set which should be used to encrypt this Data Disk. Changing this forces a new resource to be created.

    NOTE: The Disk Encryption Set must have the Reader Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault

    NOTE: Disk Encryption Sets are in Public Preview in a limited set of regions

    name String
    The name of the Data Disk.
    ultraSsdDiskIopsReadWrite Number
    Specifies the Read-Write IOPS for this Data Disk. Only settable when storage_account_type is PremiumV2_LRS or UltraSSD_LRS.
    ultraSsdDiskMbpsReadWrite Number
    Specifies the bandwidth in MB per second for this Data Disk. Only settable when storage_account_type is PremiumV2_LRS or UltraSSD_LRS.
    writeAcceleratorEnabled Boolean

    Should Write Accelerator be enabled for this Data Disk? Defaults to false.

    NOTE: This requires that the storage_account_type is set to Premium_LRS and that caching is set to None.

    LinuxVirtualMachineScaleSetExtension, LinuxVirtualMachineScaleSetExtensionArgs

    Name string
    The name for the Virtual Machine Scale Set Extension.
    Publisher string
    Specifies the Publisher of the Extension.
    Type string
    Specifies the Type of the Extension.
    TypeHandlerVersion string
    Specifies the version of the extension to use, available versions can be found using the Azure CLI.
    AutoUpgradeMinorVersion bool
    Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to true.
    AutomaticUpgradeEnabled bool
    Should the Extension be automatically updated whenever the Publisher releases a new version of this VM Extension?
    ForceUpdateTag string
    A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.
    ProtectedSettings string

    A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.

    NOTE: Keys within the protected_settings block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.

    ProtectedSettingsFromKeyVault LinuxVirtualMachineScaleSetExtensionProtectedSettingsFromKeyVault
    ProvisionAfterExtensions List<string>
    An ordered list of Extension names which this should be provisioned after.
    Settings string

    A JSON String which specifies Settings for the Extension.

    NOTE: Keys within the settings block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.

    Name string
    The name for the Virtual Machine Scale Set Extension.
    Publisher string
    Specifies the Publisher of the Extension.
    Type string
    Specifies the Type of the Extension.
    TypeHandlerVersion string
    Specifies the version of the extension to use, available versions can be found using the Azure CLI.
    AutoUpgradeMinorVersion bool
    Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to true.
    AutomaticUpgradeEnabled bool
    Should the Extension be automatically updated whenever the Publisher releases a new version of this VM Extension?
    ForceUpdateTag string
    A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.
    ProtectedSettings string

    A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.

    NOTE: Keys within the protected_settings block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.

    ProtectedSettingsFromKeyVault LinuxVirtualMachineScaleSetExtensionProtectedSettingsFromKeyVault
    ProvisionAfterExtensions []string
    An ordered list of Extension names which this should be provisioned after.
    Settings string

    A JSON String which specifies Settings for the Extension.

    NOTE: Keys within the settings block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.

    name String
    The name for the Virtual Machine Scale Set Extension.
    publisher String
    Specifies the Publisher of the Extension.
    type String
    Specifies the Type of the Extension.
    typeHandlerVersion String
    Specifies the version of the extension to use, available versions can be found using the Azure CLI.
    autoUpgradeMinorVersion Boolean
    Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to true.
    automaticUpgradeEnabled Boolean
    Should the Extension be automatically updated whenever the Publisher releases a new version of this VM Extension?
    forceUpdateTag String
    A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.
    protectedSettings String

    A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.

    NOTE: Keys within the protected_settings block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.

    protectedSettingsFromKeyVault LinuxVirtualMachineScaleSetExtensionProtectedSettingsFromKeyVault
    provisionAfterExtensions List<String>
    An ordered list of Extension names which this should be provisioned after.
    settings String

    A JSON String which specifies Settings for the Extension.

    NOTE: Keys within the settings block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.

    name string
    The name for the Virtual Machine Scale Set Extension.
    publisher string
    Specifies the Publisher of the Extension.
    type string
    Specifies the Type of the Extension.
    typeHandlerVersion string
    Specifies the version of the extension to use, available versions can be found using the Azure CLI.
    autoUpgradeMinorVersion boolean
    Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to true.
    automaticUpgradeEnabled boolean
    Should the Extension be automatically updated whenever the Publisher releases a new version of this VM Extension?
    forceUpdateTag string
    A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.
    protectedSettings string

    A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.

    NOTE: Keys within the protected_settings block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.

    protectedSettingsFromKeyVault LinuxVirtualMachineScaleSetExtensionProtectedSettingsFromKeyVault
    provisionAfterExtensions string[]
    An ordered list of Extension names which this should be provisioned after.
    settings string

    A JSON String which specifies Settings for the Extension.

    NOTE: Keys within the settings block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.

    name str
    The name for the Virtual Machine Scale Set Extension.
    publisher str
    Specifies the Publisher of the Extension.
    type str
    Specifies the Type of the Extension.
    type_handler_version str
    Specifies the version of the extension to use, available versions can be found using the Azure CLI.
    auto_upgrade_minor_version bool
    Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to true.
    automatic_upgrade_enabled bool
    Should the Extension be automatically updated whenever the Publisher releases a new version of this VM Extension?
    force_update_tag str
    A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.
    protected_settings str

    A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.

    NOTE: Keys within the protected_settings block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.

    protected_settings_from_key_vault LinuxVirtualMachineScaleSetExtensionProtectedSettingsFromKeyVault
    provision_after_extensions Sequence[str]
    An ordered list of Extension names which this should be provisioned after.
    settings str

    A JSON String which specifies Settings for the Extension.

    NOTE: Keys within the settings block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.

    name String
    The name for the Virtual Machine Scale Set Extension.
    publisher String
    Specifies the Publisher of the Extension.
    type String
    Specifies the Type of the Extension.
    typeHandlerVersion String
    Specifies the version of the extension to use, available versions can be found using the Azure CLI.
    autoUpgradeMinorVersion Boolean
    Should the latest version of the Extension be used at Deployment Time, if one is available? This won't auto-update the extension on existing installation. Defaults to true.
    automaticUpgradeEnabled Boolean
    Should the Extension be automatically updated whenever the Publisher releases a new version of this VM Extension?
    forceUpdateTag String
    A value which, when different to the previous value can be used to force-run the Extension even if the Extension Configuration hasn't changed.
    protectedSettings String

    A JSON String which specifies Sensitive Settings (such as Passwords) for the Extension.

    NOTE: Keys within the protected_settings block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.

    protectedSettingsFromKeyVault Property Map
    provisionAfterExtensions List<String>
    An ordered list of Extension names which this should be provisioned after.
    settings String

    A JSON String which specifies Settings for the Extension.

    NOTE: Keys within the settings block are notoriously case-sensitive, where the casing required (e.g. TitleCase vs snakeCase) depends on the Extension being used. Please refer to the documentation for the specific Virtual Machine Extension you're looking to use for more information.

    LinuxVirtualMachineScaleSetExtensionProtectedSettingsFromKeyVault, LinuxVirtualMachineScaleSetExtensionProtectedSettingsFromKeyVaultArgs

    SecretUrl string
    The URL to the Key Vault Secret which stores the protected settings.
    SourceVaultId string
    The ID of the source Key Vault.
    SecretUrl string
    The URL to the Key Vault Secret which stores the protected settings.
    SourceVaultId string
    The ID of the source Key Vault.
    secretUrl String
    The URL to the Key Vault Secret which stores the protected settings.
    sourceVaultId String
    The ID of the source Key Vault.
    secretUrl string
    The URL to the Key Vault Secret which stores the protected settings.
    sourceVaultId string
    The ID of the source Key Vault.
    secret_url str
    The URL to the Key Vault Secret which stores the protected settings.
    source_vault_id str
    The ID of the source Key Vault.
    secretUrl String
    The URL to the Key Vault Secret which stores the protected settings.
    sourceVaultId String
    The ID of the source Key Vault.

    LinuxVirtualMachineScaleSetGalleryApplication, LinuxVirtualMachineScaleSetGalleryApplicationArgs

    PackageReferenceId string

    Deprecated: package_reference_id has been renamed to version_id and will be deprecated in 4.0

    ConfigurationReferenceBlobUri string

    Deprecated: configuration_reference_blob_uri has been renamed to configuration_blob_uri and will be deprecated in 4.0

    Order int
    Specifies the order in which the packages have to be installed. Possible values are between 0 and 2,147,483,647. Changing this forces a new resource to be created.
    Tag string
    Specifies a passthrough value for more generic context. This field can be any valid string value. Changing this forces a new resource to be created.
    PackageReferenceId string

    Deprecated: package_reference_id has been renamed to version_id and will be deprecated in 4.0

    ConfigurationReferenceBlobUri string

    Deprecated: configuration_reference_blob_uri has been renamed to configuration_blob_uri and will be deprecated in 4.0

    Order int
    Specifies the order in which the packages have to be installed. Possible values are between 0 and 2,147,483,647. Changing this forces a new resource to be created.
    Tag string
    Specifies a passthrough value for more generic context. This field can be any valid string value. Changing this forces a new resource to be created.
    packageReferenceId String

    Deprecated: package_reference_id has been renamed to version_id and will be deprecated in 4.0

    configurationReferenceBlobUri String

    Deprecated: configuration_reference_blob_uri has been renamed to configuration_blob_uri and will be deprecated in 4.0

    order Integer
    Specifies the order in which the packages have to be installed. Possible values are between 0 and 2,147,483,647. Changing this forces a new resource to be created.
    tag String
    Specifies a passthrough value for more generic context. This field can be any valid string value. Changing this forces a new resource to be created.
    packageReferenceId string

    Deprecated: package_reference_id has been renamed to version_id and will be deprecated in 4.0

    configurationReferenceBlobUri string

    Deprecated: configuration_reference_blob_uri has been renamed to configuration_blob_uri and will be deprecated in 4.0

    order number
    Specifies the order in which the packages have to be installed. Possible values are between 0 and 2,147,483,647. Changing this forces a new resource to be created.
    tag string
    Specifies a passthrough value for more generic context. This field can be any valid string value. Changing this forces a new resource to be created.
    package_reference_id str

    Deprecated: package_reference_id has been renamed to version_id and will be deprecated in 4.0

    configuration_reference_blob_uri str

    Deprecated: configuration_reference_blob_uri has been renamed to configuration_blob_uri and will be deprecated in 4.0

    order int
    Specifies the order in which the packages have to be installed. Possible values are between 0 and 2,147,483,647. Changing this forces a new resource to be created.
    tag str
    Specifies a passthrough value for more generic context. This field can be any valid string value. Changing this forces a new resource to be created.
    packageReferenceId String

    Deprecated: package_reference_id has been renamed to version_id and will be deprecated in 4.0

    configurationReferenceBlobUri String

    Deprecated: configuration_reference_blob_uri has been renamed to configuration_blob_uri and will be deprecated in 4.0

    order Number
    Specifies the order in which the packages have to be installed. Possible values are between 0 and 2,147,483,647. Changing this forces a new resource to be created.
    tag String
    Specifies a passthrough value for more generic context. This field can be any valid string value. Changing this forces a new resource to be created.

    LinuxVirtualMachineScaleSetIdentity, LinuxVirtualMachineScaleSetIdentityArgs

    Type string
    Specifies the type of Managed Service Identity that should be configured on this Linux Virtual Machine Scale Set. Possible values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both).
    IdentityIds List<string>

    Specifies a list of User Assigned Managed Identity IDs to be assigned to this Linux Virtual Machine Scale Set.

    NOTE: This is required when type is set to UserAssigned or SystemAssigned, UserAssigned.

    PrincipalId string
    The Principal ID associated with this Managed Service Identity.
    TenantId string
    The Tenant ID associated with this Managed Service Identity.
    Type string
    Specifies the type of Managed Service Identity that should be configured on this Linux Virtual Machine Scale Set. Possible values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both).
    IdentityIds []string

    Specifies a list of User Assigned Managed Identity IDs to be assigned to this Linux Virtual Machine Scale Set.

    NOTE: This is required when type is set to UserAssigned or SystemAssigned, UserAssigned.

    PrincipalId string
    The Principal ID associated with this Managed Service Identity.
    TenantId string
    The Tenant ID associated with this Managed Service Identity.
    type String
    Specifies the type of Managed Service Identity that should be configured on this Linux Virtual Machine Scale Set. Possible values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both).
    identityIds List<String>

    Specifies a list of User Assigned Managed Identity IDs to be assigned to this Linux Virtual Machine Scale Set.

    NOTE: This is required when type is set to UserAssigned or SystemAssigned, UserAssigned.

    principalId String
    The Principal ID associated with this Managed Service Identity.
    tenantId String
    The Tenant ID associated with this Managed Service Identity.
    type string
    Specifies the type of Managed Service Identity that should be configured on this Linux Virtual Machine Scale Set. Possible values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both).
    identityIds string[]

    Specifies a list of User Assigned Managed Identity IDs to be assigned to this Linux Virtual Machine Scale Set.

    NOTE: This is required when type is set to UserAssigned or SystemAssigned, UserAssigned.

    principalId string
    The Principal ID associated with this Managed Service Identity.
    tenantId string
    The Tenant ID associated with this Managed Service Identity.
    type str
    Specifies the type of Managed Service Identity that should be configured on this Linux Virtual Machine Scale Set. Possible values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both).
    identity_ids Sequence[str]

    Specifies a list of User Assigned Managed Identity IDs to be assigned to this Linux Virtual Machine Scale Set.

    NOTE: This is required when type is set to UserAssigned or SystemAssigned, UserAssigned.

    principal_id str
    The Principal ID associated with this Managed Service Identity.
    tenant_id str
    The Tenant ID associated with this Managed Service Identity.
    type String
    Specifies the type of Managed Service Identity that should be configured on this Linux Virtual Machine Scale Set. Possible values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both).
    identityIds List<String>

    Specifies a list of User Assigned Managed Identity IDs to be assigned to this Linux Virtual Machine Scale Set.

    NOTE: This is required when type is set to UserAssigned or SystemAssigned, UserAssigned.

    principalId String
    The Principal ID associated with this Managed Service Identity.
    tenantId String
    The Tenant ID associated with this Managed Service Identity.

    LinuxVirtualMachineScaleSetNetworkInterface, LinuxVirtualMachineScaleSetNetworkInterfaceArgs

    IpConfigurations List<LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration>
    One or more ip_configuration blocks as defined above.
    Name string
    The Name which should be used for this Network Interface. Changing this forces a new resource to be created.
    DnsServers List<string>
    A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
    EnableAcceleratedNetworking bool
    Does this Network Interface support Accelerated Networking? Defaults to false.
    EnableIpForwarding bool
    Does this Network Interface support IP Forwarding? Defaults to false.
    NetworkSecurityGroupId string
    The ID of a Network Security Group which should be assigned to this Network Interface.
    Primary bool

    Is this the Primary IP Configuration?

    NOTE: If multiple network_interface blocks are specified, one must be set to primary.

    IpConfigurations []LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration
    One or more ip_configuration blocks as defined above.
    Name string
    The Name which should be used for this Network Interface. Changing this forces a new resource to be created.
    DnsServers []string
    A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
    EnableAcceleratedNetworking bool
    Does this Network Interface support Accelerated Networking? Defaults to false.
    EnableIpForwarding bool
    Does this Network Interface support IP Forwarding? Defaults to false.
    NetworkSecurityGroupId string
    The ID of a Network Security Group which should be assigned to this Network Interface.
    Primary bool

    Is this the Primary IP Configuration?

    NOTE: If multiple network_interface blocks are specified, one must be set to primary.

    ipConfigurations List<LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration>
    One or more ip_configuration blocks as defined above.
    name String
    The Name which should be used for this Network Interface. Changing this forces a new resource to be created.
    dnsServers List<String>
    A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
    enableAcceleratedNetworking Boolean
    Does this Network Interface support Accelerated Networking? Defaults to false.
    enableIpForwarding Boolean
    Does this Network Interface support IP Forwarding? Defaults to false.
    networkSecurityGroupId String
    The ID of a Network Security Group which should be assigned to this Network Interface.
    primary Boolean

    Is this the Primary IP Configuration?

    NOTE: If multiple network_interface blocks are specified, one must be set to primary.

    ipConfigurations LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration[]
    One or more ip_configuration blocks as defined above.
    name string
    The Name which should be used for this Network Interface. Changing this forces a new resource to be created.
    dnsServers string[]
    A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
    enableAcceleratedNetworking boolean
    Does this Network Interface support Accelerated Networking? Defaults to false.
    enableIpForwarding boolean
    Does this Network Interface support IP Forwarding? Defaults to false.
    networkSecurityGroupId string
    The ID of a Network Security Group which should be assigned to this Network Interface.
    primary boolean

    Is this the Primary IP Configuration?

    NOTE: If multiple network_interface blocks are specified, one must be set to primary.

    ip_configurations Sequence[LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration]
    One or more ip_configuration blocks as defined above.
    name str
    The Name which should be used for this Network Interface. Changing this forces a new resource to be created.
    dns_servers Sequence[str]
    A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
    enable_accelerated_networking bool
    Does this Network Interface support Accelerated Networking? Defaults to false.
    enable_ip_forwarding bool
    Does this Network Interface support IP Forwarding? Defaults to false.
    network_security_group_id str
    The ID of a Network Security Group which should be assigned to this Network Interface.
    primary bool

    Is this the Primary IP Configuration?

    NOTE: If multiple network_interface blocks are specified, one must be set to primary.

    ipConfigurations List<Property Map>
    One or more ip_configuration blocks as defined above.
    name String
    The Name which should be used for this Network Interface. Changing this forces a new resource to be created.
    dnsServers List<String>
    A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
    enableAcceleratedNetworking Boolean
    Does this Network Interface support Accelerated Networking? Defaults to false.
    enableIpForwarding Boolean
    Does this Network Interface support IP Forwarding? Defaults to false.
    networkSecurityGroupId String
    The ID of a Network Security Group which should be assigned to this Network Interface.
    primary Boolean

    Is this the Primary IP Configuration?

    NOTE: If multiple network_interface blocks are specified, one must be set to primary.

    LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration, LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs

    Name string
    The Name which should be used for this IP Configuration.
    ApplicationGatewayBackendAddressPoolIds List<string>
    A list of Backend Address Pools ID's from a Application Gateway which this Virtual Machine Scale Set should be connected to.
    ApplicationSecurityGroupIds List<string>
    A list of Application Security Group ID's which this Virtual Machine Scale Set should be connected to.
    LoadBalancerBackendAddressPoolIds List<string>

    A list of Backend Address Pools ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    NOTE: When the Virtual Machine Scale Set is configured to have public IPs per instance are created with a load balancer, the SKU of the Virtual Machine instance IPs is determined by the SKU of the Virtual Machine Scale Sets Load Balancer (e.g. Basic or Standard). Alternatively, you may use the public_ip_prefix_id field to generate instance-level IPs in a virtual machine scale set as well. The zonal properties of the prefix will be passed to the Virtual Machine instance IPs, though they will not be shown in the output. To view the public IP addresses assigned to the Virtual Machine Scale Sets Virtual Machine instances use the az vmss list-instance-public-ips --resource-group ResourceGroupName --name VirtualMachineScaleSetName CLI command.

    NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a depends_on between this resource and the Load Balancer Rule.

    LoadBalancerInboundNatRulesIds List<string>

    A list of NAT Rule ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a depends_on between this resource and the Load Balancer Rule.

    Primary bool

    Is this the Primary IP Configuration for this Network Interface? Defaults to false.

    NOTE: One ip_configuration block must be marked as Primary for each Network Interface.

    PublicIpAddresses List<LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress>
    A public_ip_address block as defined below.
    SubnetId string

    The ID of the Subnet which this IP Configuration should be connected to.

    subnet_id is required if version is set to IPv4.

    Version string
    The Internet Protocol Version which should be used for this IP Configuration. Possible values are IPv4 and IPv6. Defaults to IPv4.
    Name string
    The Name which should be used for this IP Configuration.
    ApplicationGatewayBackendAddressPoolIds []string
    A list of Backend Address Pools ID's from a Application Gateway which this Virtual Machine Scale Set should be connected to.
    ApplicationSecurityGroupIds []string
    A list of Application Security Group ID's which this Virtual Machine Scale Set should be connected to.
    LoadBalancerBackendAddressPoolIds []string

    A list of Backend Address Pools ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    NOTE: When the Virtual Machine Scale Set is configured to have public IPs per instance are created with a load balancer, the SKU of the Virtual Machine instance IPs is determined by the SKU of the Virtual Machine Scale Sets Load Balancer (e.g. Basic or Standard). Alternatively, you may use the public_ip_prefix_id field to generate instance-level IPs in a virtual machine scale set as well. The zonal properties of the prefix will be passed to the Virtual Machine instance IPs, though they will not be shown in the output. To view the public IP addresses assigned to the Virtual Machine Scale Sets Virtual Machine instances use the az vmss list-instance-public-ips --resource-group ResourceGroupName --name VirtualMachineScaleSetName CLI command.

    NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a depends_on between this resource and the Load Balancer Rule.

    LoadBalancerInboundNatRulesIds []string

    A list of NAT Rule ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a depends_on between this resource and the Load Balancer Rule.

    Primary bool

    Is this the Primary IP Configuration for this Network Interface? Defaults to false.

    NOTE: One ip_configuration block must be marked as Primary for each Network Interface.

    PublicIpAddresses []LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress
    A public_ip_address block as defined below.
    SubnetId string

    The ID of the Subnet which this IP Configuration should be connected to.

    subnet_id is required if version is set to IPv4.

    Version string
    The Internet Protocol Version which should be used for this IP Configuration. Possible values are IPv4 and IPv6. Defaults to IPv4.
    name String
    The Name which should be used for this IP Configuration.
    applicationGatewayBackendAddressPoolIds List<String>
    A list of Backend Address Pools ID's from a Application Gateway which this Virtual Machine Scale Set should be connected to.
    applicationSecurityGroupIds List<String>
    A list of Application Security Group ID's which this Virtual Machine Scale Set should be connected to.
    loadBalancerBackendAddressPoolIds List<String>

    A list of Backend Address Pools ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    NOTE: When the Virtual Machine Scale Set is configured to have public IPs per instance are created with a load balancer, the SKU of the Virtual Machine instance IPs is determined by the SKU of the Virtual Machine Scale Sets Load Balancer (e.g. Basic or Standard). Alternatively, you may use the public_ip_prefix_id field to generate instance-level IPs in a virtual machine scale set as well. The zonal properties of the prefix will be passed to the Virtual Machine instance IPs, though they will not be shown in the output. To view the public IP addresses assigned to the Virtual Machine Scale Sets Virtual Machine instances use the az vmss list-instance-public-ips --resource-group ResourceGroupName --name VirtualMachineScaleSetName CLI command.

    NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a depends_on between this resource and the Load Balancer Rule.

    loadBalancerInboundNatRulesIds List<String>

    A list of NAT Rule ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a depends_on between this resource and the Load Balancer Rule.

    primary Boolean

    Is this the Primary IP Configuration for this Network Interface? Defaults to false.

    NOTE: One ip_configuration block must be marked as Primary for each Network Interface.

    publicIpAddresses List<LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress>
    A public_ip_address block as defined below.
    subnetId String

    The ID of the Subnet which this IP Configuration should be connected to.

    subnet_id is required if version is set to IPv4.

    version String
    The Internet Protocol Version which should be used for this IP Configuration. Possible values are IPv4 and IPv6. Defaults to IPv4.
    name string
    The Name which should be used for this IP Configuration.
    applicationGatewayBackendAddressPoolIds string[]
    A list of Backend Address Pools ID's from a Application Gateway which this Virtual Machine Scale Set should be connected to.
    applicationSecurityGroupIds string[]
    A list of Application Security Group ID's which this Virtual Machine Scale Set should be connected to.
    loadBalancerBackendAddressPoolIds string[]

    A list of Backend Address Pools ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    NOTE: When the Virtual Machine Scale Set is configured to have public IPs per instance are created with a load balancer, the SKU of the Virtual Machine instance IPs is determined by the SKU of the Virtual Machine Scale Sets Load Balancer (e.g. Basic or Standard). Alternatively, you may use the public_ip_prefix_id field to generate instance-level IPs in a virtual machine scale set as well. The zonal properties of the prefix will be passed to the Virtual Machine instance IPs, though they will not be shown in the output. To view the public IP addresses assigned to the Virtual Machine Scale Sets Virtual Machine instances use the az vmss list-instance-public-ips --resource-group ResourceGroupName --name VirtualMachineScaleSetName CLI command.

    NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a depends_on between this resource and the Load Balancer Rule.

    loadBalancerInboundNatRulesIds string[]

    A list of NAT Rule ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a depends_on between this resource and the Load Balancer Rule.

    primary boolean

    Is this the Primary IP Configuration for this Network Interface? Defaults to false.

    NOTE: One ip_configuration block must be marked as Primary for each Network Interface.

    publicIpAddresses LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress[]
    A public_ip_address block as defined below.
    subnetId string

    The ID of the Subnet which this IP Configuration should be connected to.

    subnet_id is required if version is set to IPv4.

    version string
    The Internet Protocol Version which should be used for this IP Configuration. Possible values are IPv4 and IPv6. Defaults to IPv4.
    name str
    The Name which should be used for this IP Configuration.
    application_gateway_backend_address_pool_ids Sequence[str]
    A list of Backend Address Pools ID's from a Application Gateway which this Virtual Machine Scale Set should be connected to.
    application_security_group_ids Sequence[str]
    A list of Application Security Group ID's which this Virtual Machine Scale Set should be connected to.
    load_balancer_backend_address_pool_ids Sequence[str]

    A list of Backend Address Pools ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    NOTE: When the Virtual Machine Scale Set is configured to have public IPs per instance are created with a load balancer, the SKU of the Virtual Machine instance IPs is determined by the SKU of the Virtual Machine Scale Sets Load Balancer (e.g. Basic or Standard). Alternatively, you may use the public_ip_prefix_id field to generate instance-level IPs in a virtual machine scale set as well. The zonal properties of the prefix will be passed to the Virtual Machine instance IPs, though they will not be shown in the output. To view the public IP addresses assigned to the Virtual Machine Scale Sets Virtual Machine instances use the az vmss list-instance-public-ips --resource-group ResourceGroupName --name VirtualMachineScaleSetName CLI command.

    NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a depends_on between this resource and the Load Balancer Rule.

    load_balancer_inbound_nat_rules_ids Sequence[str]

    A list of NAT Rule ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a depends_on between this resource and the Load Balancer Rule.

    primary bool

    Is this the Primary IP Configuration for this Network Interface? Defaults to false.

    NOTE: One ip_configuration block must be marked as Primary for each Network Interface.

    public_ip_addresses Sequence[LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress]
    A public_ip_address block as defined below.
    subnet_id str

    The ID of the Subnet which this IP Configuration should be connected to.

    subnet_id is required if version is set to IPv4.

    version str
    The Internet Protocol Version which should be used for this IP Configuration. Possible values are IPv4 and IPv6. Defaults to IPv4.
    name String
    The Name which should be used for this IP Configuration.
    applicationGatewayBackendAddressPoolIds List<String>
    A list of Backend Address Pools ID's from a Application Gateway which this Virtual Machine Scale Set should be connected to.
    applicationSecurityGroupIds List<String>
    A list of Application Security Group ID's which this Virtual Machine Scale Set should be connected to.
    loadBalancerBackendAddressPoolIds List<String>

    A list of Backend Address Pools ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    NOTE: When the Virtual Machine Scale Set is configured to have public IPs per instance are created with a load balancer, the SKU of the Virtual Machine instance IPs is determined by the SKU of the Virtual Machine Scale Sets Load Balancer (e.g. Basic or Standard). Alternatively, you may use the public_ip_prefix_id field to generate instance-level IPs in a virtual machine scale set as well. The zonal properties of the prefix will be passed to the Virtual Machine instance IPs, though they will not be shown in the output. To view the public IP addresses assigned to the Virtual Machine Scale Sets Virtual Machine instances use the az vmss list-instance-public-ips --resource-group ResourceGroupName --name VirtualMachineScaleSetName CLI command.

    NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a depends_on between this resource and the Load Balancer Rule.

    loadBalancerInboundNatRulesIds List<String>

    A list of NAT Rule ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.

    NOTE: When using this field you'll also need to configure a Rule for the Load Balancer, and use a depends_on between this resource and the Load Balancer Rule.

    primary Boolean

    Is this the Primary IP Configuration for this Network Interface? Defaults to false.

    NOTE: One ip_configuration block must be marked as Primary for each Network Interface.

    publicIpAddresses List<Property Map>
    A public_ip_address block as defined below.
    subnetId String

    The ID of the Subnet which this IP Configuration should be connected to.

    subnet_id is required if version is set to IPv4.

    version String
    The Internet Protocol Version which should be used for this IP Configuration. Possible values are IPv4 and IPv6. Defaults to IPv4.

    LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress, LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressArgs

    Name string
    The Name of the Public IP Address Configuration.
    DomainNameLabel string
    The Prefix which should be used for the Domain Name Label for each Virtual Machine Instance. Azure concatenates the Domain Name Label and Virtual Machine Index to create a unique Domain Name Label for each Virtual Machine.
    IdleTimeoutInMinutes int
    The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range 4 to 32.
    IpTags List<LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag>
    One or more ip_tag blocks as defined above. Changing this forces a new resource to be created.
    PublicIpPrefixId string

    The ID of the Public IP Address Prefix from where Public IP Addresses should be allocated. Changing this forces a new resource to be created.

    NOTE: This functionality is in Preview and must be opted into via az feature register --namespace Microsoft.Network --name AllowBringYourOwnPublicIpAddress and then az provider register -n Microsoft.Network.

    Version string
    The Internet Protocol Version which should be used for this public IP address. Possible values are IPv4 and IPv6. Defaults to IPv4. Changing this forces a new resource to be created.
    Name string
    The Name of the Public IP Address Configuration.
    DomainNameLabel string
    The Prefix which should be used for the Domain Name Label for each Virtual Machine Instance. Azure concatenates the Domain Name Label and Virtual Machine Index to create a unique Domain Name Label for each Virtual Machine.
    IdleTimeoutInMinutes int
    The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range 4 to 32.
    IpTags []LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag
    One or more ip_tag blocks as defined above. Changing this forces a new resource to be created.
    PublicIpPrefixId string

    The ID of the Public IP Address Prefix from where Public IP Addresses should be allocated. Changing this forces a new resource to be created.

    NOTE: This functionality is in Preview and must be opted into via az feature register --namespace Microsoft.Network --name AllowBringYourOwnPublicIpAddress and then az provider register -n Microsoft.Network.

    Version string
    The Internet Protocol Version which should be used for this public IP address. Possible values are IPv4 and IPv6. Defaults to IPv4. Changing this forces a new resource to be created.
    name String
    The Name of the Public IP Address Configuration.
    domainNameLabel String
    The Prefix which should be used for the Domain Name Label for each Virtual Machine Instance. Azure concatenates the Domain Name Label and Virtual Machine Index to create a unique Domain Name Label for each Virtual Machine.
    idleTimeoutInMinutes Integer
    The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range 4 to 32.
    ipTags List<LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag>
    One or more ip_tag blocks as defined above. Changing this forces a new resource to be created.
    publicIpPrefixId String

    The ID of the Public IP Address Prefix from where Public IP Addresses should be allocated. Changing this forces a new resource to be created.

    NOTE: This functionality is in Preview and must be opted into via az feature register --namespace Microsoft.Network --name AllowBringYourOwnPublicIpAddress and then az provider register -n Microsoft.Network.

    version String
    The Internet Protocol Version which should be used for this public IP address. Possible values are IPv4 and IPv6. Defaults to IPv4. Changing this forces a new resource to be created.
    name string
    The Name of the Public IP Address Configuration.
    domainNameLabel string
    The Prefix which should be used for the Domain Name Label for each Virtual Machine Instance. Azure concatenates the Domain Name Label and Virtual Machine Index to create a unique Domain Name Label for each Virtual Machine.
    idleTimeoutInMinutes number
    The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range 4 to 32.
    ipTags LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag[]
    One or more ip_tag blocks as defined above. Changing this forces a new resource to be created.
    publicIpPrefixId string

    The ID of the Public IP Address Prefix from where Public IP Addresses should be allocated. Changing this forces a new resource to be created.

    NOTE: This functionality is in Preview and must be opted into via az feature register --namespace Microsoft.Network --name AllowBringYourOwnPublicIpAddress and then az provider register -n Microsoft.Network.

    version string
    The Internet Protocol Version which should be used for this public IP address. Possible values are IPv4 and IPv6. Defaults to IPv4. Changing this forces a new resource to be created.
    name str
    The Name of the Public IP Address Configuration.
    domain_name_label str
    The Prefix which should be used for the Domain Name Label for each Virtual Machine Instance. Azure concatenates the Domain Name Label and Virtual Machine Index to create a unique Domain Name Label for each Virtual Machine.
    idle_timeout_in_minutes int
    The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range 4 to 32.
    ip_tags Sequence[LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag]
    One or more ip_tag blocks as defined above. Changing this forces a new resource to be created.
    public_ip_prefix_id str

    The ID of the Public IP Address Prefix from where Public IP Addresses should be allocated. Changing this forces a new resource to be created.

    NOTE: This functionality is in Preview and must be opted into via az feature register --namespace Microsoft.Network --name AllowBringYourOwnPublicIpAddress and then az provider register -n Microsoft.Network.

    version str
    The Internet Protocol Version which should be used for this public IP address. Possible values are IPv4 and IPv6. Defaults to IPv4. Changing this forces a new resource to be created.
    name String
    The Name of the Public IP Address Configuration.
    domainNameLabel String
    The Prefix which should be used for the Domain Name Label for each Virtual Machine Instance. Azure concatenates the Domain Name Label and Virtual Machine Index to create a unique Domain Name Label for each Virtual Machine.
    idleTimeoutInMinutes Number
    The Idle Timeout in Minutes for the Public IP Address. Possible values are in the range 4 to 32.
    ipTags List<Property Map>
    One or more ip_tag blocks as defined above. Changing this forces a new resource to be created.
    publicIpPrefixId String

    The ID of the Public IP Address Prefix from where Public IP Addresses should be allocated. Changing this forces a new resource to be created.

    NOTE: This functionality is in Preview and must be opted into via az feature register --namespace Microsoft.Network --name AllowBringYourOwnPublicIpAddress and then az provider register -n Microsoft.Network.

    version String
    The Internet Protocol Version which should be used for this public IP address. Possible values are IPv4 and IPv6. Defaults to IPv4. Changing this forces a new resource to be created.

    LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTag, LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddressIpTagArgs

    Tag string
    The IP Tag associated with the Public IP, such as SQL or Storage. Changing this forces a new resource to be created.
    Type string
    The Type of IP Tag, such as FirstPartyUsage. Changing this forces a new resource to be created.
    Tag string
    The IP Tag associated with the Public IP, such as SQL or Storage. Changing this forces a new resource to be created.
    Type string
    The Type of IP Tag, such as FirstPartyUsage. Changing this forces a new resource to be created.
    tag String
    The IP Tag associated with the Public IP, such as SQL or Storage. Changing this forces a new resource to be created.
    type String
    The Type of IP Tag, such as FirstPartyUsage. Changing this forces a new resource to be created.
    tag string
    The IP Tag associated with the Public IP, such as SQL or Storage. Changing this forces a new resource to be created.
    type string
    The Type of IP Tag, such as FirstPartyUsage. Changing this forces a new resource to be created.
    tag str
    The IP Tag associated with the Public IP, such as SQL or Storage. Changing this forces a new resource to be created.
    type str
    The Type of IP Tag, such as FirstPartyUsage. Changing this forces a new resource to be created.
    tag String
    The IP Tag associated with the Public IP, such as SQL or Storage. Changing this forces a new resource to be created.
    type String
    The Type of IP Tag, such as FirstPartyUsage. Changing this forces a new resource to be created.

    LinuxVirtualMachineScaleSetOsDisk, LinuxVirtualMachineScaleSetOsDiskArgs

    Caching string
    The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.
    StorageAccountType string
    The Type of Storage Account which should back this the Internal OS Disk. Possible values include Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_LRS and Premium_ZRS. Changing this forces a new resource to be created.
    DiffDiskSettings LinuxVirtualMachineScaleSetOsDiskDiffDiskSettings
    A diff_disk_settings block as defined above. Changing this forces a new resource to be created.
    DiskEncryptionSetId string

    The ID of the Disk Encryption Set which should be used to encrypt this OS Disk. Conflicts with secure_vm_disk_encryption_set_id. Changing this forces a new resource to be created.

    NOTE: The Disk Encryption Set must have the Reader Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault

    NOTE: Disk Encryption Sets are in Public Preview in a limited set of regions

    DiskSizeGb int

    The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine Scale Set is sourced from.

    NOTE: If specified this must be equal to or larger than the size of the Image the VM Scale Set is based on. When creating a larger disk than exists in the image you'll need to repartition the disk to use the remaining space.

    SecureVmDiskEncryptionSetId string

    The ID of the Disk Encryption Set which should be used to Encrypt the OS Disk when the Virtual Machine Scale Set is Confidential VMSS. Conflicts with disk_encryption_set_id. Changing this forces a new resource to be created.

    NOTE: secure_vm_disk_encryption_set_id can only be specified when security_encryption_type is set to DiskWithVMGuestState.

    SecurityEncryptionType string

    Encryption Type when the Virtual Machine Scale Set is Confidential VMSS. Possible values are VMGuestStateOnly and DiskWithVMGuestState. Changing this forces a new resource to be created.

    NOTE: vtpm_enabled must be set to true when security_encryption_type is specified.

    NOTE: encryption_at_host_enabled cannot be set to true when security_encryption_type is set to DiskWithVMGuestState.

    WriteAcceleratorEnabled bool

    Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

    NOTE: This requires that the storage_account_type is set to Premium_LRS and that caching is set to None.

    Caching string
    The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.
    StorageAccountType string
    The Type of Storage Account which should back this the Internal OS Disk. Possible values include Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_LRS and Premium_ZRS. Changing this forces a new resource to be created.
    DiffDiskSettings LinuxVirtualMachineScaleSetOsDiskDiffDiskSettings
    A diff_disk_settings block as defined above. Changing this forces a new resource to be created.
    DiskEncryptionSetId string

    The ID of the Disk Encryption Set which should be used to encrypt this OS Disk. Conflicts with secure_vm_disk_encryption_set_id. Changing this forces a new resource to be created.

    NOTE: The Disk Encryption Set must have the Reader Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault

    NOTE: Disk Encryption Sets are in Public Preview in a limited set of regions

    DiskSizeGb int

    The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine Scale Set is sourced from.

    NOTE: If specified this must be equal to or larger than the size of the Image the VM Scale Set is based on. When creating a larger disk than exists in the image you'll need to repartition the disk to use the remaining space.

    SecureVmDiskEncryptionSetId string

    The ID of the Disk Encryption Set which should be used to Encrypt the OS Disk when the Virtual Machine Scale Set is Confidential VMSS. Conflicts with disk_encryption_set_id. Changing this forces a new resource to be created.

    NOTE: secure_vm_disk_encryption_set_id can only be specified when security_encryption_type is set to DiskWithVMGuestState.

    SecurityEncryptionType string

    Encryption Type when the Virtual Machine Scale Set is Confidential VMSS. Possible values are VMGuestStateOnly and DiskWithVMGuestState. Changing this forces a new resource to be created.

    NOTE: vtpm_enabled must be set to true when security_encryption_type is specified.

    NOTE: encryption_at_host_enabled cannot be set to true when security_encryption_type is set to DiskWithVMGuestState.

    WriteAcceleratorEnabled bool

    Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

    NOTE: This requires that the storage_account_type is set to Premium_LRS and that caching is set to None.

    caching String
    The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.
    storageAccountType String
    The Type of Storage Account which should back this the Internal OS Disk. Possible values include Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_LRS and Premium_ZRS. Changing this forces a new resource to be created.
    diffDiskSettings LinuxVirtualMachineScaleSetOsDiskDiffDiskSettings
    A diff_disk_settings block as defined above. Changing this forces a new resource to be created.
    diskEncryptionSetId String

    The ID of the Disk Encryption Set which should be used to encrypt this OS Disk. Conflicts with secure_vm_disk_encryption_set_id. Changing this forces a new resource to be created.

    NOTE: The Disk Encryption Set must have the Reader Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault

    NOTE: Disk Encryption Sets are in Public Preview in a limited set of regions

    diskSizeGb Integer

    The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine Scale Set is sourced from.

    NOTE: If specified this must be equal to or larger than the size of the Image the VM Scale Set is based on. When creating a larger disk than exists in the image you'll need to repartition the disk to use the remaining space.

    secureVmDiskEncryptionSetId String

    The ID of the Disk Encryption Set which should be used to Encrypt the OS Disk when the Virtual Machine Scale Set is Confidential VMSS. Conflicts with disk_encryption_set_id. Changing this forces a new resource to be created.

    NOTE: secure_vm_disk_encryption_set_id can only be specified when security_encryption_type is set to DiskWithVMGuestState.

    securityEncryptionType String

    Encryption Type when the Virtual Machine Scale Set is Confidential VMSS. Possible values are VMGuestStateOnly and DiskWithVMGuestState. Changing this forces a new resource to be created.

    NOTE: vtpm_enabled must be set to true when security_encryption_type is specified.

    NOTE: encryption_at_host_enabled cannot be set to true when security_encryption_type is set to DiskWithVMGuestState.

    writeAcceleratorEnabled Boolean

    Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

    NOTE: This requires that the storage_account_type is set to Premium_LRS and that caching is set to None.

    caching string
    The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.
    storageAccountType string
    The Type of Storage Account which should back this the Internal OS Disk. Possible values include Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_LRS and Premium_ZRS. Changing this forces a new resource to be created.
    diffDiskSettings LinuxVirtualMachineScaleSetOsDiskDiffDiskSettings
    A diff_disk_settings block as defined above. Changing this forces a new resource to be created.
    diskEncryptionSetId string

    The ID of the Disk Encryption Set which should be used to encrypt this OS Disk. Conflicts with secure_vm_disk_encryption_set_id. Changing this forces a new resource to be created.

    NOTE: The Disk Encryption Set must have the Reader Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault

    NOTE: Disk Encryption Sets are in Public Preview in a limited set of regions

    diskSizeGb number

    The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine Scale Set is sourced from.

    NOTE: If specified this must be equal to or larger than the size of the Image the VM Scale Set is based on. When creating a larger disk than exists in the image you'll need to repartition the disk to use the remaining space.

    secureVmDiskEncryptionSetId string

    The ID of the Disk Encryption Set which should be used to Encrypt the OS Disk when the Virtual Machine Scale Set is Confidential VMSS. Conflicts with disk_encryption_set_id. Changing this forces a new resource to be created.

    NOTE: secure_vm_disk_encryption_set_id can only be specified when security_encryption_type is set to DiskWithVMGuestState.

    securityEncryptionType string

    Encryption Type when the Virtual Machine Scale Set is Confidential VMSS. Possible values are VMGuestStateOnly and DiskWithVMGuestState. Changing this forces a new resource to be created.

    NOTE: vtpm_enabled must be set to true when security_encryption_type is specified.

    NOTE: encryption_at_host_enabled cannot be set to true when security_encryption_type is set to DiskWithVMGuestState.

    writeAcceleratorEnabled boolean

    Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

    NOTE: This requires that the storage_account_type is set to Premium_LRS and that caching is set to None.

    caching str
    The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.
    storage_account_type str
    The Type of Storage Account which should back this the Internal OS Disk. Possible values include Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_LRS and Premium_ZRS. Changing this forces a new resource to be created.
    diff_disk_settings LinuxVirtualMachineScaleSetOsDiskDiffDiskSettings
    A diff_disk_settings block as defined above. Changing this forces a new resource to be created.
    disk_encryption_set_id str

    The ID of the Disk Encryption Set which should be used to encrypt this OS Disk. Conflicts with secure_vm_disk_encryption_set_id. Changing this forces a new resource to be created.

    NOTE: The Disk Encryption Set must have the Reader Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault

    NOTE: Disk Encryption Sets are in Public Preview in a limited set of regions

    disk_size_gb int

    The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine Scale Set is sourced from.

    NOTE: If specified this must be equal to or larger than the size of the Image the VM Scale Set is based on. When creating a larger disk than exists in the image you'll need to repartition the disk to use the remaining space.

    secure_vm_disk_encryption_set_id str

    The ID of the Disk Encryption Set which should be used to Encrypt the OS Disk when the Virtual Machine Scale Set is Confidential VMSS. Conflicts with disk_encryption_set_id. Changing this forces a new resource to be created.

    NOTE: secure_vm_disk_encryption_set_id can only be specified when security_encryption_type is set to DiskWithVMGuestState.

    security_encryption_type str

    Encryption Type when the Virtual Machine Scale Set is Confidential VMSS. Possible values are VMGuestStateOnly and DiskWithVMGuestState. Changing this forces a new resource to be created.

    NOTE: vtpm_enabled must be set to true when security_encryption_type is specified.

    NOTE: encryption_at_host_enabled cannot be set to true when security_encryption_type is set to DiskWithVMGuestState.

    write_accelerator_enabled bool

    Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

    NOTE: This requires that the storage_account_type is set to Premium_LRS and that caching is set to None.

    caching String
    The Type of Caching which should be used for the Internal OS Disk. Possible values are None, ReadOnly and ReadWrite.
    storageAccountType String
    The Type of Storage Account which should back this the Internal OS Disk. Possible values include Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_LRS and Premium_ZRS. Changing this forces a new resource to be created.
    diffDiskSettings Property Map
    A diff_disk_settings block as defined above. Changing this forces a new resource to be created.
    diskEncryptionSetId String

    The ID of the Disk Encryption Set which should be used to encrypt this OS Disk. Conflicts with secure_vm_disk_encryption_set_id. Changing this forces a new resource to be created.

    NOTE: The Disk Encryption Set must have the Reader Role Assignment scoped on the Key Vault - in addition to an Access Policy to the Key Vault

    NOTE: Disk Encryption Sets are in Public Preview in a limited set of regions

    diskSizeGb Number

    The Size of the Internal OS Disk in GB, if you wish to vary from the size used in the image this Virtual Machine Scale Set is sourced from.

    NOTE: If specified this must be equal to or larger than the size of the Image the VM Scale Set is based on. When creating a larger disk than exists in the image you'll need to repartition the disk to use the remaining space.

    secureVmDiskEncryptionSetId String

    The ID of the Disk Encryption Set which should be used to Encrypt the OS Disk when the Virtual Machine Scale Set is Confidential VMSS. Conflicts with disk_encryption_set_id. Changing this forces a new resource to be created.

    NOTE: secure_vm_disk_encryption_set_id can only be specified when security_encryption_type is set to DiskWithVMGuestState.

    securityEncryptionType String

    Encryption Type when the Virtual Machine Scale Set is Confidential VMSS. Possible values are VMGuestStateOnly and DiskWithVMGuestState. Changing this forces a new resource to be created.

    NOTE: vtpm_enabled must be set to true when security_encryption_type is specified.

    NOTE: encryption_at_host_enabled cannot be set to true when security_encryption_type is set to DiskWithVMGuestState.

    writeAcceleratorEnabled Boolean

    Should Write Accelerator be Enabled for this OS Disk? Defaults to false.

    NOTE: This requires that the storage_account_type is set to Premium_LRS and that caching is set to None.

    LinuxVirtualMachineScaleSetOsDiskDiffDiskSettings, LinuxVirtualMachineScaleSetOsDiskDiffDiskSettingsArgs

    Option string
    Specifies the Ephemeral Disk Settings for the OS Disk. At this time the only possible value is Local. Changing this forces a new resource to be created.
    Placement string
    Specifies where to store the Ephemeral Disk. Possible values are CacheDisk and ResourceDisk. Defaults to CacheDisk. Changing this forces a new resource to be created.
    Option string
    Specifies the Ephemeral Disk Settings for the OS Disk. At this time the only possible value is Local. Changing this forces a new resource to be created.
    Placement string
    Specifies where to store the Ephemeral Disk. Possible values are CacheDisk and ResourceDisk. Defaults to CacheDisk. Changing this forces a new resource to be created.
    option String
    Specifies the Ephemeral Disk Settings for the OS Disk. At this time the only possible value is Local. Changing this forces a new resource to be created.
    placement String
    Specifies where to store the Ephemeral Disk. Possible values are CacheDisk and ResourceDisk. Defaults to CacheDisk. Changing this forces a new resource to be created.
    option string
    Specifies the Ephemeral Disk Settings for the OS Disk. At this time the only possible value is Local. Changing this forces a new resource to be created.
    placement string
    Specifies where to store the Ephemeral Disk. Possible values are CacheDisk and ResourceDisk. Defaults to CacheDisk. Changing this forces a new resource to be created.
    option str
    Specifies the Ephemeral Disk Settings for the OS Disk. At this time the only possible value is Local. Changing this forces a new resource to be created.
    placement str
    Specifies where to store the Ephemeral Disk. Possible values are CacheDisk and ResourceDisk. Defaults to CacheDisk. Changing this forces a new resource to be created.
    option String
    Specifies the Ephemeral Disk Settings for the OS Disk. At this time the only possible value is Local. Changing this forces a new resource to be created.
    placement String
    Specifies where to store the Ephemeral Disk. Possible values are CacheDisk and ResourceDisk. Defaults to CacheDisk. Changing this forces a new resource to be created.

    LinuxVirtualMachineScaleSetPlan, LinuxVirtualMachineScaleSetPlanArgs

    Name string
    Specifies the name of the image from the marketplace. Changing this forces a new resource to be created.
    Product string
    Specifies the product of the image from the marketplace. Changing this forces a new resource to be created.
    Publisher string
    Specifies the publisher of the image. Changing this forces a new resource to be created.
    Name string
    Specifies the name of the image from the marketplace. Changing this forces a new resource to be created.
    Product string
    Specifies the product of the image from the marketplace. Changing this forces a new resource to be created.
    Publisher string
    Specifies the publisher of the image. Changing this forces a new resource to be created.
    name String
    Specifies the name of the image from the marketplace. Changing this forces a new resource to be created.
    product String
    Specifies the product of the image from the marketplace. Changing this forces a new resource to be created.
    publisher String
    Specifies the publisher of the image. Changing this forces a new resource to be created.
    name string
    Specifies the name of the image from the marketplace. Changing this forces a new resource to be created.
    product string
    Specifies the product of the image from the marketplace. Changing this forces a new resource to be created.
    publisher string
    Specifies the publisher of the image. Changing this forces a new resource to be created.
    name str
    Specifies the name of the image from the marketplace. Changing this forces a new resource to be created.
    product str
    Specifies the product of the image from the marketplace. Changing this forces a new resource to be created.
    publisher str
    Specifies the publisher of the image. Changing this forces a new resource to be created.
    name String
    Specifies the name of the image from the marketplace. Changing this forces a new resource to be created.
    product String
    Specifies the product of the image from the marketplace. Changing this forces a new resource to be created.
    publisher String
    Specifies the publisher of the image. Changing this forces a new resource to be created.

    LinuxVirtualMachineScaleSetRollingUpgradePolicy, LinuxVirtualMachineScaleSetRollingUpgradePolicyArgs

    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.
    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.
    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.
    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.
    CrossZoneUpgradesEnabled bool
    Should the Virtual Machine Scale Set ignore the Azure Zone boundaries when constructing upgrade batches? Possible values are true or false.
    PrioritizeUnhealthyInstancesEnabled bool
    Upgrade all unhealthy instances in a scale set before any healthy instances. Possible values are true or false.
    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.
    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.
    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.
    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.
    CrossZoneUpgradesEnabled bool
    Should the Virtual Machine Scale Set ignore the Azure Zone boundaries when constructing upgrade batches? Possible values are true or false.
    PrioritizeUnhealthyInstancesEnabled bool
    Upgrade all unhealthy instances in a scale set before any healthy instances. Possible values are true or false.
    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.
    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.
    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.
    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.
    crossZoneUpgradesEnabled Boolean
    Should the Virtual Machine Scale Set ignore the Azure Zone boundaries when constructing upgrade batches? Possible values are true or false.
    prioritizeUnhealthyInstancesEnabled Boolean
    Upgrade all unhealthy instances in a scale set before any healthy instances. Possible values are true or false.
    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.
    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.
    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.
    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.
    crossZoneUpgradesEnabled boolean
    Should the Virtual Machine Scale Set ignore the Azure Zone boundaries when constructing upgrade batches? Possible values are true or false.
    prioritizeUnhealthyInstancesEnabled boolean
    Upgrade all unhealthy instances in a scale set before any healthy instances. Possible values are true or false.
    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.
    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.
    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.
    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.
    cross_zone_upgrades_enabled bool
    Should the Virtual Machine Scale Set ignore the Azure Zone boundaries when constructing upgrade batches? Possible values are true or false.
    prioritize_unhealthy_instances_enabled bool
    Upgrade all unhealthy instances in a scale set before any healthy instances. Possible values are true or false.
    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.
    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.
    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.
    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.
    crossZoneUpgradesEnabled Boolean
    Should the Virtual Machine Scale Set ignore the Azure Zone boundaries when constructing upgrade batches? Possible values are true or false.
    prioritizeUnhealthyInstancesEnabled Boolean
    Upgrade all unhealthy instances in a scale set before any healthy instances. Possible values are true or false.

    LinuxVirtualMachineScaleSetScaleIn, LinuxVirtualMachineScaleSetScaleInArgs

    ForceDeletionEnabled bool
    Should the virtual machines chosen for removal be force deleted when the virtual machine scale set is being scaled-in? Possible values are true or false. Defaults to false.
    Rule string
    The scale-in policy rule that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled in. Possible values for the scale-in policy rules are Default, NewestVM and OldestVM, defaults to Default. For more information about scale in policy, please refer to this doc.
    ForceDeletionEnabled bool
    Should the virtual machines chosen for removal be force deleted when the virtual machine scale set is being scaled-in? Possible values are true or false. Defaults to false.
    Rule string
    The scale-in policy rule that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled in. Possible values for the scale-in policy rules are Default, NewestVM and OldestVM, defaults to Default. For more information about scale in policy, please refer to this doc.
    forceDeletionEnabled Boolean
    Should the virtual machines chosen for removal be force deleted when the virtual machine scale set is being scaled-in? Possible values are true or false. Defaults to false.
    rule String
    The scale-in policy rule that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled in. Possible values for the scale-in policy rules are Default, NewestVM and OldestVM, defaults to Default. For more information about scale in policy, please refer to this doc.
    forceDeletionEnabled boolean
    Should the virtual machines chosen for removal be force deleted when the virtual machine scale set is being scaled-in? Possible values are true or false. Defaults to false.
    rule string
    The scale-in policy rule that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled in. Possible values for the scale-in policy rules are Default, NewestVM and OldestVM, defaults to Default. For more information about scale in policy, please refer to this doc.
    force_deletion_enabled bool
    Should the virtual machines chosen for removal be force deleted when the virtual machine scale set is being scaled-in? Possible values are true or false. Defaults to false.
    rule str
    The scale-in policy rule that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled in. Possible values for the scale-in policy rules are Default, NewestVM and OldestVM, defaults to Default. For more information about scale in policy, please refer to this doc.
    forceDeletionEnabled Boolean
    Should the virtual machines chosen for removal be force deleted when the virtual machine scale set is being scaled-in? Possible values are true or false. Defaults to false.
    rule String
    The scale-in policy rule that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled in. Possible values for the scale-in policy rules are Default, NewestVM and OldestVM, defaults to Default. For more information about scale in policy, please refer to this doc.

    LinuxVirtualMachineScaleSetSecret, LinuxVirtualMachineScaleSetSecretArgs

    Certificates List<LinuxVirtualMachineScaleSetSecretCertificate>
    One or more certificate blocks as defined above.
    KeyVaultId string
    The ID of the Key Vault from which all Secrets should be sourced.
    Certificates []LinuxVirtualMachineScaleSetSecretCertificate
    One or more certificate blocks as defined above.
    KeyVaultId string
    The ID of the Key Vault from which all Secrets should be sourced.
    certificates List<LinuxVirtualMachineScaleSetSecretCertificate>
    One or more certificate blocks as defined above.
    keyVaultId String
    The ID of the Key Vault from which all Secrets should be sourced.
    certificates LinuxVirtualMachineScaleSetSecretCertificate[]
    One or more certificate blocks as defined above.
    keyVaultId string
    The ID of the Key Vault from which all Secrets should be sourced.
    certificates Sequence[LinuxVirtualMachineScaleSetSecretCertificate]
    One or more certificate blocks as defined above.
    key_vault_id str
    The ID of the Key Vault from which all Secrets should be sourced.
    certificates List<Property Map>
    One or more certificate blocks as defined above.
    keyVaultId String
    The ID of the Key Vault from which all Secrets should be sourced.

    LinuxVirtualMachineScaleSetSecretCertificate, LinuxVirtualMachineScaleSetSecretCertificateArgs

    Url string

    The Secret URL of a Key Vault Certificate.

    NOTE: This can be sourced from the secret_id field within the azure.keyvault.Certificate Resource.

    NOTE: The certificate must have been uploaded/created in PFX format, PEM certificates are not currently supported by Azure.

    Url string

    The Secret URL of a Key Vault Certificate.

    NOTE: This can be sourced from the secret_id field within the azure.keyvault.Certificate Resource.

    NOTE: The certificate must have been uploaded/created in PFX format, PEM certificates are not currently supported by Azure.

    url String

    The Secret URL of a Key Vault Certificate.

    NOTE: This can be sourced from the secret_id field within the azure.keyvault.Certificate Resource.

    NOTE: The certificate must have been uploaded/created in PFX format, PEM certificates are not currently supported by Azure.

    url string

    The Secret URL of a Key Vault Certificate.

    NOTE: This can be sourced from the secret_id field within the azure.keyvault.Certificate Resource.

    NOTE: The certificate must have been uploaded/created in PFX format, PEM certificates are not currently supported by Azure.

    url str

    The Secret URL of a Key Vault Certificate.

    NOTE: This can be sourced from the secret_id field within the azure.keyvault.Certificate Resource.

    NOTE: The certificate must have been uploaded/created in PFX format, PEM certificates are not currently supported by Azure.

    url String

    The Secret URL of a Key Vault Certificate.

    NOTE: This can be sourced from the secret_id field within the azure.keyvault.Certificate Resource.

    NOTE: The certificate must have been uploaded/created in PFX format, PEM certificates are not currently supported by Azure.

    LinuxVirtualMachineScaleSetSourceImageReference, LinuxVirtualMachineScaleSetSourceImageReferenceArgs

    Offer string
    Specifies the offer of the image used to create the virtual machines. Changing this forces a new resource to be created.
    Publisher string
    Specifies the publisher of the image used to create the virtual machines. Changing this forces a new resource to be created.
    Sku string
    Specifies the SKU of the image used to create the virtual machines.
    Version string
    Specifies the version of the image used to create the virtual machines.
    Offer string
    Specifies the offer of the image used to create the virtual machines. Changing this forces a new resource to be created.
    Publisher string
    Specifies the publisher of the image used to create the virtual machines. Changing this forces a new resource to be created.
    Sku string
    Specifies the SKU of the image used to create the virtual machines.
    Version string
    Specifies the version of the image used to create the virtual machines.
    offer String
    Specifies the offer of the image used to create the virtual machines. Changing this forces a new resource to be created.
    publisher String
    Specifies the publisher of the image used to create the virtual machines. Changing this forces a new resource to be created.
    sku String
    Specifies the SKU of the image used to create the virtual machines.
    version String
    Specifies the version of the image used to create the virtual machines.
    offer string
    Specifies the offer of the image used to create the virtual machines. Changing this forces a new resource to be created.
    publisher string
    Specifies the publisher of the image used to create the virtual machines. Changing this forces a new resource to be created.
    sku string
    Specifies the SKU of the image used to create the virtual machines.
    version string
    Specifies the version of the image used to create the virtual machines.
    offer str
    Specifies the offer of the image used to create the virtual machines. Changing this forces a new resource to be created.
    publisher str
    Specifies the publisher of the image used to create the virtual machines. Changing this forces a new resource to be created.
    sku str
    Specifies the SKU of the image used to create the virtual machines.
    version str
    Specifies the version of the image used to create the virtual machines.
    offer String
    Specifies the offer of the image used to create the virtual machines. Changing this forces a new resource to be created.
    publisher String
    Specifies the publisher of the image used to create the virtual machines. Changing this forces a new resource to be created.
    sku String
    Specifies the SKU of the image used to create the virtual machines.
    version String
    Specifies the version of the image used to create the virtual machines.

    LinuxVirtualMachineScaleSetSpotRestore, LinuxVirtualMachineScaleSetSpotRestoreArgs

    Enabled bool
    Should the Spot-Try-Restore feature be enabled? The Spot-Try-Restore feature will attempt to automatically restore the evicted Spot Virtual Machine Scale Set VM instances opportunistically based on capacity availability and pricing constraints. Possible values are true or false. Defaults to false. Changing this forces a new resource to be created.
    Timeout string
    The length of time that the Virtual Machine Scale Set should attempt to restore the Spot VM instances which have been evicted. The time duration should be between 15 minutes and 120 minutes (inclusive). The time duration should be specified in the ISO 8601 format. Defaults to PT1H. Changing this forces a new resource to be created.
    Enabled bool
    Should the Spot-Try-Restore feature be enabled? The Spot-Try-Restore feature will attempt to automatically restore the evicted Spot Virtual Machine Scale Set VM instances opportunistically based on capacity availability and pricing constraints. Possible values are true or false. Defaults to false. Changing this forces a new resource to be created.
    Timeout string
    The length of time that the Virtual Machine Scale Set should attempt to restore the Spot VM instances which have been evicted. The time duration should be between 15 minutes and 120 minutes (inclusive). The time duration should be specified in the ISO 8601 format. Defaults to PT1H. Changing this forces a new resource to be created.
    enabled Boolean
    Should the Spot-Try-Restore feature be enabled? The Spot-Try-Restore feature will attempt to automatically restore the evicted Spot Virtual Machine Scale Set VM instances opportunistically based on capacity availability and pricing constraints. Possible values are true or false. Defaults to false. Changing this forces a new resource to be created.
    timeout String
    The length of time that the Virtual Machine Scale Set should attempt to restore the Spot VM instances which have been evicted. The time duration should be between 15 minutes and 120 minutes (inclusive). The time duration should be specified in the ISO 8601 format. Defaults to PT1H. Changing this forces a new resource to be created.
    enabled boolean
    Should the Spot-Try-Restore feature be enabled? The Spot-Try-Restore feature will attempt to automatically restore the evicted Spot Virtual Machine Scale Set VM instances opportunistically based on capacity availability and pricing constraints. Possible values are true or false. Defaults to false. Changing this forces a new resource to be created.
    timeout string
    The length of time that the Virtual Machine Scale Set should attempt to restore the Spot VM instances which have been evicted. The time duration should be between 15 minutes and 120 minutes (inclusive). The time duration should be specified in the ISO 8601 format. Defaults to PT1H. Changing this forces a new resource to be created.
    enabled bool
    Should the Spot-Try-Restore feature be enabled? The Spot-Try-Restore feature will attempt to automatically restore the evicted Spot Virtual Machine Scale Set VM instances opportunistically based on capacity availability and pricing constraints. Possible values are true or false. Defaults to false. Changing this forces a new resource to be created.
    timeout str
    The length of time that the Virtual Machine Scale Set should attempt to restore the Spot VM instances which have been evicted. The time duration should be between 15 minutes and 120 minutes (inclusive). The time duration should be specified in the ISO 8601 format. Defaults to PT1H. Changing this forces a new resource to be created.
    enabled Boolean
    Should the Spot-Try-Restore feature be enabled? The Spot-Try-Restore feature will attempt to automatically restore the evicted Spot Virtual Machine Scale Set VM instances opportunistically based on capacity availability and pricing constraints. Possible values are true or false. Defaults to false. Changing this forces a new resource to be created.
    timeout String
    The length of time that the Virtual Machine Scale Set should attempt to restore the Spot VM instances which have been evicted. The time duration should be between 15 minutes and 120 minutes (inclusive). The time duration should be specified in the ISO 8601 format. Defaults to PT1H. Changing this forces a new resource to be created.

    LinuxVirtualMachineScaleSetTerminateNotification, LinuxVirtualMachineScaleSetTerminateNotificationArgs

    Enabled bool
    Should the terminate notification be enabled on this Virtual Machine Scale Set?
    Timeout string

    Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format. Defaults to PT5M.

    NOTE: For more information about the terminate notification, please refer to this doc.

    Enabled bool
    Should the terminate notification be enabled on this Virtual Machine Scale Set?
    Timeout string

    Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format. Defaults to PT5M.

    NOTE: For more information about the terminate notification, please refer to this doc.

    enabled Boolean
    Should the terminate notification be enabled on this Virtual Machine Scale Set?
    timeout String

    Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format. Defaults to PT5M.

    NOTE: For more information about the terminate notification, please refer to this doc.

    enabled boolean
    Should the terminate notification be enabled on this Virtual Machine Scale Set?
    timeout string

    Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format. Defaults to PT5M.

    NOTE: For more information about the terminate notification, please refer to this doc.

    enabled bool
    Should the terminate notification be enabled on this Virtual Machine Scale Set?
    timeout str

    Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format. Defaults to PT5M.

    NOTE: For more information about the terminate notification, please refer to this doc.

    enabled Boolean
    Should the terminate notification be enabled on this Virtual Machine Scale Set?
    timeout String

    Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format. Defaults to PT5M.

    NOTE: For more information about the terminate notification, please refer to this doc.

    LinuxVirtualMachineScaleSetTerminationNotification, LinuxVirtualMachineScaleSetTerminationNotificationArgs

    Enabled bool
    Should the termination notification be enabled on this Virtual Machine Scale Set?
    Timeout string

    Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format. Defaults to PT5M.

    NOTE: For more information about the termination notification, please refer to this doc.

    Enabled bool
    Should the termination notification be enabled on this Virtual Machine Scale Set?
    Timeout string

    Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format. Defaults to PT5M.

    NOTE: For more information about the termination notification, please refer to this doc.

    enabled Boolean
    Should the termination notification be enabled on this Virtual Machine Scale Set?
    timeout String

    Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format. Defaults to PT5M.

    NOTE: For more information about the termination notification, please refer to this doc.

    enabled boolean
    Should the termination notification be enabled on this Virtual Machine Scale Set?
    timeout string

    Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format. Defaults to PT5M.

    NOTE: For more information about the termination notification, please refer to this doc.

    enabled bool
    Should the termination notification be enabled on this Virtual Machine Scale Set?
    timeout str

    Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format. Defaults to PT5M.

    NOTE: For more information about the termination notification, please refer to this doc.

    enabled Boolean
    Should the termination notification be enabled on this Virtual Machine Scale Set?
    timeout String

    Length of time (in minutes, between 5 and 15) a notification to be sent to the VM on the instance metadata server till the VM gets deleted. The time duration should be specified in ISO 8601 format. Defaults to PT5M.

    NOTE: For more information about the termination notification, please refer to this doc.

    Import

    Linux Virtual Machine Scale Sets can be imported using the resource id, e.g.

    $ pulumi import azure:compute/linuxVirtualMachineScaleSet:LinuxVirtualMachineScaleSet example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/virtualMachineScaleSets/scaleset1
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Azure Classic pulumi/pulumi-azure
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the azurerm Terraform Provider.
    azure logo

    We recommend using Azure Native.

    Azure Classic v5.73.0 published on Monday, Apr 22, 2024 by Pulumi